The other day when I was dabbling with the huge codebase, I was wondering where a particular method was being declared for a specific method. I wanted to know this because my greps didn't turn out to volatile and didn't return any results.
The Solution
The Ruby interpreter has certain methods that can be used for identifying under which module or class, the particular method is being defined. See the example below.
module Foo
def say_hello
puts "hello"
end
end
class Bar
include Foo
end
puts Bar.new.method(:say_hello) #=> #<Method: Bar(Foo)#say_hello>
puts Bar.new.method(:say_hello).source_location #=> hello.rb
So using the .source_location you will be able to figure which file it has been declared.






