mirror of
https://github.com/ditkrg/validates_timeliness.git
synced 2026-01-23 22:36:45 +00:00
40 lines
1.0 KiB
Ruby
40 lines
1.0 KiB
Ruby
module ValidatesTimeliness
|
|
module HelperMethods
|
|
extend ActiveSupport::Concern
|
|
|
|
included do
|
|
include ValidationMethods
|
|
extend ValidationMethods
|
|
class_attribute :timeliness_validated_attributes
|
|
self.timeliness_validated_attributes = {}
|
|
end
|
|
|
|
module ValidationMethods
|
|
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)
|
|
options[:type] = type
|
|
attributes = attr_names.inject({}) {|validated, attr_name|
|
|
attr_name = attr_name.to_s
|
|
validated[attr_name] = type
|
|
validated
|
|
}
|
|
self.timeliness_validated_attributes.update(attributes)
|
|
validates_with Validator, options
|
|
end
|
|
|
|
end
|
|
end
|
|
end
|