If you've ever used Ruby you have probably used Bundler through it's command line tool bundle. There's quite a few things you can do with bundle, from the more common bundle install or bundle exec, to the less frequently mentioned bundle outdated.

In between those there is a very useful command, bundle open, which will open the code for a specified gem with an editor you can also configure.

Configuring the editor is as simple as defining an environment variable with your editor of choice, which in my case is vim:

export $EDITOR=vim

Now, if I run bundle open rails, I'll have vim open with the rails source code for the version in the current bundle. Neat.

ctags

If you want to have something similar integrated with your editor you can look at ctags and how to install them in your machine and editor. But it will basically go through source code of languages it recognizes (a lot) and generate an index file for them, so that you can easily look up methods, class definitions, etc.

For example, in my vim setup I have a map of fd (find definition) that uses ctags, so that I can go directly from my source code to a gem's source code and back without ever leaving my editor.

The main issue with ctags is that it's pretty much a cache, and you need to update it every time you install a gem or update its version. Luckily (and for those of you who use vim certainly not for the first time) Tim Pope comes to the rescue with the gem-ctags gem, that will do that updating for you.

More Ruby Bits

If you've enjoyed this Ruby Bit you should really subscribe to our newsletter, where other Ruby Bits and more great articles are shared every week.