shi*_*iva 3 rubygems ruby-on-rails ruby-on-rails-3
我正在编写一个脚本来从 Rails 项目的 gemfile 中获取所有 gem。脚本是这样的
@gem_file_path=File.expand_path('../Gemfile', __FILE__) || ENV['BUNDLE_GEMFILE'] || Dir.pwd + "/Gemfile"
File.open(gem_file_path).read.each_line do |i|
i=i.split
if i[0] == "gem" && i[0].start_with?("gem")
name = i[1].gsub(",","")
gem_name= eval name
author_email_id=Gem::Specification.find_by_name(gem_name.to_s).email
author_name=Gem::Specification.find_by_name(gem_name).author
end
end
Run Code Online (Sandbox Code Playgroud)
有更好的方法吗?因为当 gemfile 和其他可能性中提到类似下面的内容时,我也会遇到问题
gem 'rspec-rails',:group => [:test,:development]
Run Code Online (Sandbox Code Playgroud)
谢谢
对于像我这样多年后偶然发现这个问题的人,我发现您可以通过执行以下操作来访问 Gemfile 中引用的 gem,而无需实际运行 gemfile:
Bundler::Definition.build('Gemfile', nil, {}).dependencies
Run Code Online (Sandbox Code Playgroud)
这里的“Gemfile”应该是当前文件到 Gemfile 的路径。
归功于 Troy Verbrugge 对捆绑器代码的深入研究。
| 归档时间: |
|
| 查看次数: |
2728 次 |
| 最近记录: |