aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib
diff options
context:
space:
mode:
authorCarlos Antonio da Silva <carlosantoniodasilva@gmail.com>2012-06-28 00:05:44 -0300
committerCarlos Antonio da Silva <carlosantoniodasilva@gmail.com>2012-08-18 09:55:37 -0300
commit95f6b1245d2e45cba87642ac1884c3d6226ba164 (patch)
treed3021f514fa905d0be90cba25922047a380250d6 /activerecord/lib
parent022d7b38468f1cb94f783ac402fdd167f6e027fe (diff)
downloadrails-95f6b1245d2e45cba87642ac1884c3d6226ba164.tar.gz
rails-95f6b1245d2e45cba87642ac1884c3d6226ba164.tar.bz2
rails-95f6b1245d2e45cba87642ac1884c3d6226ba164.zip
Some more cleanup to use Hash#values_at, and some method docs
Diffstat (limited to 'activerecord/lib')
-rw-r--r--activerecord/lib/active_record/attribute_assignment.rb10
1 files changed, 7 insertions, 3 deletions
diff --git a/activerecord/lib/active_record/attribute_assignment.rb b/activerecord/lib/active_record/attribute_assignment.rb
index 8188057848..f695c384cb 100644
--- a/activerecord/lib/active_record/attribute_assignment.rb
+++ b/activerecord/lib/active_record/attribute_assignment.rb
@@ -218,15 +218,15 @@ module ActiveRecord
end
max_position = extract_max_param_for_multiparameter_attributes(values_hash_from_param, 6)
- set_values = (1..max_position).collect{ |position| values_hash_from_param[position] }
+ set_values = values_hash_from_param.values_at(*(1..max_position))
# If Time bits are not there, then default to 0
- (3..5).each { |i| set_values[i] = set_values[i].blank? ? 0 : set_values[i] }
+ (3..5).each { |i| set_values[i] = set_values[i].presence || 0 }
instantiate_time_object(column, name, set_values)
end
def read_date_parameter_value(column, name, values_hash_from_param)
return if blank_date_parameter?(values_hash_from_param)
- set_values = [values_hash_from_param[1], values_hash_from_param[2], values_hash_from_param[3]]
+ set_values = values_hash_from_param.values_at(1,2,3)
begin
Date.new(*set_values)
rescue ArgumentError # if Date.new raises an exception on an invalid date
@@ -243,6 +243,10 @@ module ActiveRecord
klass.new(*values)
end
+ # Checks whether some blank date parameter exists. Note that this is different
+ # than the validate_missing_parameters! method, since it just checks for blank
+ # positions instead of missing ones, and does not raise in case one blank position
+ # exists. The caller is responsible to handle the case of this returning true.
def blank_date_parameter?(values_hash)
(1..3).any? { |position| values_hash[position].blank? }
end