aboutsummaryrefslogtreecommitdiffstats
path: root/activemodel
diff options
context:
space:
mode:
authorRyan Bigg <radarlistener@gmail.com>2010-04-10 00:48:24 +1000
committerJosé Valim <jose.valim@gmail.com>2010-04-10 13:21:20 +0200
commitd748cc3cd07c6931e5ebc5242f268f1f7ec3d906 (patch)
tree287c3ff45d6f2b8cbffa813342d4dd1d04db7914 /activemodel
parent944637648c9399391c6e790740a01eeeac620a5f (diff)
downloadrails-d748cc3cd07c6931e5ebc5242f268f1f7ec3d906.tar.gz
rails-d748cc3cd07c6931e5ebc5242f268f1f7ec3d906.tar.bz2
rails-d748cc3cd07c6931e5ebc5242f268f1f7ec3d906.zip
Re-define empty? for errors to check if the values inside the OrderedHash are empty rather than the OrderedHash itself. [#4356 state:resolved]
Signed-off-by: José Valim <jose.valim@gmail.com>
Diffstat (limited to 'activemodel')
-rw-r--r--activemodel/lib/active_model/errors.rb5
-rw-r--r--activemodel/test/cases/validations_test.rb6
2 files changed, 11 insertions, 0 deletions
diff --git a/activemodel/lib/active_model/errors.rb b/activemodel/lib/active_model/errors.rb
index 64b28f6def..e6c86c7843 100644
--- a/activemodel/lib/active_model/errors.rb
+++ b/activemodel/lib/active_model/errors.rb
@@ -142,6 +142,11 @@ module ActiveModel
to_a.size
end
+ # Returns true if there are any errors, false if not.
+ def empty?
+ all? { |k, v| v && v.empty? }
+ end
+
# Returns an xml formatted representation of the Errors hash.
#
# p.errors.add(:name, "can't be blank")
diff --git a/activemodel/test/cases/validations_test.rb b/activemodel/test/cases/validations_test.rb
index 9fedd84c73..925a68da91 100644
--- a/activemodel/test/cases/validations_test.rb
+++ b/activemodel/test/cases/validations_test.rb
@@ -97,6 +97,12 @@ class ValidationsTest < ActiveModel::TestCase
assert_equal 2, r.errors.count
end
+ def test_errors_empty_after_errors_on_check
+ t = Topic.new
+ assert t.errors[:id].empty?
+ assert t.errors.empty?
+ end
+
def test_validates_each
hits = 0
Topic.validates_each(:title, :content, [:title, :content]) do |record, attr|