查看宝石的源代码(Viewing a Gem's Source Code)

2019-07-29 06:12发布

红宝石半吊子/新手在这里谁是不熟悉的生态系统,所以道歉,如果这是那些超级咄问题之一。

有没有一种方法来检视宝石安装的所有文件和/或源代码? 也就是说,我只是跑

$ gem install sass

而上海社会科学院宝石现在是我的本地系统的一部分

$ gem list --local
...
sass (3.1.16, 3.1.2)
...

我想知道什么gem install在我的系统命令放。 是否有一个命令,我可以看到运行在创业板安装的所有文件?

一些google搜索后, man gemgem help commands ,我发现了contents命令。

$宝石内容SASS

然而 ,当我运行与上述萨斯宝石这个命令,我得到下面的结果

.../.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

然而,这份名单似乎不完整的,因为我知道在文件

.../.rvm/gems/ruby-1.9.2-p180/gems/sass-3.1.2/lib/

为什么contents不显示在文件lib

是否有可能为一个gem安装到宝石文件夹之外的安装文件吗?

有没有可以显示由宝石安装了一切的命令?

Answer 1:

创业板有一个解压缩命令: http://guides.rubygems.org/command-reference/#gem-unpack

gem unpack rake
ls rake-0.4.3/


Answer 2:

有两个真正的好办法做到这一点。 还有另一种宝石,它允许你打开宝石和编辑。 这种宝石召唤宝石开

gem install gem-open 

然后

gem open sass

另一种方法是生成自己的rdocs。

gem rdoc sass

然后你可以看一下你的rdocs通过

gem server

此外,如果你正在使用RVM,您可以键入rvm info ,它会显示GEM_HOME位置。 这将是所有的宝石的源代码。

cd $GEM_HOME
cd gems/sass-3.1.2/

更新:

这是使用捆绑时,我主要是做现在这个样子,方式。

cd $(bundle show sass) 

这将是你的Gemfile青菜的版本。



Answer 3:

我通常从控制台运行此命令打开宝石

EDITOR=<your editor> bundle open <name of gem>


Answer 4:

你提到的lib /目录是创业板的3.1.2版本; gem contents--version将只列出一个版本( 这似乎挑最新的版本,但我无法证实这是总是如此 )。 你得到的是什么输出gem contents --version 3.1.2 sass



Answer 5:

您也可以只使用重命名.gem文件的.tar并提取作为POSIX存档。 源代码是在其内部中的lib文件夹中。 见https://blog.srcclr.com/extracting-ruby-source-code-from-gem-packages/了解更多详情。



Answer 6:

除了gem contents ,你可能会发现有用的另一个命令是gem environment 。 如果您有多个路径,为您的创业板安装,他们都将在“创业板路径”标签中列出。



文章来源: Viewing a Gem's Source Code
标签: ruby rubygems