Sha256: 5c630adb4c9f799cb3d162bdc37c799cbffd8e87a5126bbeaa7bbf283aa950be

Contents?: true

Size: 1.43 KB

Versions: 14

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

14 entries across 14 versions & 2 rubygems

Version Path
riak-client-1.4.5 lib/riak/json.rb
riak-client-1.4.4.1 lib/riak/json.rb
riak-client-1.4.4 lib/riak/json.rb
riak-client-1.4.3 lib/riak/json.rb
riak-client-1.4.2 lib/riak/json.rb
riak-client-1.4.1 lib/riak/json.rb
riak-client-1.4.0 lib/riak/json.rb
riak-client-1.2.0 lib/riak/json.rb
riak-client-1.1.1 lib/riak/json.rb
riak-client-1.1.0 lib/riak/json.rb
better-riak-client-1.0.7 lib/riak/json.rb
better-riak-client-1.0.6 lib/riak/json.rb
riak-client-1.0.5 lib/riak/json.rb
better-riak-client-1.0.5 lib/riak/json.rb