我已经构建了一个gem并希望它能够打印它的版本。
我无法使用Gem::Specification.find_by_name('mygem').version
因为它安装了几个版本。
让我们说我的程序只有一个src文件/ bin / myruby包含这个:
#!/usr/bin/env ruby
mygem_version = ???
puts "This is my gems version: #{mygem_version}"
答案 0 :(得分:3)
一个常见的约定是创建一个定义lib/<your_gem_name>/version.rb
常量的YourGemName::VERSION
。然后,您可以在中引用 gemspec
中的常量,这是在构建gem时得到的Ruby代码。
阅读http://timelessrepo.com/making-ruby-gems以获取使用此方法的指南。
答案 1 :(得分:0)
如果您正在使用Bundler
(想想rails
),请尝试
Bundler.definition.specs
否则,确保你的宝石有一个VERSION常数你可以问这些东西
答案 2 :(得分:0)
这对我有用,并且总是返回正确的版本。
#!/usr/bin/env ruby
puts "This is my gems version: #{Gem.loaded_specs['mygem'].version}"