Permalink
Browse files

Set hash value instead of merge a single key, and use flatten! if pos…

…sible

There's no need to create two extra hashes with options.merge(another_hash),
with the goal of setting only one value, so lets just set it.

Also refactor validates_each to use _merge_attributes, like other
validates_* helpers do.
  • Loading branch information...
1 parent 60571b8 commit 0ee6aa749cde21dad0e5f394a7feb3173f357d2f @carlosantoniodasilva carlosantoniodasilva committed Jun 25, 2012
Showing with 5 additions and 4 deletions.
  1. +1 −2 activemodel/lib/active_model/validations.rb
  2. +4 −2 activemodel/lib/active_model/validations/with.rb
View
3 activemodel/lib/active_model/validations.rb
@@ -82,8 +82,7 @@ module ClassMethods
# <tt>:unless => Proc.new { |user| user.signup_step <= 2 }</tt>). The
# method, proc or string should return or evaluate to a true or false value.
def validates_each(*attr_names, &block)
- options = attr_names.extract_options!.symbolize_keys
- validates_with BlockValidator, options.merge(:attributes => attr_names.flatten), &block
+ validates_with BlockValidator, _merge_attributes(attr_names), &block
end
# Adds a validation method or block to the class. This is useful when
View
6 activemodel/lib/active_model/validations/with.rb
@@ -3,8 +3,10 @@ module Validations
module HelperMethods
private
def _merge_attributes(attr_names)
- options = attr_names.extract_options!
- options.merge(:attributes => attr_names.flatten)
+ options = attr_names.extract_options!.symbolize_keys
+ attr_names.flatten!
+ options[:attributes] = attr_names
+ options
end
end

0 comments on commit 0ee6aa7

Please sign in to comment.