ruby running Viewing a Gem's Source Code
running a ruby gem (5)
In addition to
gem contents, another command you might find useful is
gem environment. If you have multiple paths for your gem installations, they will all be listed under the "GEM PATHS" label.
Ruby dabbler/newbie here who's not familiar with the ecosystem, so apologies if this is one of those super duh questions.
Is there a way to view all the files and/or source code installed by a gem? That is, I just ran
$ gem install sass
And the sass gem is now a part of my local system
$ gem list --local ... sass (3.1.16, 3.1.2) ...
I want to know what the
gem install command put on my system. Is there a command I can run to see all the files installed by the gem?
After some googling,
man gem and
gem help commands, I discovered the
$ gem contents sass
However, when I run this command with the aforementioned sass gem, I get the following results
.../.rvm/gems/ruby-1.9.2-p180/gems/sass-3.1.16/test/sass/engine_test.rb .../.rvm/gems/ruby-1.9.2-p180/gems/sass-3.1.16/test/sass/functions_test.rb .../.rvm/gems/ruby-1.9.2-p180/gems/sass-3.1.16/test/sass/extend_test.rb .../.rvm/gems/ruby-1.9.2-p180/gems/sass-3.1.16/test/sass/logger_test.rb .../.rvm/gems/ruby-1.9.2-p180/gems/sass-3.1.16/test/sass/css2sass_test.rb .../.rvm/gems/ruby-1.9.2-p180/gems/sass-3.1.16/test/sass/conversion_test.rb .../.rvm/gems/ruby-1.9.2-p180/gems/sass-3.1.16/test/sass/script_test.rb .../.rvm/gems/ruby-1.9.2-p180/gems/sass-3.1.16/test/sass/util/subset_map_test.rb .../.rvm/gems/ruby-1.9.2-p180/gems/sass-3.1.16/test/sass/util/multibyte_string_scanner_test.rb .../.rvm/gems/ruby-1.9.2-p180/gems/sass-3.1.16/test/sass/callbacks_test.rb .../.rvm/gems/ruby-1.9.2-p180/gems/sass-3.1.16/test/sass/importer_test.rb .../.rvm/gems/ruby-1.9.2-p180/gems/sass-3.1.16/test/sass/scss/css_test.rb .../.rvm/gems/ruby-1.9.2-p180/gems/sass-3.1.16/test/sass/scss/scss_test.rb .../.rvm/gems/ruby-1.9.2-p180/gems/sass-3.1.16/test/sass/scss/rx_test.rb .../.rvm/gems/ruby-1.9.2-p180/gems/sass-3.1.16/test/sass/util_test.rb .../.rvm/gems/ruby-1.9.2-p180/gems/sass-3.1.16/test/sass/script_conversion_test.rb .../.rvm/gems/ruby-1.9.2-p180/gems/sass-3.1.16/test/sass/less_conversion_test.rb .../.rvm/gems/ruby-1.9.2-p180/gems/sass-3.1.16/test/sass/cache_test.rb .../.rvm/gems/ruby-1.9.2-p180/gems/sass-3.1.16/test/sass/plugin_test.rb .../.rvm/gems/ruby-1.9.2-p180/gems/sass-3.1.16/bin/sass .../.rvm/gems/ruby-1.9.2-p180/gems/sass-3.1.16/bin/sass-convert .../.rvm/gems/ruby-1.9.2-p180/gems/sass-3.1.16/bin/scss
However, this list seems incomplete as I know there are files in
contents not show the files from
Is it possible for a
gem installer to install files outside of the gems folder?
Is there a command that can show everything installed by a gem?
I usually open a gem by running this command from the console
EDITOR=<your editor> bundle open <name of gem>
gem has an unpack command: http://guides.rubygems.org/command-reference/#gem-unpack
gem unpack rake ls rake-0.4.3/
The lib/ directory you mentioned is for version 3.1.2 of the gem;
gem contents without
--version will just list one version (it appears to pick the newest version, but I'm unable to verify this is always true). What output do you get for
gem contents --version 3.1.2 sass?
There are two really good ways to do this. There is another gem which allows you to open the gem and edit. This gem is call gem-open
gem install gem-open
gem open sass
Another way is to generate your own rdocs.
gem rdoc sass
You can then look at your rdocs by
Also if you are using rvm, you can type
rvm info and it will show
This will be where all your gems source code is.
cd $GEM_HOME cd gems/sass-3.1.2/
This is the way I mostly do this now, when using bundler.
cd $(bundle show sass)
This will be the version of sass in your Gemfile.