diff options
author | Florian Frank <flori@ping.de> | 2014-09-26 20:03:53 +0200 |
---|---|---|
committer | Florian Frank <flori@ping.de> | 2014-09-26 20:03:53 +0200 |
commit | 6f444f96caf157ba9e656b17f9bced34bb8ffcdc (patch) | |
tree | f9f90b6402cc2b7e4505aab806a73f3fc09ec7fb | |
parent | 5a4331918f61a8a4dbe12df8a12f66e5b4e4811a (diff) | |
parent | 98780de119d7857f0b83fa61123fd7d768414abb (diff) | |
download | json-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.rb | 2 | ||||
-rwxr-xr-x | tests/test_json.rb | 6 |
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] |