lib/avro/builder/rake/avro_generate_task.rb in avro-builder-0.13.0 vs lib/avro/builder/rake/avro_generate_task.rb in avro-builder-0.14.0
- old
+ new
@@ -5,19 +5,20 @@
module Builder
module Rake
class AvroGenerateTask < ::Rake::TaskLib
attr_accessor :name, :task_namespace, :task_desc, :root,
- :load_paths, :dependencies
+ :load_paths, :dependencies, :filetype
def initialize(name: :generate, dependencies: [])
@name = name
@task_namespace = :avro
@task_desc = 'Generate Avro schema files from Avro::Builder DSL'
@load_paths = []
@root = "#{Rails.root}/avro/dsl" if defined?(Rails)
@dependencies = dependencies
+ @filetype = 'avsc'
yield self if block_given?
define
end
@@ -31,10 +32,10 @@
task(name.to_sym => dependencies) do
raise '"root" must be specified for Avro DSL files' unless root
Avro::Builder.add_load_path(*[root, load_paths].flatten)
Dir["#{root}/**/*.rb"].each do |dsl_file|
puts "Generating Avro schema from #{dsl_file}"
- output_file = dsl_file.sub('/dsl/', '/schema/').sub(/\.rb$/, '.avsc')
+ output_file = dsl_file.sub('/dsl/', '/schema/').sub(/\.rb$/, ".#{filetype}")
schema = Avro::Builder.build(filename: dsl_file)
FileUtils.mkdir_p(File.dirname(output_file))
File.write(output_file, schema.end_with?("\n") ? schema : schema << "\n")
end
end