Sha256: cab7b57278ba1ceb30479e7c3d7ccabf1b29b2f2337a30478871c5b102a08b40
Contents?: true
Size: 879 Bytes
Versions: 2
Compression:
Stored size: 879 Bytes
Contents
module DataMapper class Property class Record < Text def custom? true end def primitive?(value) value.kind_of?(::Array) || value.kind_of?(::Hash) end def valid?(value, negated = false) super || dump(value).kind_of?(::String) end def load(value) if value.nil? nil elsif value.is_a?(::Array) klass = value.shift.capitalize theklass = Kernel.const_get(klass).new theklass.send('properties').map(&:name).each_with_index() do |k,i| theklass.send("#{k}=",value[i]) end theklass else raise ArgumentError.new("not sure what type #{value.class}") end end def dump(value) value end def typecast_to_primitive(value) value.to_s end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
dm-mnesia-0.2.9 | lib/types/record.rb |
dm-mnesia-0.2.8 | lib/types/record.rb |