diff --git a/exe/quby-compile b/exe/quby-compile index 2bb438fd2045d1a20d6201db7ea51e7eba127609..bd7d029ee651690ae823d481d575894e0bb08ce3 100755 --- a/exe/quby-compile +++ b/exe/quby-compile @@ -8,7 +8,6 @@ require "quby/compiler" output_path = "output" lookup_tables_path = "lookup_tables" -seeds_path = "seeds" OptionParser.new do |opts| opts.banner = "Usage: quby-compile FILE_OR_DIRS [options]" @@ -19,10 +18,6 @@ OptionParser.new do |opts| opts.on("--lookup-tables=INPUT") do |value| lookup_tables_path = value end - - opts.on("--seeds=INPUT") do |value| - puts '--seeds is a deprecated option, questionnaire definitions should use seed_patches to conserve seed tweaks' - end end.parse! paths = ARGV.flat_map do |file_or_dir| @@ -41,9 +36,7 @@ paths.each do |path| key = File.basename(File.dirname(path)) sourcecode = File.read(path) last_update = File.mtime(path) - seed_path = File.join(seeds_path, "#{key}.yml") - seeds = File.exist?(seed_path) ? YAML.load(File.read(seed_path)) : nil - compiled = Quby::Compiler.compile(key, sourcecode, path: path, seeds: seeds, lookup_tables: lookup_tables, last_update: last_update) + compiled = Quby::Compiler.compile(key, sourcecode, path: path, lookup_tables: lookup_tables, last_update: last_update) FileUtils.mkdir_p(File.join(output_path, key)) compiled[:outputs].each do |type, output| diff --git a/lib/quby/compiler.rb b/lib/quby/compiler.rb index f2acb816df7c3e44922ecf0899dca31cccf5ece2..a6dfa7151316bf3a7dd3ec88ea903f782d156d11 100644 --- a/lib/quby/compiler.rb +++ b/lib/quby/compiler.rb @@ -29,12 +29,11 @@ require 'quby/compiler/outputs' module Quby module Compiler - def self.compile(key, sourcecode, path: nil, seeds:, lookup_tables:, last_update: nil, &block) + def self.compile(key, sourcecode, path: nil, lookup_tables:, last_update: nil, &block) Quby::Compiler::Instance.new(lookup_tables: lookup_tables).compile( key: key, sourcecode: sourcecode, path: path, - seeds: seeds, last_update: last_update, &block ) diff --git a/lib/quby/compiler/instance.rb b/lib/quby/compiler/instance.rb index 7bad7164944c2f2904c01094d2efc961481cd29d..86cdae6a3c9275298d274b66e0e72783d9b27386 100644 --- a/lib/quby/compiler/instance.rb +++ b/lib/quby/compiler/instance.rb @@ -7,7 +7,7 @@ module Quby @lookup_tables = lookup_tables end - def compile(key:, sourcecode:, seeds:, path: nil, last_update: nil, &block) + def compile(key:, sourcecode:, path: nil, last_update: nil, &block) if block # defined in block for tests questionnaire = DSL.build(key, path: path, &block) else # sourcecode given as string @@ -41,7 +41,7 @@ module Quby seeds: Output.new( key: :seeds, filename: "seeds.yml", - content: YAML.dump(Outputs::SeedSerializer.new(questionnaire, seeds).generate), + content: YAML.dump(Outputs::SeedSerializer.new(questionnaire).generate), ), quby_frontend_v1: Output.new( key: :quby_frontend_v1, diff --git a/lib/quby/compiler/outputs/seed_serializer.rb b/lib/quby/compiler/outputs/seed_serializer.rb index 448e1434f2a7619e5444af31ea5d3f93db0fb5f0..d674bad57de33d63c4bb762932045712a30a4e31 100644 --- a/lib/quby/compiler/outputs/seed_serializer.rb +++ b/lib/quby/compiler/outputs/seed_serializer.rb @@ -7,23 +7,19 @@ module Quby attr_reader :questionnaire attr_reader :seeds - def initialize(questionnaire, seeds) + def initialize(questionnaire) @questionnaire = questionnaire @seeds = seeds || [] end def generate - roqua_keys = seeds.present? ? seeds.map { |seed| seed["key"] } : questionnaire.roqua_keys - - roqua_keys.map do |roqua_key| - seed = seeds.find { |seed| seed["key"] == roqua_key } || {} - + questionnaire.roqua_keys.map do |roqua_key| new_seed = Services::QubyProxy.new( questionnaire, quby_key: questionnaire.key, roqua_key: roqua_key, skip_score_keys_consistency_check: true - ).generate(seed) + ).generate Services::SeedDiff.new.apply_patch(new_seed, questionnaire.seeds_patch[roqua_key]) end diff --git a/lib/quby/compiler/services/quby_proxy.rb b/lib/quby/compiler/services/quby_proxy.rb index d3f7c6163137f187e1d09396489ac73f1501ec0c..ad0dad023bd18cbdd452b1657bf72b0d14f75019 100644 --- a/lib/quby/compiler/services/quby_proxy.rb +++ b/lib/quby/compiler/services/quby_proxy.rb @@ -22,7 +22,8 @@ module Quby @options = options end - def generate(seed) + def generate + seed = {} question_titles = generate_question_titles d_qtypes = {} vars = [] diff --git a/spec/quby/compiler/outputs/seed_serializer_spec.rb b/spec/quby/compiler/outputs/seed_serializer_spec.rb index c11f34c8d6f60a1e08743f9c4bae3f1010884796..c13d92cef5f12bf152d50c11c5fd774ebc03e1ba 100644 --- a/spec/quby/compiler/outputs/seed_serializer_spec.rb +++ b/spec/quby/compiler/outputs/seed_serializer_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' describe Quby::Compiler::Outputs::SeedSerializer do it 'generates yaml' do questionnaire = dsl("test") { title "Test" } - serializer = described_class.new(questionnaire, []) + serializer = described_class.new(questionnaire) expect(serializer.generate).to match([a_hash_including('name' => "Test")]) end @@ -14,7 +14,7 @@ describe Quby::Compiler::Outputs::SeedSerializer do seeds_patch "testo1" => {"name" => "Override"} end - serializer = described_class.new(questionnaire, []) + serializer = described_class.new(questionnaire) expect(serializer.generate).to match([ a_hash_including('key' => 'testo1', 'name' => "Override"), a_hash_including('key' => 'testo2', 'name' => "Test") @@ -29,11 +29,11 @@ describe Quby::Compiler::Outputs::SeedSerializer do question :v_1, type: :string, title: ' 12\. vraag nummer 1' end end - serializer = described_class.new(questionnaire, []) + serializer = described_class.new(questionnaire) expect(serializer.generate.first['quests']).to eq("v_1"=>" 12. vraag nummer 1") end def dsl(key, &block) Quby::Compiler::DSL.build(key, nil, &block) end -end \ No newline at end of file +end