module Busser::RubyGems
RubyGems
API abstraction logic, used to install and verify plugins.
@author Fletcher Nichol <fnichol@nichol.ca>
Public Instance Methods
gem_installed?(name, version)
click to toggle source
# File lib/busser/rubygems.rb, line 30 def gem_installed?(name, version) version = Gem::Requirement.default unless version ! Gem::Dependency.new(name, version).matching_specs.empty? end
install_gem(gem, version)
click to toggle source
# File lib/busser/rubygems.rb, line 35 def install_gem(gem, version) version = Gem::Requirement.default unless version inst = Gem::DependencyInstaller.new(rbg_options) specs = inst.install(gem, Gem::Requirement.create(version)) Gem.clear_paths specs.find { |s| s.name == gem } end
rbg_options()
click to toggle source
# File lib/busser/rubygems.rb, line 45 def rbg_options @rbg_options ||= Gem::DependencyInstaller::DEFAULT_OPTIONS.merge( :suggest_alternate => false, :version => Gem::Requirement.default, :without_groups => [], :minimal_deps => true, :http_proxy => ENV.fetch("http_proxy", ENV.fetch("HTTP_PROXY", nil)) ) end
silence_gem_ui() { || ... }
click to toggle source
# File lib/busser/rubygems.rb, line 55 def silence_gem_ui interaction = Gem::DefaultUserInteraction.ui if !Gem.configuration.really_verbose Gem::DefaultUserInteraction.ui = Gem::SilentUI.new end yield ensure Gem::DefaultUserInteraction.ui = interaction end