aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPiotr Sarnacki <drogus@gmail.com>2012-01-16 17:22:44 +0100
committerPiotr Sarnacki <drogus@gmail.com>2012-01-16 17:23:40 +0100
commit8e8982cf3bd6358c1639a4def8970f932a9b8980 (patch)
tree83d188e1bf3dde807530a15b5b85b05c9b4bcab0
parent3100b99b549dc6734bbed3ef4459c91da6eeb43e (diff)
downloadrails-8e8982cf3bd6358c1639a4def8970f932a9b8980.tar.gz
rails-8e8982cf3bd6358c1639a4def8970f932a9b8980.tar.bz2
rails-8e8982cf3bd6358c1639a4def8970f932a9b8980.zip
Add ActiveModel::Errors#delete, which was not available after move to use delegation
-rw-r--r--activemodel/lib/active_model/errors.rb5
-rw-r--r--activemodel/test/cases/errors_test.rb7
2 files changed, 12 insertions, 0 deletions
diff --git a/activemodel/lib/active_model/errors.rb b/activemodel/lib/active_model/errors.rb
index 025915fe6f..c6535082d3 100644
--- a/activemodel/lib/active_model/errors.rb
+++ b/activemodel/lib/active_model/errors.rb
@@ -99,6 +99,11 @@ module ActiveModel
messages[key] = value
end
+ # Delete messages for +key+
+ def delete(key)
+ messages.delete(key)
+ end
+
# When passed a symbol or a name of a method, returns an array of errors
# for the method.
#
diff --git a/activemodel/test/cases/errors_test.rb b/activemodel/test/cases/errors_test.rb
index 8ddedb160a..4edeece3e8 100644
--- a/activemodel/test/cases/errors_test.rb
+++ b/activemodel/test/cases/errors_test.rb
@@ -27,6 +27,13 @@ class ErrorsTest < ActiveModel::TestCase
end
end
+ def test_delete
+ errors = ActiveModel::Errors.new(self)
+ errors[:foo] = 'omg'
+ errors.delete(:foo)
+ assert_empty errors[:foo]
+ end
+
def test_include?
errors = ActiveModel::Errors.new(self)
errors[:foo] = 'omg'