lib/virtus/attribute/embedded_value.rb in virtus-1.0.0.beta5 vs lib/virtus/attribute/embedded_value.rb in virtus-1.0.0.beta6
- old
+ new
@@ -21,11 +21,11 @@
#
# user = User.new(:address => {
# :street => 'Street 1/2', :zipcode => '12345', :city => 'NYC' })
#
class EmbeddedValue < Attribute
- TYPES = [Struct, OpenStruct, Virtus].freeze
+ TYPES = [Struct, OpenStruct, Virtus, Model::Constructor].freeze
class FromStruct < self
# @api public
def coerce(input)
@@ -54,10 +54,10 @@
klass.is_a?(Class) && TYPES.any? { |type| klass <= type }
end
# @api private
def self.determine_type(klass)
- if klass < Virtus || klass <= OpenStruct
+ if klass < Virtus || klass < Model::Constructor || klass <= OpenStruct
FromOpenStruct
elsif klass < Struct
FromStruct
end
end