class Quby::Compiler::Outputs::SeedSerializer

Attributes

questionnaire[R]
seeds[R]

Public Class Methods

new(questionnaire, seeds) click to toggle source
# File lib/quby/compiler/outputs/seed_serializer.rb, line 10
def initialize(questionnaire, seeds)
  @questionnaire = questionnaire
  @seeds = seeds || []
end

Public Instance Methods

generate() click to toggle source
# File lib/quby/compiler/outputs/seed_serializer.rb, line 15
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 } || {}

    new_seed = Services::QubyProxy.new(
      questionnaire,
      quby_key: questionnaire.key,
      roqua_key: roqua_key,
      skip_score_keys_consistency_check: true
    ).generate(seed)

    Services::SeedDiff.new.apply_patch(new_seed, questionnaire.seeds_patch[roqua_key])
  end
end