Sha256: e8a7578ae59d72a816c4ab6c77637382338a1c723444f9f2f90688f4fd269634

Contents?: true

Size: 532 Bytes

Versions: 4

Compression:

Stored size: 532 Bytes

Contents

module DataMapper
  class Property

    class ParseDate < Object

      def dump(value)
        case value
        when ::DateTime
          {"__type" => "Date", "iso" => value.utc.iso8601(3)}
        when ::Hash
          value
        end
      end

      def load(value)
        typecast(value)
      end

      def typecast(value)
        case value
        when ::Hash
          value["iso"].to_datetime
        when ::NilClass
          value
        else
          value.to_datetime
        end
      end

    end

  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
dm-parse-0.3.13 lib/property/parse_date.rb
dm-parse-0.3.12 lib/property/parse_date.rb
dm-parse-0.3.11 lib/property/parse_date.rb
dm-parse-0.3.10 lib/property/parse_date.rb