Files

Class/Module Index [+]

Quicksearch

ActiveRecord::AttributeMethods::ClassMethods

Public Instance Methods

attribute_methods_generated?() click to toggle source
# File lib/active_record/attribute_methods.rb, line 18
def attribute_methods_generated?
  @attribute_methods_generated ||= false
end
define_attribute_methods() click to toggle source

Generates all the attribute related methods for columns in the database accessors, mutators and query methods.

# File lib/active_record/attribute_methods.rb, line 12
def define_attribute_methods
  return if attribute_methods_generated?
  super(column_names)
  @attribute_methods_generated = true
end
defined_activerecord_methods() click to toggle source
# File lib/active_record/attribute_methods.rb, line 42
def defined_activerecord_methods
  active_record = ActiveRecord::Base
  super_klass   = ActiveRecord::Base.superclass
  methods = (active_record.instance_methods - super_klass.instance_methods) +
            (active_record.private_instance_methods - super_klass.private_instance_methods)
  methods.map {|m| m.to_s }.to_set
end
instance_method_already_implemented?(method_name) click to toggle source

Checks whether the method is defined in the model or any of its subclasses that also derive from Active Record. Raises DangerousAttributeError if the method is defined by Active Record though.

# File lib/active_record/attribute_methods.rb, line 30
def instance_method_already_implemented?(method_name)
  method_name = method_name.to_s
  index = ancestors.index(ActiveRecord::Base) || ancestors.length
  @_defined_class_methods         ||= ancestors.first(index).map { |m|
    m.instance_methods(false) | m.private_instance_methods(false)
  }.flatten.map {|m| m.to_s }.to_set

  @@_defined_activerecord_methods ||= defined_activerecord_methods
  raise DangerousAttributeError, "#{method_name} is defined by ActiveRecord" if @@_defined_activerecord_methods.include?(method_name)
  @_defined_class_methods.include?(method_name)
end
undefine_attribute_methods(*args) click to toggle source
# File lib/active_record/attribute_methods.rb, line 22
def undefine_attribute_methods(*args)
  super
  @attribute_methods_generated = false
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.