2010-07-16 71 views
14

是否有一种干净的方式从.gemspec文件中提取版本字符串? (宝石尚未安装)如何从gemspec文件获取版本?

例如somethingcool.gemspec是

Gem::Specification.new do |s| 
    s.name = "somethingcool" 
    s.version = "1.2.3" 
    ... etc ... 
end 

我想提取“1.2.3”。

我可以grep它,但必须有更好的方法。

回答

24
require "rubygems" 

spec = Gem::Specification::load("example.gemspec") 
puts spec.version 
+0

谢谢 - 工作的一种享受。 – 2010-07-20 04:51:38

+0

也有https://github.com/packsaddle/ruby-parse_gemspec gem,[实施](https://github.com/packsaddle/ruby-parse_gemspec/blob/master/lib/parse_gemspec/specification.rb)为通过'Gem :: Specification.load'和[CLI](https://github.com/packsaddle/ruby-parse_gemspec-cli)打印出JSON的薄包装。 – 2018-02-25 11:21:42