Ruby on Rails Saturday, March 21, 2020

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


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.plusplus@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 <sarun101@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+unsubscribe@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+unsubscribe@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.

--
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+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/CAPS3bcBXi0BiPo%2BkB7nT8QdNP2orFYcg0oM95pQBDYodyUtQpA%40mail.gmail.com.

No comments:

Post a Comment