mirror of
https://github.com/ditkrg/validates_timeliness.git
synced 2026-01-25 07:16:41 +00:00
Fix multiparameter extension to not allow partial dates as per ActiveRecord implementation.
This commit is contained in:
@@ -21,18 +21,24 @@ module ValidatesTimeliness
|
||||
end
|
||||
|
||||
def instantiate_time_object_with_timeliness(name, values)
|
||||
if Date.valid_civil?(*values[0..2])
|
||||
validate_multiparameter_date_values(values) {
|
||||
instantiate_time_object_without_timeliness(name, values)
|
||||
else
|
||||
invalid_multiparameter_date_or_time_as_string(values)
|
||||
end
|
||||
}
|
||||
end
|
||||
|
||||
def instantiate_date_object(name, values)
|
||||
values = values.map { |v| v.nil? ? 1 : v }
|
||||
Date.new(*values)
|
||||
rescue ArgumentError => ex
|
||||
invalid_multiparameter_date_or_time_as_string(values)
|
||||
validate_multiparameter_date_values(values) {
|
||||
Date.new(*values)
|
||||
}
|
||||
end
|
||||
|
||||
# Yield if date values are valid
|
||||
def validate_multiparameter_date_values(values)
|
||||
if values[0..2].all?{ |v| v.present? } && Date.valid_civil?(*values[0..2])
|
||||
yield
|
||||
else
|
||||
invalid_multiparameter_date_or_time_as_string(values)
|
||||
end
|
||||
end
|
||||
|
||||
def read_value_from_parameter_with_timeliness(name, values_from_param)
|
||||
|
||||
Reference in New Issue
Block a user