Module: Gummi::Document::Attributes::ClassMethods

Defined in:
lib/gummi/document/attributes.rb

Instance Method Summary collapse

Instance Method Details

#mappingObject



18
19
20
21
22
23
24
# File 'lib/gummi/document/attributes.rb', line 18

def mapping
  result = {}
  attribute_set.each do |attribute|
    result.merge!({ attribute.name => mapping_for_attribute(attribute)})
  end
  result
end

#mapping_for_attribute(attribute) ⇒ Object



8
9
10
11
12
13
14
15
16
# File 'lib/gummi/document/attributes.rb', line 8

def mapping_for_attribute(attribute)
  if attribute.is_a? Virtus::Attribute::EmbeddedValue
    {properties: attribute.primitive.mapping}
  elsif attribute.is_a? Virtus::Attribute::Collection
    mapping_for_attribute(attribute.member_type)
  else
    attribute.mapping
  end
end