Sha256: 72e481c7ae6bb7ed13010396d67113cdb3d482d93f84cc951e4437b57209b277

Contents?: true

Size: 1.32 KB

Versions: 9

Compression:

Stored size: 1.32 KB

Contents

# encoding: UTF-8
require 'yajl' unless defined?(Yajl::Parser)

# NOTE: this is probably temporary until I can split out the JSON compat C code into it's own
# extension that can be included when this file is.
Yajl::Encoder.enable_json_gem_compatability

# Our fallback to_json definition
class Object
  def to_json(*args, &block)
    "\"#{to_s}\""
  end
end

module JSON
  class JSONError < StandardError; end unless defined?(JSON::JSONError)
  class GeneratorError < JSONError; end unless defined?(JSON::GeneratorError)
  
  def self.generate(obj, opts={})
    begin
      options_map = {}
      if opts.has_key?(:indent)
        options_map[:pretty] = true
        options_map[:indent] = opts[:indent]
      end
      Yajl::Encoder.encode(obj, options_map)
    rescue Yajl::EncodeError => e
      raise JSON::GeneratorError, e.message
    end
  end
  
  def self.pretty_generate(obj, opts={})
    begin
      options_map = {}
      options_map[:pretty] = true
      options_map[:indent] = opts[:indent] if opts.has_key?(:indent)
      Yajl::Encoder.encode(obj, options_map)
    rescue Yajl::EncodeError => e
      raise JSON::GeneratorError, e.message
    end
  end
  
  def self.dump(obj, io=nil, *args)
    begin
      Yajl::Encoder.encode(obj, io)
    rescue Yajl::EncodeError => e
      raise JSON::GeneratorError, e.message
    end
  end
end

Version data entries

9 entries across 9 versions & 2 rubygems

Version Path
yajl-ruby-0.7.1 lib/yajl/json_gem/encoding.rb
yajl-ruby-0.7.0 lib/yajl/json_gem/encoding.rb
yajl-ruby-0.6.9 lib/yajl/json_gem/encoding.rb
yajl-ruby-0.6.8 lib/yajl/json_gem/encoding.rb
yajl-ruby-0.6.7 lib/yajl/json_gem/encoding.rb
yajl-ruby-0.6.6 lib/yajl/json_gem/encoding.rb
yajl-ruby-0.6.5 lib/yajl/json_gem/encoding.rb
yajl-ruby-0.6.4 lib/yajl/json_gem/encoding.rb
filipegiusti-yajl-ruby-0.6.4 lib/yajl/json_gem/encoding.rb