# File lib/dm-core/property.rb, line 705 def typecast(value) if @type && @type.respond_to?(:typecast) @type.typecast(value, self) elsif value.nil? || primitive?(value) value elsif respond_to?(:typecast_to_primitive) typecast_to_primitive(value) end end