Если вы установили pry, то вы можете сделать, как показано ниже, используя метод Pry::Rubygem.installed?
:
[email protected]:~$ irb
2.0.0p0 :001 > require 'pry'
=> true
2.0.0p0 :002 > pry
[1] pry(main)> Pry::Rubygem.installed?('nokogiri')
=> true
[2] pry(main)> Pry::Rubygem.installed?('foo')
=> false
[3] pry(main)>
Или вы можете сделать, как показано ниже:
require 'rubygems'
def installed?(name)
if Gem::Specification.respond_to?(:find_all_by_name)
Gem::Specification.find_all_by_name(name).any?
else
Gem.source_index.find_name(name).first
end
end
installed?('nokogiri') # => true
installed?('foo') # => false
'гем список Foo', или вы имеете в виду с в рамках программы? – matt
@matt Да. Изнутри Ruby. – sawa