Class: AMA::Entity::Mapper::Type::BuiltIn::HashTupleType

Inherits:
AMA::Entity::Mapper::Type show all
Defined in:
lib/ama-entity-mapper/type/builtin/hash_tuple_type.rb

Overview

Pair class definition

Constant Summary collapse

INSTANCE =
new

Instance Attribute Summary

Attributes inherited from AMA::Entity::Mapper::Type

#attributes, #denormalizer, #enumerator, #factory, #injector, #normalizer, #parameters, #type, #virtual

Instance Method Summary collapse

Methods inherited from AMA::Entity::Mapper::Type

#==, #attribute!, #eql?, #hash, #instance!, #instance?, #parameter!, #resolve, #resolve_parameter, #resolved!, #resolved?, #to_def, #to_s, #valid!, #valid?, #violations

Methods included from Mixin::HandlerSupport

declare_handler_block_setter, declare_handler_getter, declare_handler_method, declare_handler_setter, declare_namespace_method, included

Methods included from Mixin::Reflection

#install_object_method, #method_object, #object_variable, #object_variable_exists, #object_variables, #set_object_attribute

Methods included from Mixin::Errors

#compliance_error, #mapping_error, #raise_if_internal, #validation_error

Constructor Details

#initializeHashTupleType

Returns a new instance of HashTupleType.



13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/ama-entity-mapper/type/builtin/hash_tuple_type.rb', line 13

def initialize
  super(Aux::HashTuple, virtual: true)

  attribute!(:key, parameter!(:K))
  attribute!(:value, parameter!(:V))

  enumerator_block do |entity, type, *|
    ::Enumerator.new do |yielder|
      yielder << [type.attributes[:key], entity.key, nil]
      yielder << [type.attributes[:value], entity.value, nil]
    end
  end
end