Notes posted by heizusan
RSS feed
read_attribute/write_attribute
I went back and looked at my notes from my previous project.
Yep, these methods were removed from ActiveRecord::Base in an early version, and moved into a Module called AttributeMethods, which is then included in ActiveRecord::Base.
So the methods are available in ActiveRecord::Base… but they are defined elsewhere.
APIdock could benefit from some better linkage, and possibly a better parser to get some of the more dynamically defined methods.

Missing method definitions
THAiSi, and any others wondering this as well:
I’ve done some pretty extensive digging in to the rails code, for a couple of projects, and I’ve found that there are several methods that don’t appear in APIDock. There are several reasons for this, but I’m not sure read_attribute falls under any of them. Perhaps it has something to do with read_attribute being defined and/or redefined in the foundation for rails (they actually do some stuff to mask out a ton of default behavior of ruby for these classes, and add their own level of inheritance functionality. Things like cattr_accessor - which is like attr_accessor, but for a class, rather than an object…
class Object < ActiveRecord::Base cattr_accessor some_attr end
would allow for reading and writing a value on the class, itself. i.e.
Object.some_attr = 5
In addition, several methods, regarding validations, callbacks, etc. are actually defined dynamically, based on things like the model name, using class_eval. These are not grabbed *at all* by APIdock, and this is where I spent most of my effort in reverse engineering how rails behaves.
Hope that helps.