Quickly open the source file of a Class, Module, or Method in your favourite editor, from Ruby.
First make sure your EDITOR environment variable is set (How do I find and set my $EDITOR environment variable?).
Then use as you wish
# probably in a console, though doesn't have to be require 'open_source' # not needed if it's in your Gemfile, and this environment is loaded by bundler open_source "User" # opens file where User class is defined oso User # same as above; use the aliases for ease of use! oso Authenticable # opens file where Authenticable module is defined oso :log # opens file where "log" method is defined oso "log" # same oso method :log # you get the idea oso Rails.method(:application) oso User.instance_method(:name)
Line numbers are supported too, currently for Vi and VsCode.
Using a specific editor for this gem
It's possible to use the
OPEN_SOURCE_GEM_EDITOR env variable to set a specific editor for use with this gem, if you don't want to use your standard
# .bashrc or wherever export EDITOR=vim # standard terminal based editor export OPEN_SOURCE_GEM_EDITOR=gvim # a GUI version; opens in a different window. Takes priority over EDITOR
This is optional, and if you normally use a GUI editor anyway it probably won't be needed.
Add this line to your application's Gemfile:
gem 'open_source_location', require: "open_source"
And then execute:
$ bundle install
Or install it yourself as:
$ gem install open_source_location
Just make sure you then
require 'open_source' where you need it.
After checking out the repo, run
bin/setup to install dependencies. Then, run
rake spec to run the tests. You can also run
bin/console for an interactive prompt that will allow you to experiment.
To install this gem onto your local machine, run
bundle exec rake install. To release a new version, update the version number in
version.rb, and then run
bundle exec rake release, which will create a git tag for the version, push git commits and the created tag, and push the
.gem file to rubygems.org.
Bug reports and pull requests are welcome on GitHub at https://github.com/johansenja/open_source.
The gem is available as open source under the terms of the MIT License.