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