Sha256: 53ceed08e19d36c2ec0648cd61b7df10c6c684252617f7a14e91b0ab8afb6d84

Contents?: true

Size: 977 Bytes

Versions: 95

Compression:

Stored size: 977 Bytes

Contents

module MultiJson
  module Adapters
    module JsonCommon
      def load(string, options={})
        string = string.read if string.respond_to?(:read)
        ::JSON.parse("[#{string}]", process_load_options!(options)).first
      end

      def dump(object, options={})
        object.to_json(process_dump_options!(options))
      end

    protected

      def process_load_options!(options={})
        process_options!({:create_additions => false}, options) do |opts|
          opts.merge!(:symbolize_names => true) if options.delete(:symbolize_keys)
        end
      end

      def process_dump_options!(options={})
        process_options!({}, options) do |opts|
          opts.merge!(::JSON::PRETTY_STATE_PROTOTYPE.to_h) if options.delete(:pretty)
        end
      end

      def process_options!(default_options, options)
        return default_options if options.empty?
        yield default_options
        default_options.merge!(options)
      end

    end
  end
end

Version data entries

95 entries across 93 versions & 7 rubygems

Version Path
engineyard-serverside-2.8.0 lib/vendor/multi_json/lib/multi_json/adapters/json_common.rb
engineyard-serverside-2.8.0.pre4 lib/vendor/multi_json/lib/multi_json/adapters/json_common.rb
engineyard-serverside-2.8.0.pre3 lib/vendor/multi_json/lib/multi_json/adapters/json_common.rb
engineyard-serverside-2.8.0.pre2 lib/vendor/multi_json/lib/multi_json/adapters/json_common.rb
engineyard-serverside-2.8.0.pre lib/vendor/multi_json/lib/multi_json/adapters/json_common.rb
engineyard-serverside-2.7.0.pre lib/vendor/multi_json/lib/multi_json/adapters/json_common.rb
engineyard-serverside-2.6.19 lib/vendor/multi_json/lib/multi_json/adapters/json_common.rb
engineyard-serverside-2.6.17 lib/vendor/multi_json/lib/multi_json/adapters/json_common.rb
engineyard-serverside-2.6.16 lib/vendor/multi_json/lib/multi_json/adapters/json_common.rb
engineyard-serverside-2.6.15.alpha1 lib/vendor/multi_json/lib/multi_json/adapters/json_common.rb
engineyard-serverside-2.6.15.cf2 lib/vendor/multi_json/lib/multi_json/adapters/json_common.rb
engineyard-serverside-2.6.15.pre lib/vendor/multi_json/lib/multi_json/adapters/json_common.rb
engineyard-serverside-2.6.14 lib/vendor/multi_json/lib/multi_json/adapters/json_common.rb
engineyard-serverside-2.6.13 lib/vendor/multi_json/lib/multi_json/adapters/json_common.rb
engineyard-serverside-2.6.12 lib/vendor/multi_json/lib/multi_json/adapters/json_common.rb
engineyard-serverside-2.6.12.prewut5 lib/vendor/multi_json/lib/multi_json/adapters/json_common.rb
engineyard-serverside-2.6.12.prewut4 lib/vendor/multi_json/lib/multi_json/adapters/json_common.rb
engineyard-serverside-2.6.12.prewut3 lib/vendor/multi_json/lib/multi_json/adapters/json_common.rb
engineyard-serverside-2.6.12.prewut2 lib/vendor/multi_json/lib/multi_json/adapters/json_common.rb
engineyard-serverside-2.6.12.prewut1 lib/vendor/multi_json/lib/multi_json/adapters/json_common.rb