summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Frank <flori@ping.de>2014-09-26 20:03:53 +0200
committerFlorian Frank <flori@ping.de>2014-09-26 20:03:53 +0200
commit6f444f96caf157ba9e656b17f9bced34bb8ffcdc (patch)
treef9f90b6402cc2b7e4505aab806a73f3fc09ec7fb
parent5a4331918f61a8a4dbe12df8a12f66e5b4e4811a (diff)
parent98780de119d7857f0b83fa61123fd7d768414abb (diff)
downloadjson-6f444f96caf157ba9e656b17f9bced34bb8ffcdc.tar.gz
Merge pull request #217 from jasonrclark/dont_mutate_dump_default_options
Don't mutate JSON.dump_default_options from dump
-rw-r--r--lib/json/common.rb2
-rwxr-xr-xtests/test_json.rb6
2 files changed, 7 insertions, 1 deletions
diff --git a/lib/json/common.rb b/lib/json/common.rb
index 426d933..32d9892 100644
--- a/lib/json/common.rb
+++ b/lib/json/common.rb
@@ -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
diff --git a/tests/test_json.rb b/tests/test_json.rb
index 6af6b32..f4e6696 100755
--- a/tests/test_json.rb
+++ b/tests/test_json.rb
@@ -515,6 +515,12 @@ EOT
assert_equal too_deep, output.string
end
+ def test_dump_should_modify_defaults
+ max_nesting = JSON.dump_default_options[:max_nesting]
+ JSON.dump([], StringIO.new, 10)
+ assert_equal max_nesting, JSON.dump_default_options[:max_nesting]
+ end
+
def test_big_integers
json1 = JSON([orig = (1 << 31) - 1])
assert_equal orig, JSON[json1][0]