module ValidatesTimeliness::ORM::ActiveModel::ClassMethods
Public Instance Methods
define_attribute_methods(*attr_names)
click to toggle source
Calls superclass method
# File lib/validates_timeliness/orm/active_model.rb, line 9 def define_attribute_methods(*attr_names) super.tap { define_timeliness_methods } end
define_attribute_timeliness_methods(attr_name, before_type_cast=false)
click to toggle source
# File lib/validates_timeliness/orm/active_model.rb, line 36 def define_attribute_timeliness_methods(attr_name, before_type_cast=false) define_timeliness_write_method(attr_name) define_timeliness_before_type_cast_method(attr_name) if before_type_cast end
define_timeliness_before_type_cast_method(attr_name)
click to toggle source
# File lib/validates_timeliness/orm/active_model.rb, line 52 def define_timeliness_before_type_cast_method(attr_name) generated_timeliness_methods.module_eval <<-STR, __FILE__, __LINE__ + 1 def #{attr_name}_before_type_cast read_timeliness_attribute_before_type_cast('#{attr_name}') end STR end
define_timeliness_methods(before_type_cast=false)
click to toggle source
# File lib/validates_timeliness/orm/active_model.rb, line 17 def define_timeliness_methods(before_type_cast=false) return if timeliness_validated_attributes.blank? timeliness_validated_attributes.each do |attr_name| define_attribute_timeliness_methods(attr_name, before_type_cast) end end
define_timeliness_write_method(attr_name)
click to toggle source
# File lib/validates_timeliness/orm/active_model.rb, line 41 def define_timeliness_write_method(attr_name) generated_timeliness_methods.module_eval <<-STR, __FILE__, __LINE__ + 1 def #{attr_name}=(value) @timeliness_cache ||= {} @timeliness_cache['#{attr_name}'] = value @attributes['#{attr_name}'] = super end STR end
generated_timeliness_methods()
click to toggle source
# File lib/validates_timeliness/orm/active_model.rb, line 24 def generated_timeliness_methods @generated_timeliness_methods ||= Module.new { |m| extend Mutex_m }.tap { |mod| include mod } end
undefine_attribute_methods()
click to toggle source
Calls superclass method
# File lib/validates_timeliness/orm/active_model.rb, line 13 def undefine_attribute_methods super.tap { undefine_timeliness_attribute_methods } end
undefine_timeliness_attribute_methods()
click to toggle source
# File lib/validates_timeliness/orm/active_model.rb, line 30 def undefine_timeliness_attribute_methods generated_timeliness_methods.module_eval do instance_methods.each { |m| undef_method(m) } end end