Browse files

DRY up and tweak style of the validation error object.

git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@4213 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
  • Loading branch information...
1 parent 32f66f0 commit 37758cde13b2d15d11b2a9e407d9c269cd24715f Marcel Molina committed Apr 15, 2006
Showing with 7 additions and 14 deletions.
  1. +7 −14 activerecord/lib/active_record/validations.rb
View
21 activerecord/lib/active_record/validations.rb
@@ -97,13 +97,9 @@ def invalid?(attribute)
# * Returns the error message, if one error is associated with the specified +attribute+.
# * Returns an array of error messages, if more than one error is associated with the specified +attribute+.
def on(attribute)
- if @errors[attribute.to_s].nil?
- nil
- elsif @errors[attribute.to_s].length == 1
- @errors[attribute.to_s].first
- else
- @errors[attribute.to_s]
- end
+ errors = @errors[attribute.to_s]
+ return nil if errors.nil?
+ errors.size == 1 ? errors.first : errors
end
alias :[] :on
@@ -139,13 +135,12 @@ def full_messages
end
end
end
-
- return full_messages
+ full_messages
end
# Returns true if no errors have been added.
def empty?
- return @errors.empty?
+ @errors.empty?
end
# Removes all the errors that have been added.
@@ -156,9 +151,7 @@ def clear
# Returns the total number of errors added. Two errors added to the same attribute will be counted as such
# with this as well.
def size
- error_count = 0
- @errors.each_value { |attribute| error_count += attribute.length }
- error_count
+ @errors.values.inject(0) { |error_count, attribute| error_count + attribute.size }
end
alias_method :count, :size
@@ -290,7 +283,7 @@ def evaluate_condition(condition, record)
# method, proc or string should return or evaluate to a true or false value.
def validates_each(*attrs)
options = attrs.last.is_a?(Hash) ? attrs.pop.symbolize_keys : {}
- attrs = attrs.flatten
+ attrs = attrs.flatten
# Declare the validation.
send(validation_method(options[:on] || :save)) do |record|

0 comments on commit 37758cd

Please sign in to comment.