Sha256: b17e2b3c7dcf85cf20f7cc68fd458e51c356aa8b46dc53596d98121bbf8f3586

Contents?: true

Size: 640 Bytes

Versions: 1

Compression:

Stored size: 640 Bytes

Contents

module Gummi
  module Attributes
    extend ActiveSupport::Concern

    module ClassMethods

      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

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

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
gummi-0.0.6 lib/gummi/attributes.rb