Sha256: 16de2c8bf4188202b996317a4bfb1fa5ec6e1d9b2224fa51dd7a40f3aee25637

Contents?: true

Size: 774 Bytes

Versions: 29

Compression:

Stored size: 774 Bytes

Contents

module UniverseCompiler
  module Entity

    module Overridden

      def overridden_by
        @overridden_by ||= []
      end

      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

      private

      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

    end

  end
end

Version data entries

29 entries across 29 versions & 1 rubygems

Version Path
universe_compiler-0.5.6 lib/universe_compiler/entity/overridden.rb
universe_compiler-0.5.5 lib/universe_compiler/entity/overridden.rb
universe_compiler-0.5.4 lib/universe_compiler/entity/overridden.rb
universe_compiler-0.5.3 lib/universe_compiler/entity/overridden.rb
universe_compiler-0.5.2 lib/universe_compiler/entity/overridden.rb
universe_compiler-0.5.1 lib/universe_compiler/entity/overridden.rb
universe_compiler-0.4.3 lib/universe_compiler/entity/overridden.rb
universe_compiler-0.4.2 lib/universe_compiler/entity/overridden.rb
universe_compiler-0.4.1 lib/universe_compiler/entity/overridden.rb
universe_compiler-0.4.0 lib/universe_compiler/entity/overridden.rb
universe_compiler-0.3.12 lib/universe_compiler/entity/overridden.rb
universe_compiler-0.3.11 lib/universe_compiler/entity/overridden.rb
universe_compiler-0.3.10 lib/universe_compiler/entity/overridden.rb
universe_compiler-0.3.9 lib/universe_compiler/entity/overridden.rb
universe_compiler-0.3.8 lib/universe_compiler/entity/overridden.rb
universe_compiler-0.3.7 lib/universe_compiler/entity/overridden.rb
universe_compiler-0.3.6 lib/universe_compiler/entity/overridden.rb
universe_compiler-0.3.5 lib/universe_compiler/entity/overridden.rb
universe_compiler-0.3.4 lib/universe_compiler/entity/overridden.rb
universe_compiler-0.3.3 lib/universe_compiler/entity/overridden.rb