Class: BundlerExt::System
- Inherits:
-
Object
- Object
- BundlerExt::System
- Defined in:
- lib/bundler_ext/system.rb
Class Attribute Summary collapse
-
.activate_versions ⇒ Object
Returns the value of attribute activate_versions.
-
.pkg_prefix ⇒ Object
Returns the value of attribute pkg_prefix.
Class Method Summary collapse
- .activate!(name) ⇒ Object
- .activate? ⇒ Boolean
- .is_rpm_system? ⇒ Boolean
- .parse_env ⇒ Object
- .rpm_cmd(new_val = nil) ⇒ Object
- .system_name_for(name) ⇒ Object
- .system_version_for(name) ⇒ Object
Class Attribute Details
.activate_versions ⇒ Object
Returns the value of attribute activate_versions.
10 11 12 |
# File 'lib/bundler_ext/system.rb', line 10 def activate_versions @activate_versions end |
.pkg_prefix ⇒ Object
Returns the value of attribute pkg_prefix.
9 10 11 |
# File 'lib/bundler_ext/system.rb', line 9 def pkg_prefix @pkg_prefix end |
Class Method Details
.activate!(name) ⇒ Object
52 53 54 55 56 57 58 59 |
# 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? ⇒ Boolean
18 19 20 21 22 |
# 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? ⇒ Boolean
29 30 31 |
# File 'lib/bundler_ext/system.rb', line 29 def self.is_rpm_system? File.executable?(self.rpm_cmd) end |
.parse_env ⇒ Object
13 14 15 16 |
# 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) ⇒ Object
33 34 35 36 37 |
# 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) ⇒ Object
24 25 26 27 |
# File 'lib/bundler_ext/system.rb', line 24 def self.system_name_for(name) parse_env "#{@pkg_prefix}#{name}" end |
.system_version_for(name) ⇒ Object
39 40 41 42 43 44 45 46 47 48 49 50 |
# 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 |