diff options
author | naruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2011-08-31 07:02:52 +0000 |
---|---|---|
committer | naruse <naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2011-08-31 07:02:52 +0000 |
commit | c9de2578664b0170c41eb61fff526be7120969ed (patch) | |
tree | 9d35ba2972fdf91d270f7db08fd63f764b5b3688 | |
parent | cc6407f8fe4447fa573dd381e7fb66926b9b16c3 (diff) |
merge revision(s) 33142:
* ext/json: Merge json gem v1.5.4 (3dab4c5a6a97fac03dac).
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_3@33143 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | NEWS | 3 | ||||
-rw-r--r-- | ext/json/generator/generator.c | 2 | ||||
-rw-r--r-- | ext/json/lib/json/add/complex.rb | 22 | ||||
-rw-r--r-- | ext/json/lib/json/add/core.rb | 36 | ||||
-rw-r--r-- | ext/json/lib/json/add/rational.rb | 22 | ||||
-rw-r--r-- | ext/json/parser/parser.c | 3 | ||||
-rwxr-xr-x | test/json/test_json_addition.rb | 2 |
8 files changed, 57 insertions, 37 deletions
@@ -1,3 +1,7 @@ +Wed Aug 31 16:02:45 2011 NARUSE, Yui <naruse@ruby-lang.org> + + * ext/json: Merge json gem v1.5.4 (3dab4c5a6a97fac03dac). + Wed Aug 31 13:19:31 2011 Marc-Andre Lafortune <ruby-core@marc-andre.ca> * numeric.c (flo_round): Avoid overflow by optimizing for trivial @@ -182,6 +182,9 @@ with all sufficient information, see the ChangeLog file. * IO#winsize * IO.console +* json + * updated to v1.5.4. + * matrix * new classes: * Matrix::EigenvalueDecomposition diff --git a/ext/json/generator/generator.c b/ext/json/generator/generator.c index 9a90d5f182..9ad037cd40 100644 --- a/ext/json/generator/generator.c +++ b/ext/json/generator/generator.c @@ -1001,6 +1001,8 @@ static VALUE cState_generate(VALUE self, VALUE obj) * * *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) { diff --git a/ext/json/lib/json/add/complex.rb b/ext/json/lib/json/add/complex.rb new file mode 100644 index 0000000000..d7ebebf5f7 --- /dev/null +++ b/ext/json/lib/json/add/complex.rb @@ -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 diff --git a/ext/json/lib/json/add/core.rb b/ext/json/lib/json/add/core.rb index 4624be22c2..1ae00d01a5 100644 --- a/ext/json/lib/json/add/core.rb +++ b/ext/json/lib/json/add/core.rb @@ -241,39 +241,3 @@ class Regexp 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 diff --git a/ext/json/lib/json/add/rational.rb b/ext/json/lib/json/add/rational.rb new file mode 100644 index 0000000000..867cd92f05 --- /dev/null +++ b/ext/json/lib/json/add/rational.rb @@ -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 diff --git a/ext/json/parser/parser.c b/ext/json/parser/parser.c index 4ea663c721..d1d14c79ca 100644 --- a/ext/json/parser/parser.c +++ b/ext/json/parser/parser.c @@ -1618,6 +1618,9 @@ static VALUE convert_encoding(VALUE source) * 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) { diff --git a/test/json/test_json_addition.rb b/test/json/test_json_addition.rb index f28f228c22..6297578f1f 100755 --- a/test/json/test_json_addition.rb +++ b/test/json/test_json_addition.rb @@ -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 |