Sha256: ee0e2ce68d50c528661ede0c0441e7e4ccf4626a620bd3807de05e922b6da3f8
Contents?: true
Size: 1.27 KB
Versions: 2
Compression:
Stored size: 1.27 KB
Contents
module Virtus class Attribute # EmbeddedValue # # @example # # class Address # include Virtus # # attribute :street, String # attribute :zipcode, String # attribute :city, String # end # # class User # include Virtus # # attribute :address, Address # end # # user = User.new(:address => { # :street => 'Street 1/2', :zipcode => '12345', :city => 'NYC' }) # class EmbeddedValue < Object primitive ::OpenStruct # @see Attribute.merge_options # # @return [Hash] # an updated options hash for configuring an EmbeddedValue instance # # @api private def self.merge_options(type, options) options.merge(:primitive => type) end # Coerce attributes into a virtus object # # @param [Hash,Virtus] # # @return [Virtus] # # @api private def coerce(attributes_or_object) value = if attributes_or_object.kind_of?(::Hash) @primitive.new(attributes_or_object) else attributes_or_object end super(value) end end # class EmbeddedValue end # class Attribute end # module Virtus
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
virtus-0.4.2 | lib/virtus/attribute/embedded_value.rb |
virtus-0.4.1 | lib/virtus/attribute/embedded_value.rb |