Привет, я только что нашел, как показывать таблицы на затмении,
, если значок базы данных по-прежнему серый:
Preference -> Android -> DDMS ->
выбрать открытие в затмении вместо сохранения на диск ...
удачи :)
ИМХО, лучший способ - это попытаться загрузить / потребовать GEM и спасти исключение, как уже показал Рэй. Можно безопасно спасти исключение LoadError, потому что оно не вызывается самим GEM, а является стандартным поведением команды require.
Вместо этого вы также можете использовать команду gem.
begin
gem "somegem"
# with requirements
gem "somegem", ">=2.0"
rescue Gem::LoadError
# not installed
end
Команда gem имеет то же поведение, что и команда require. command, с небольшими отличиями. AFAIK, он все еще пытается автозагрузить основной файл GEM.
Покопавшись в файле rubygems.rb (строка 310), я обнаружил следующее выполнение
matches = Gem.source_index.find_name(gem.name, gem.version_requirements)
report_activate_error(gem) if matches.empty?
Оно может дать вам несколько советов о том, как сделать грязную проверку без фактической загрузки библиотека.
Вы можете:
begin
require "somegem"
rescue LoadError
# not installed
end
Однако это не скажет вам, был ли модуль установлен с помощью gem или каким-либо другим способом.
Там также:
Gem.available?('somegem')
Вы также можете использовать регулярные выражения. Удобно, если я хочу разрешить варианты 'rcov' и GitHub, такие как 'релевантность-rcov':
Gem.available?(/-?rcov$/)