Skip to content

Commit

Permalink
Don't mutate the Base settings by merge!ing the given value
Browse files Browse the repository at this point in the history
  • Loading branch information
amatsuda committed Jul 25, 2013
1 parent fb97a7d commit 64202ab
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 1 deletion.
2 changes: 1 addition & 1 deletion actionmailer/lib/action_mailer/delivery_methods.rb
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ def wrap_delivery_behavior(mail, method=nil, options=nil) # :nodoc:
raise "Delivery method cannot be nil"
when Symbol
if klass = delivery_methods[method]
mail.delivery_method(klass,(send(:"#{method}_settings") || {}).merge!(options || {}))
mail.delivery_method(klass, (send(:"#{method}_settings") || {}).merge(options || {}))
else
raise "Invalid delivery method #{method.inspect}"
end
Expand Down
3 changes: 3 additions & 0 deletions actionmailer/test/delivery_methods_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -152,6 +152,9 @@ def teardown
assert_equal "overridden", delivery_method_instance.settings[:user_name]
assert_equal "somethingobtuse", delivery_method_instance.settings[:password]
assert_equal delivery_method_instance.settings.merge(overridden_options), delivery_method_instance.settings

# make sure that overriding delivery method options per mail instance doesn't affect the Base setting
assert_equal settings, ActionMailer::Base.smtp_settings
end

test "non registered delivery methods raises errors" do
Expand Down

0 comments on commit 64202ab

Please sign in to comment.