Sha256: 36cdfc6d627de38ad5ac70cc53317af949f4f0a6e3f014ea108a13f0e6771d53

Contents?: true

Size: 633 Bytes

Versions: 1

Compression:

Stored size: 633 Bytes

Contents

module Martyr
  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

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
martyr-0.1.74.pre lib/martyr/runtime/slices/slice_definitions/plain_dimension_level_slice_definition.rb