I downloaded a plugin and was looking over the code when I came across
ActiveRecord::Base.send. I noticed that several tutorials stated that
you just call the method to mixin your new plugin class. Curious as to
what the actual defintion of the "send" method was, I looked at the
api and found no mention of it.
How does one usually go about searching for the source of the method?
It's not the first method I've come across where it wasn't listed in
the docs so ideally I would like to know what steps you go through to
find the definition of something so the next time I can figure it out
by myself.
send is actually a method that is used to call private methods
declared in a class. Ruby for Rails book has some good tips on how to
go about figuring out whether Base is a class or module and how to
track down the methods.
I downloaded a plugin and was looking over the code when I came across
ActiveRecord::Base.send. I noticed that several tutorials stated that
you just call the method to mixin your new plugin class. Curious as to
what the actual defintion of the "send" method was, I looked at the
api and found no mention of it.
How does one usually go about searching for the source of the method?
It's not the first method I've come across where it wasn't listed in
the docs so ideally I would like to know what steps you go through to
find the definition of something so the next time I can figure it out
by myself.
I downloaded a plugin and was looking over the code when I came across
ActiveRecord::Base.send. I noticed that several tutorials stated that
you just call the method to mixin your new plugin class. Curious as to
what the actual defintion of the "send" method was, I looked at the
api and found no mention of it.
don't forget Rails is "just" a framework on top of Rails, but the programming language itself is Ruby. In this case, "send" is one of the methods Object (in Ruby). It's one of the ways available for dynamically call a method on any object.
How does one usually go about searching for the source of the method?
If you cannot find the method in the source of your class, then take a look at its mixins and parent classes.
If still not there, then it's very likely that it is a method either of Object, Class or Module, in Ruby. Unfortunately, the source of these methods is in C, in case you want to take a look at their source. The good news is that the C code is pretty well structured and commented, so many times it's readable enough.