118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
|
# File 'lib/masamune/data_plan/engine.rb', line 118
def prepare(rule, options = {})
@targets[rule].merge options.fetch(:targets, [])
@sources[rule].merge options.fetch(:sources, [])
@target_rules[rule].try(:prepare)
@source_rules[rule].try(:prepare)
if options.fetch(:resolve, true)
constrain_max_depth(rule) do
sources(rule).group_by { |source| rule_for_target(source.input) }.each do |derived_rule, sources|
prepare(derived_rule, targets: sources.map(&:input)) if derived_rule != Masamune::DataPlan::Rule::TERMINAL
end
end
end
clear!
end
|