Sha256: 8559a642ff27a7b7455f2fe4198cfc9a82a4c7b9d7870764b473fdaa68ead785

Contents?: true

Size: 1.43 KB

Versions: 12

Compression:

Stored size: 1.43 KB

Contents

require 'multi_json'
if MultiJson.respond_to?(:adapter)
  MultiJson.adapter
else
  MultiJson.engine # Force loading of an engine
end
require 'riak/core_ext/json'

module Riak
  class << self
    # Options that will be passed to the JSON parser and encoder.
    # Defaults to `{:max_nesting => 20}`
    attr_accessor :json_options
  end
  self.json_options = {:max_nesting => 20}

  # JSON module for internal use inside riak-client
  module JSON
    class << self
      if MultiJson.respond_to?(:dump) # MultiJson 1.2 or later
        # Parse a JSON string
        # @param [String] str a JSON payload
        # @return [Array,Hash] a Ruby object decoded from the JSON payload
        def parse(str)
          MultiJson.load(str, Riak.json_options)
        end

        # Generate a JSON string
        # @param [Array, Hash] obj an object to JSON-encode
        # @return [String] a JSON payload
        def encode(obj)
          MultiJson.dump(obj)
        end
      else
        # Parse a JSON string
        # @param [String] str a JSON payload
        # @return [Array,Hash] a Ruby object decoded from the JSON payload
        def parse(str)
          MultiJson.decode(str, Riak.json_options)
        end

        # Generate a JSON string
        # @param [Array, Hash] obj an object to JSON-encode
        # @return [String] a JSON payload
        def encode(obj)
          MultiJson.encode(obj)
        end
      end
      alias :dump :encode
    end
  end
end

Version data entries

12 entries across 12 versions & 2 rubygems

Version Path
riak-client-2.6.0 lib/riak/json.rb
riak-client-2.5.0 lib/riak/json.rb
riak-client-2.3.0 lib/riak/json.rb
riak-client-2.2.2 lib/riak/json.rb
riak-client-2.2.1 lib/riak/json.rb
riak-client-noenc-1.0.0 lib/riak/json.rb
riak-client-2.2.0 lib/riak/json.rb
riak-client-2.2.0.pre1 lib/riak/json.rb
riak-client-2.1.0 lib/riak/json.rb
riak-client-2.0.0 lib/riak/json.rb
riak-client-2.0.0.rc2 lib/riak/json.rb
riak-client-2.0.0.rc1 lib/riak/json.rb