moved mutliparam helper methods our of AR to reduce method pollution

This commit is contained in:
Adam Meehan
2009-07-28 12:52:25 +10:00
parent 7aa1a87731
commit e399c6b510
2 changed files with 35 additions and 26 deletions

View File

@@ -5,6 +5,33 @@ module ValidatesTimeliness
end
module ActiveRecord
class << self
def time_array_to_string(values, type)
values.collect! {|v| v.to_s }
case type
when :date
extract_date_from_multiparameter_attributes(values)
when :time
extract_time_from_multiparameter_attributes(values)
when :datetime
extract_date_from_multiparameter_attributes(values) + " " + extract_time_from_multiparameter_attributes(values)
end
end
def extract_date_from_multiparameter_attributes(values)
year = ValidatesTimeliness::Formats.unambiguous_year(values[0].rjust(2, "0"))
[year, *values.slice(1, 2).map { |s| s.rjust(2, "0") }].join("-")
end
def extract_time_from_multiparameter_attributes(values)
values[3..5].map { |s| s.rjust(2, "0") }.join(":")
end
end
module MultiparameterAttributes
def self.included(base)
@@ -23,7 +50,7 @@ module ValidatesTimeliness
if values.empty?
send("#{name}=", nil)
else
value = time_array_to_string(values, column.type)
value = ValidatesTimeliness::ActiveRecord.time_array_to_string(values, column.type)
send("#{name}=", value)
end
rescue => ex
@@ -37,28 +64,6 @@ module ValidatesTimeliness
execute_callstack_for_multiparameter_attributes_without_timeliness(callstack)
end
def time_array_to_string(values, type)
values.collect! {|v| v.to_s }
case type
when :date
extract_date_from_multiparameter_attributes(values)
when :time
extract_time_from_multiparameter_attributes(values)
when :datetime
extract_date_from_multiparameter_attributes(values) + " " + extract_time_from_multiparameter_attributes(values)
end
end
def extract_date_from_multiparameter_attributes(values)
year = ValidatesTimeliness::Formats.unambiguous_year(values[0].rjust(2, "0"))
[year, *values.slice(1, 2).map { |s| s.rjust(2, "0") }].join("-")
end
def extract_time_from_multiparameter_attributes(values)
values[3..5].map { |s| s.rjust(2, "0") }.join(":")
end
end
end