Sha256: 3a7797d85b59a9415ac73fd6147e04dbf7dd16da095d07150d536039a717d132

Contents?: true

Size: 610 Bytes

Versions: 4

Compression:

Stored size: 610 Bytes

Contents

module DataMapper
  class Property

    class ParseGeoPoint < Object

      def dump(value)
        value && value.merge("__type" => "GeoPoint")
      end

      def load(value)
        value
      end

      def typecast(value)
        case value
        when ::Hash
          lat = value["latitude"]
          lng = value["longitude"]
          { "latitude" => lat.to_f, "longitude" => lng.to_f } if lat.present? && lng.present?
        end
      end

      def valid?(value)
        return false if value && (value["latitude"].blank? || value["longitude"].blank?)
        super
      end
    end

  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
dm-parse-0.3.20 lib/property/parse_geo_point.rb
dm-parse-0.3.19 lib/property/parse_geo_point.rb
dm-parse-0.3.18 lib/property/parse_geo_point.rb
dm-parse-0.3.17 lib/property/parse_geo_point.rb