Sha256: bd218168ec06b033c677bbe4bc62d533b496f22df81e9acbd560949315a20de6

Contents?: true

Size: 956 Bytes

Versions: 1

Compression:

Stored size: 956 Bytes

Contents

# frozen_string_literal: true

require_relative "data/class_methods"

module ConvenientService
  module Service
    module Plugins
      module HasResult
        module Entities
          class Result
            module Entities
              class Data
                include Support::Castable

                extend ClassMethods

                attr_reader :value

                def initialize(value:)
                  @value = value
                end

                def ==(other)
                  casted = cast(other)

                  return unless casted

                  value == casted.value
                end

                def [](key)
                  value.fetch(key.to_sym) { raise Errors::NotExistingAttribute.new(attribute: key) }
                end

                def to_h
                  @to_h ||= value.to_h
                end
              end
            end
          end
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
convenient_service-0.1.0 lib/convenient_service/service/plugins/has_result/entities/result/entities/data.rb