From 4a481ad400a88e704d07c68aa8112c2a28bdf2c9 Mon Sep 17 00:00:00 2001 From: hsbt Date: Sun, 28 Dec 2014 22:29:11 +0000 Subject: * ext/json, test/json: merge JSON HEAD(17fe8e7) https://github.com/flori/json/compare/v1.8.1...17fe8e7 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49051 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ext/json/lib/json/add/complex.rb | 8 +++++++- ext/json/lib/json/add/rational.rb | 5 +++++ ext/json/lib/json/add/time.rb | 2 +- ext/json/lib/json/common.rb | 8 ++++---- 4 files changed, 17 insertions(+), 6 deletions(-) (limited to 'ext/json/lib') diff --git a/ext/json/lib/json/add/complex.rb b/ext/json/lib/json/add/complex.rb index d7ebebf5f7..2723f60103 100644 --- a/ext/json/lib/json/add/complex.rb +++ b/ext/json/lib/json/add/complex.rb @@ -4,10 +4,15 @@ end defined?(::Complex) or require 'complex' class Complex + + # Deserializes JSON string by converting Real value r, imaginary + # value i, to a Complex object. def self.json_create(object) Complex(object['r'], object['i']) end + # Returns a hash, that will be turned into a JSON object and represent this + # object. def as_json(*) { JSON.create_id => self.class.name, @@ -16,7 +21,8 @@ class Complex } end + # Stores class name (Complex) along with real value r and imaginary value i as JSON string def to_json(*) as_json.to_json end -end +end \ No newline at end of file diff --git a/ext/json/lib/json/add/rational.rb b/ext/json/lib/json/add/rational.rb index 867cd92f05..ee39c20e8d 100644 --- a/ext/json/lib/json/add/rational.rb +++ b/ext/json/lib/json/add/rational.rb @@ -4,10 +4,14 @@ end defined?(::Rational) or require 'rational' class Rational + # Deserializes JSON string by converting numerator value n, + # denominator value d, to a Rational object. def self.json_create(object) Rational(object['n'], object['d']) end + # Returns a hash, that will be turned into a JSON object and represent this + # object. def as_json(*) { JSON.create_id => self.class.name, @@ -16,6 +20,7 @@ class Rational } end + # Stores class name (Rational) along with numerator value n and denominator value d as JSON string def to_json(*) as_json.to_json end diff --git a/ext/json/lib/json/add/time.rb b/ext/json/lib/json/add/time.rb index 338209d899..d9834677ac 100644 --- a/ext/json/lib/json/add/time.rb +++ b/ext/json/lib/json/add/time.rb @@ -10,7 +10,7 @@ class Time if usec = object.delete('u') # used to be tv_usec -> tv_nsec object['n'] = usec * 1000 end - if instance_methods.include?(:tv_nsec) + if method_defined?(:tv_nsec) at(object['s'], Rational(object['n'], 1000)) else at(object['s'], object['n'] / 1000) diff --git a/ext/json/lib/json/common.rb b/ext/json/lib/json/common.rb index 8fbaa2baad..f44184e138 100644 --- a/ext/json/lib/json/common.rb +++ b/ext/json/lib/json/common.rb @@ -148,7 +148,7 @@ module JSON # the default. # * *create_additions*: If set to false, the Parser doesn't create # additions even if a matching class and create_id was found. This option - # defaults to true. + # defaults to false. # * *object_class*: Defaults to Hash # * *array_class*: Defaults to Array def parse(source, opts = {}) @@ -169,7 +169,7 @@ module JSON # to true. # * *create_additions*: If set to false, the Parser doesn't create # additions even if a matching class and create_id was found. This option - # defaults to true. + # defaults to false. def parse!(source, opts = {}) opts = { :max_nesting => false, @@ -390,7 +390,7 @@ module JSON end end opts = JSON.dump_default_options - limit and opts.update(:max_nesting => limit) + opts = opts.merge(:max_nesting => limit) if limit result = generate(obj, opts) if anIO anIO.write result @@ -411,7 +411,7 @@ module JSON string end - # Shortuct for iconv. + # Shortcut for iconv. if ::String.method_defined?(:encode) # Encodes string using Ruby's _String.encode_ def self.iconv(to, from, string) -- cgit v1.2.3