blob: f50f18f3b828c6bea95171129d209706f2b15b66 [file] [log] [blame]
# -*- ruby -*-
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
require "bundler/gem_helper"
require "pathname"
require "tmpdir"
base_dir = Pathname(__dir__)
helper = Bundler::GemHelper.new(base_dir.to_s)
helper.install
spec = helper.gemspec
release_task = Rake::Task["release"]
release_task.prerequisites.replace(["release:rubygem_push"])
task default: :test
desc "Run tests"
task :test do
cd(base_dir.to_s) do
ruby("test/run.rb")
end
end
namespace :flat_buffers do
desc "Generate FlatBuffers code"
task :generate do
Dir.mktmpdir do |tmp_dir|
format_dir = base_dir.parent.parent + "format"
output_dir = base_dir + "lib" + "arrow-format"
rm_rf((output_dir + "org").to_s)
["File", "Message"].each do |fb_name|
fbs = format_dir + "#{fb_name}.fbs"
bfbs = File.join(tmp_dir, "#{fb_name}.bfbs")
sh("flatc",
"-o", tmp_dir,
# This arguments order is important.
"--binary",
"--schema",
"--bfbs-builtins",
"--bfbs-comments",
fbs.to_s)
sh("rbflatc",
"--output-dir", output_dir.to_s,
"--outer-namespaces", "ArrowFormat",
bfbs)
end
end
end
end