Sha256: b99f8e9a28120a771813e3fb13940a24a0d53b60abeda5f024782d8b396e64ad

Contents?: true

Size: 690 Bytes

Versions: 10

Compression:

Stored size: 690 Bytes

Contents

module Martyr
  module Runtime
    class PlainDimensionLevelSliceDefinition < BaseSliceDefinition

      # @attribute level [BaseLevelDefinition]
      attr_accessor :level, :with

      def to_hash
        {level.id => {with: with}}
      end

      def merge(other)
        raise Internal::Error.new('Cannot merge two different levels') unless level.id == other.level.id
        merged_with = with.present? && other.with.present? ? with & other.with : with + other.with
        self.class.new(level: level, with: merged_with)
      end

      private

      def compile_operators
        @with = Array.wrap(@with).uniq
        set_null unless @with.present?
      end

    end
  end

end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
martyr-0.1.85.pre lib/martyr/runtime/slices/slice_definitions/plain_dimension_level_slice_definition.rb
martyr-0.1.84.pre lib/martyr/runtime/slices/slice_definitions/plain_dimension_level_slice_definition.rb
martyr-0.1.82.pre lib/martyr/runtime/slices/slice_definitions/plain_dimension_level_slice_definition.rb
martyr-0.1.81.pre lib/martyr/runtime/slices/slice_definitions/plain_dimension_level_slice_definition.rb
martyr-0.1.80.pre lib/martyr/runtime/slices/slice_definitions/plain_dimension_level_slice_definition.rb
martyr-0.1.79.pre lib/martyr/runtime/slices/slice_definitions/plain_dimension_level_slice_definition.rb
martyr-0.1.78.pre lib/martyr/runtime/slices/slice_definitions/plain_dimension_level_slice_definition.rb
martyr-0.1.77.pre lib/martyr/runtime/slices/slice_definitions/plain_dimension_level_slice_definition.rb
martyr-0.1.76.pre lib/martyr/runtime/slices/slice_definitions/plain_dimension_level_slice_definition.rb
martyr-0.1.75.pre lib/martyr/runtime/slices/slice_definitions/plain_dimension_level_slice_definition.rb