Sha256: ade07f88aa6c03dcbd3ab96a4875b9190165e301e821a667838963a5aea6144a

Contents?: true

Size: 1.52 KB

Versions: 8

Compression:

Stored size: 1.52 KB

Contents

# encoding: utf-8
# Copyright 2015 Aerospike, Inc.
#
# Portions may be licensed to Aerospike, Inc. under one or more contributor
# license agreements.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may not
# use this file except in compliance with the License. You may obtain a copy of
# the License at http:#www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations under
# the License.

require "json"

module Aerospike

  ##
  # Wrapper for GeoJSON data.
  # GeoJSON data needs to be wrapped to allow the client to distinguish
  # geospatial data from string (or hash) data. Geospatial data from a record's
  # bin will be returned as an instance of this class.
  # The wrapper accepts GeoJSON data either as a String or a Hash.

  class GeoJSON

    def initialize(data)
      self.json_data =
        case data
        when String
          data
        else
          data.to_json
        end
    end

    def to_json
      json_data
    end
    alias_method :to_s, :to_json

    def to_hash
      JSON.parse(json_data)
    end
    alias_method :to_h, :to_hash

    def ==(other)
      return false unless other.class == self.class
      other.to_json == self.to_json
    end

    protected

    attr_accessor :json_data

  end # class

end # module

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
aerospike-2.3.0 lib/aerospike/geo_json.rb
aerospike-2.2.1 lib/aerospike/geo_json.rb
aerospike-2.2.0 lib/aerospike/geo_json.rb
aerospike-2.1.1 lib/aerospike/geo_json.rb
aerospike-2.1.0 lib/aerospike/geo_json.rb
aerospike-2.0.0 lib/aerospike/geo_json.rb
aerospike-1.0.12 lib/aerospike/geo_json.rb
aerospike-1.0.11 lib/aerospike/geo_json.rb