class BundlerExt::System
Attributes
activate_versions[RW]
pkg_prefix[RW]
Public Class Methods
activate!(name)
click to toggle source
# File lib/bundler_ext/system.rb, line 52 def self.activate!(name) begin sys_name = system_name_for(name) version = system_version_for(sys_name) gem name, "=#{version}" rescue LoadError, Gem::Requirement::BadRequirementError end end
activate?()
click to toggle source
# File lib/bundler_ext/system.rb, line 18 def self.activate? parse_env # TODO support other package system activations, eg deb, homebrew, etc @activate_versions && self.is_rpm_system? end
is_rpm_system?()
click to toggle source
# File lib/bundler_ext/system.rb, line 29 def self.is_rpm_system? File.executable?(self.rpm_cmd) end
parse_env()
click to toggle source
# File lib/bundler_ext/system.rb, line 13 def self.parse_env @pkg_prefix = ENV['BEXT_PKG_PREFIX'] || '' @activate_versions = ENV['BEXT_ACTIVATE_VERSIONS'] end
rpm_cmd(new_val=nil)
click to toggle source
# File lib/bundler_ext/system.rb, line 33 def self.rpm_cmd(new_val=nil) @rpm_cmd ||= '/usr/bin/rpm' @rpm_cmd = new_val unless new_val.nil? @rpm_cmd end
system_name_for(name)
click to toggle source
# File lib/bundler_ext/system.rb, line 24 def self.system_name_for(name) parse_env "#{@pkg_prefix}#{name}" end
system_version_for(name)
click to toggle source
# File lib/bundler_ext/system.rb, line 39 def self.system_version_for(name) if is_rpm_system? out = `#{rpm_cmd} -qi #{name}` version = out =~ /.*Version\s*:\s*([^\s]*)\s+.*/ ? $1 : nil else # TODO support debian, other platforms version = nil end version end