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 12: def define_attribute_methods 13: super(columns_hash.keys) 14: end
# File lib/active_record/attribute_methods.rb, line 27 27: def defined_activerecord_methods 28: active_record = ActiveRecord::Base 29: super_klass = ActiveRecord::Base.superclass 30: methods = active_record.public_instance_methods - super_klass.public_instance_methods 31: methods += active_record.private_instance_methods - super_klass.private_instance_methods 32: methods += active_record.protected_instance_methods - super_klass.protected_instance_methods 33: methods.map {|m| m.to_s }.to_set 34: end
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 19 19: def instance_method_already_implemented?(method_name) 20: method_name = method_name.to_s 21: @_defined_class_methods ||= ancestors.first(ancestors.index(ActiveRecord::Base)).sum([]) { |m| m.public_instance_methods(false) | m.private_instance_methods(false) | m.protected_instance_methods(false) }.map {|m| m.to_s }.to_set 22: @@_defined_activerecord_methods ||= defined_activerecord_methods 23: raise DangerousAttributeError, "#{method_name} is defined by ActiveRecord" if @@_defined_activerecord_methods.include?(method_name) 24: @_defined_class_methods.include?(method_name) 25: end
Disabled; run with --debug to generate this.
Generated with the Darkfish Rdoc Generator 1.1.6.