482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
|
# File 'lib/nose/serialize.rb', line 482
def call(_, input:, fragment:, represented:, **)
workload = input.represented
workload.instance_variable_set :@model, represented.model
statement_weights = Hash.new { |h, k| h[k] = {} }
fragment['weights'].each do |mix, weights|
mix = mix.to_sym
weights.each do |statement, weight|
statement_weights[statement][mix] = weight
end
end
fragment['statements'].each do |statement|
workload.add_statement statement, statement_weights[statement],
group: fragment['group']
end
workload.mix = fragment['mix'].to_sym unless fragment['mix'].nil?
workload
end
|