diff --git a/lib/validates_timeliness/helper_methods.rb b/lib/validates_timeliness/helper_methods.rb index 58aec52..d5d5bb1 100644 --- a/lib/validates_timeliness/helper_methods.rb +++ b/lib/validates_timeliness/helper_methods.rb @@ -10,32 +10,30 @@ module ValidatesTimeliness end module ValidationMethods - def validates_timeliness_of(*attr_names) + def validates_date(*attr_names) + timeliness_validation_for attr_names, :date + end + + def validates_time(*attr_names) + timeliness_validation_for attr_names, :time + end + + def validates_datetime(*attr_names) + timeliness_validation_for attr_names, :datetime + end + + def timeliness_validation_for(attr_names, type) options = _merge_attributes(attr_names) - attributes = options[:attributes].inject({}) {|validated, attr_name| + options[:type] = type + attributes = attr_names.inject({}) {|validated, attr_name| attr_name = attr_name.to_s - validated[attr_name] = options[:type] + validated[attr_name] = type validated } self.timeliness_validated_attributes = attributes validates_with Validator, options end - def validates_date(*attr_names) - options = attr_names.extract_options! - validates_timeliness_of *(attr_names << options.merge(:type => :date)) - end - - def validates_time(*attr_names) - options = attr_names.extract_options! - validates_timeliness_of *(attr_names << options.merge(:type => :time)) - end - - def validates_datetime(*attr_names) - options = attr_names.extract_options! - validates_timeliness_of *(attr_names << options.merge(:type => :datetime)) - end - end end end