module UniverseCompiler::Entity::Overridden
Public Instance Methods
apply_override(override_fields, overrider)
click to toggle source
# File lib/universe_compiler/entity/overridden.rb, line 10 def apply_override(override_fields, overrider) merge_engine = SuperStack::Manager.new merge_engine.merge_policy = SuperStack::MergePolicies::InheritanceMergePolicy merge_engine << fields.to_hash merge_engine << override_fields add_overrider overrider @fields = merge_engine[] merge_engine.clear_layers @fields end
overridden_by()
click to toggle source
# File lib/universe_compiler/entity/overridden.rb, line 6 def overridden_by @overridden_by ||= [] end
Private Instance Methods
add_overrider(overrider)
click to toggle source
# File lib/universe_compiler/entity/overridden.rb, line 23 def add_overrider(overrider) raise "This object #{to_composite_key} is already overridden by #{overrider.to_composite_key}" if overridden_by.include? overrider overridden_by << overrider end