One thing you can do is use a gem like byebug, put a breakpoint above the
code you want to find it's location and use this:

method(:name_of_method).source_location

if you put a breakpoint inside your routes.rb and call:

method(:get).source_location

it returns something like:

...../gems/actionpack-6.0.2.2/lib/action_dispatch/routing/mapper.rb, 711

Than you can check the source on github

https://github.com/rails/rails/blob/v6.0.2.2/actionpack/lib/action_dispatch/routing/mapper.rb#L711

It doesn't always work, you can have methods generated on the fly using
define_method for example I'm not sure source_location gives you the right
source there.

El sáb., 21 mar. 2020 a las 17:36, Ilya Makedon (<
engineer.plusp...@gmail.com>) escribió:

> San Ji, thank for your answer.  But how does Ruby runtime know which
> function to call?  There must be a way for human to mimic that...  Right?
>
> On Sat, Mar 21, 2020 at 10:35 AM San Ji <sarun...@gmail.com> wrote:
>
>> To my knowledge, what you are looking for is not possible for Ruby.
>>
>> What you got in RubyMine is the closest, basically it index all words and
>> apply some language heuristics to scope down choices. This is good enough
>> in most cases.
>>
>> Systematic way to do it is impossible because Ruby supports
>> metaprogramming.
>> Take ActiveRecord as an example, you got attribute-related methods that
>> defines in databases, not even in Ruby code. If you connect to different
>> databases, the method definitions will be different. Nothing can even point
>> that out (represent that) properly, at least not with user interface of an
>> IDE.
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "Ruby on Rails: Talk" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to rubyonrails-talk+unsubscr...@googlegroups.com.
>> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/rubyonrails-talk/63fd8953-f3a8-47a9-a931-17dd2eb3cce4%40googlegroups.com
>> .
>>
>
>
> --
> --------------------------
> - Ilya Makedon
>
> --
> You received this message because you are subscribed to the Google Groups
> "Ruby on Rails: Talk" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to rubyonrails-talk+unsubscr...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/rubyonrails-talk/CAOJppg6O0txtYvKgXzEVaeNqM_%3D5Czofe-4vQZZCi-uYHFTaBA%40mail.gmail.com
> <https://groups.google.com/d/msgid/rubyonrails-talk/CAOJppg6O0txtYvKgXzEVaeNqM_%3D5Czofe-4vQZZCi-uYHFTaBA%40mail.gmail.com?utm_medium=email&utm_source=footer>
> .
>

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to rubyonrails-talk+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/rubyonrails-talk/CAPS3bcBXi0BiPo%2BkB7nT8QdNP2orFYcg0oM95pQBDYodyUtQpA%40mail.gmail.com.

Reply via email to