ruby-changes:21093
From: naruse <ko1@a...>
Date: Wed, 31 Aug 2011 15:57:10 +0900 (JST)
Subject: [ruby-changes:21093] naruse:r33142 (trunk): * ext/json: Merge json gem v1.5.4 (3dab4c5a6a97fac03dac).
naruse 2011-08-31 15:56:16 +0900 (Wed, 31 Aug 2011) New Revision: 33142 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=33142 Log: * ext/json: Merge json gem v1.5.4 (3dab4c5a6a97fac03dac). Added files: trunk/ext/json/lib/json/add/complex.rb trunk/ext/json/lib/json/add/rational.rb Modified files: trunk/ChangeLog trunk/ext/json/generator/generator.c trunk/ext/json/lib/json/add/core.rb trunk/ext/json/parser/parser.c trunk/test/json/test_json_addition.rb Index: ChangeLog =================================================================== --- ChangeLog (revision 33141) +++ ChangeLog (revision 33142) @@ -1,3 +1,7 @@ +Wed Aug 31 15:54:11 2011 NARUSE, Yui <naruse@r...> + + * ext/json: Merge json gem v1.5.4 (3dab4c5a6a97fac03dac). + Wed Aug 31 13:09:41 2011 Marc-Andre Lafortune <ruby-core@m...> * numeric.c (flo_round): Avoid overflow by optimizing for trivial Index: ext/json/generator/generator.c =================================================================== --- ext/json/generator/generator.c (revision 33141) +++ ext/json/generator/generator.c (revision 33142) @@ -1001,6 +1001,8 @@ * * *allow_nan*: true if NaN, Infinity, and -Infinity should be * generated, otherwise an exception is thrown, if these values are * encountered. This options defaults to false. + * * *quirks_mode*: Enables quirks_mode for parser, that is for example + * generating single JSON values instead of documents is possible. */ static VALUE cState_initialize(int argc, VALUE *argv, VALUE self) { Index: ext/json/lib/json/add/complex.rb =================================================================== --- ext/json/lib/json/add/complex.rb (revision 0) +++ ext/json/lib/json/add/complex.rb (revision 33142) @@ -0,0 +1,22 @@ +unless defined?(::JSON::JSON_LOADED) and ::JSON::JSON_LOADED + require 'json' +end +defined?(::Complex) or require 'complex' + +class Complex + def self.json_create(object) + Complex(object['r'], object['i']) + end + + def as_json(*) + { + JSON.create_id => self.class.name, + 'r' => real, + 'i' => imag, + } + end + + def to_json(*) + as_json.to_json + end +end Index: ext/json/lib/json/add/core.rb =================================================================== --- ext/json/lib/json/add/core.rb (revision 33141) +++ ext/json/lib/json/add/core.rb (revision 33142) @@ -241,39 +241,3 @@ as_json.to_json end end - -class Rational - def self.json_create(object) - Rational(object['n'], object['d']) - end - - def as_json(*) - { - JSON.create_id => self.class.name, - 'n' => numerator, - 'd' => denominator, - } - end - - def to_json(*) - as_json.to_json - end -end - -class Complex - def self.json_create(object) - Complex(object['r'], object['i']) - end - - def as_json(*) - { - JSON.create_id => self.class.name, - 'r' => real, - 'i' => imag, - } - end - - def to_json(*) - as_json.to_json - end -end Index: ext/json/lib/json/add/rational.rb =================================================================== --- ext/json/lib/json/add/rational.rb (revision 0) +++ ext/json/lib/json/add/rational.rb (revision 33142) @@ -0,0 +1,22 @@ +unless defined?(::JSON::JSON_LOADED) and ::JSON::JSON_LOADED + require 'json' +end +defined?(::Rational) or require 'rational' + +class Rational + def self.json_create(object) + Rational(object['n'], object['d']) + end + + def as_json(*) + { + JSON.create_id => self.class.name, + 'n' => numerator, + 'd' => denominator, + } + end + + def to_json(*) + as_json.to_json + end +end Index: ext/json/parser/parser.c =================================================================== --- ext/json/parser/parser.c (revision 33141) +++ ext/json/parser/parser.c (revision 33142) @@ -1618,6 +1618,9 @@ * defaults to true. * * *object_class*: Defaults to Hash * * *array_class*: Defaults to Array + * * *quirks_mode*: Enables quirks_mode for parser, that is for example + * parsing single JSON values instead of documents is possible. + * */ static VALUE cParser_initialize(int argc, VALUE *argv, VALUE self) { Index: test/json/test_json_addition.rb =================================================================== --- test/json/test_json_addition.rb (revision 33141) +++ test/json/test_json_addition.rb (revision 33142) @@ -3,7 +3,7 @@ require 'test/unit' require File.join(File.dirname(__FILE__), 'setup_variant') -load 'json/add/core.rb' +require 'json/add/core.rb' require 'date' class TC_JSONAddition < Test::Unit::TestCase -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/