def initialize root_frame, parent_frame, element_name, rules
@root_frame = root_frame
@parent_frame = parent_frame
@element_name = element_name
@rules = rules
@rules[:children] ||= {}
@data = {}.merge(rules[:defaults] || {})
@text = nil
known_child_frames.each do |child_frame|
context = data_context_for(child_frame)
if child_frame.list?
context[child_frame.ruby_name] = []
elsif child_frame.map?
context[child_frame.ruby_name] = {}
elsif child_frame.forced?
context[child_frame.ruby_name] = child_frame.value
end
end
end