Sha256: 90061f32d1814f09a1b1e609766bfbe7aa65134b7f4d4e98a7029a3969a8895a

Contents?: true

Size: 886 Bytes

Versions: 8

Compression:

Stored size: 886 Bytes

Contents

module Yoda
  module Store
    module Objects
      class ValueObject < Base
        # @return [String]
        attr_reader :value

        # @return [Array<Symbol>]
        def self.attr_names
          super + %i(value)
        end

        # @param path [String]
        # @param value [String]
        def initialize(value: nil, **kwargs)
          super(kwargs)
          @value = value
        end

        # @return [String]
        def name
          @name ||= path.match(MODULE_TAIL_PATTERN) { |md| md[1] || md[2] }
        end

        def kind
          :value
        end

        def to_h
          super.merge(value: value)
        end

        private

        # @param another [self]
        # @return [Hash]
        def merge_attributes(another)
          super.merge(
            value: another.value || self.value,
          )
        end
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
yoda-language-server-0.7.2 lib/yoda/store/objects/value_object.rb
yoda-language-server-0.7.1 lib/yoda/store/objects/value_object.rb
yoda-language-server-0.7.0 lib/yoda/store/objects/value_object.rb
yoda-language-server-0.6.2 lib/yoda/store/objects/value_object.rb
yoda-language-server-0.6.1 lib/yoda/store/objects/value_object.rb
yoda-language-server-0.6.0 lib/yoda/store/objects/value_object.rb
yoda-language-server-0.5.0 lib/yoda/store/objects/value_object.rb
yoda-language-server-0.4.0 lib/yoda/store/objects/value_object.rb