Skip to content

Commit 58525b0

Browse files
committed
MultiJson does not modify arguments
Related to #92
1 parent aebe316 commit 58525b0

2 files changed

Lines changed: 7 additions & 1 deletion

File tree

lib/multi_json.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ def load(string, options={})
119119
alias :decode :load
120120

121121
def current_adapter(options={})
122-
if new_adapter = options.delete(:adapter)
122+
if new_adapter = options[:adapter]
123123
load_adapter(new_adapter)
124124
else
125125
adapter

spec/adapter_shared_example.rb

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,12 @@
1212

1313
it_behaves_like 'has options', lambda{ MultiJson.adapter }
1414

15+
it 'does not modify argument hashes' do
16+
options = { :symbolize_keys => true, :pretty => false, :adapter => :json_gem }
17+
expect{MultiJson.load('{}', options)}.to_not change{options}
18+
expect{MultiJson.dump([42], options)}.to_not change{options}
19+
end
20+
1521
describe '.dump' do
1622
describe '#dump_options' do
1723
before{ MultiJson.dump_options = MultiJson.adapter.dump_options = {} }

0 commit comments

Comments
 (0)