Class: Babushka::GemHelper

Inherits:
PkgHelper show all
Defined in:
lib/babushka/pkg_helpers/gem_helper.rb

Class Method Summary collapse

Methods inherited from PkgHelper

all_manager_keys, cmd_in_path?, handle_install!, has?, pkg_binary, prefix, present?, update_pkg_lists, update_pkg_lists_if_required

Methods included from ShellHelpers

cmd_dir, current_username, log_shell, login_shell, raw_shell, shell, shell!, shell?, shell_cmd, sudo, which

Methods included from LogHelpers

debug, deprecated!, log, log_block, log_error, log_ok, log_stderr, log_warn, removed!

Class Method Details

.bin_pathObject



21
22
23
# File 'lib/babushka/pkg_helpers/gem_helper.rb', line 21

def bin_path
  Babushka.ruby.bin_dir
end

.gem_path_for(gem_name, version = nil) ⇒ Object



15
16
17
18
19
# File 'lib/babushka/pkg_helpers/gem_helper.rb', line 15

def gem_path_for gem_name, version = nil
  unless (detected_version = has?(Babushka.VersionOf(gem_name, version), :log => false)).nil?
    Babushka.ruby.gem_dir / Babushka.VersionOf(gem_name, detected_version)
  end
end

.gem_rootObject



25
26
27
28
# File 'lib/babushka/pkg_helpers/gem_helper.rb', line 25

def gem_root
  deprecated! '2013-04-28', :method_name => 'Babushka::GemHelper.gem_root', :instead => 'Babushka.ruby.gem_dir'
  Babushka.ruby.gem_dir
end

.gemdirObject



35
36
37
38
# File 'lib/babushka/pkg_helpers/gem_helper.rb', line 35

def gemdir
  deprecated! '2013-04-28', :method_name => 'Babushka::GemHelper.gemdir'
  Babushka.ruby.send(:gem_env).val_for('INSTALLATION DIRECTORY')
end

.gemspec_dirObject



30
31
32
33
# File 'lib/babushka/pkg_helpers/gem_helper.rb', line 30

def gemspec_dir
  deprecated! '2013-04-28', :method_name => 'Babushka::GemHelper.gemspec_dir', :instead => 'Babushka.ruby.gemspec_dir'
  Babushka.ruby.gemspec_dir
end

.install!(pkgs, opts = nil) ⇒ Object



9
10
11
12
13
# File 'lib/babushka/pkg_helpers/gem_helper.rb', line 9

def install! pkgs, opts = nil
  super.tap {
    shell!('rbenv rehash') if Babushka.ruby.rbenv?
  }
end

.manager_depObject



7
# File 'lib/babushka/pkg_helpers/gem_helper.rb', line 7

def manager_dep; 'rubygems' end

.manager_keyObject



6
# File 'lib/babushka/pkg_helpers/gem_helper.rb', line 6

def manager_key; :gem end

.pkg_cmdObject



5
# File 'lib/babushka/pkg_helpers/gem_helper.rb', line 5

def pkg_cmd; 'gem' end

.pkg_typeObject



4
# File 'lib/babushka/pkg_helpers/gem_helper.rb', line 4

def pkg_type; :gem end

.ruby_archObject



60
61
62
63
64
65
66
67
68
69
70
71
72
# File 'lib/babushka/pkg_helpers/gem_helper.rb', line 60

def ruby_arch
  deprecated! '2013-04-28', :method_name => 'Babushka::GemHelper.ruby_arch'
  if RUBY_PLATFORM =~ /universal/
    "universal"
  elsif RUBY_PLATFORM == "java"
    "java"
  elsif RUBY_PLATFORM =~ /darwin/
    # e.g. "/opt/ruby-enterprise/bin/ruby: Mach-O 64-bit executable x86_64"
    shell("file -L '#{Babushka.ruby.path}'").sub(/.* /, '')
  else
    Babushka.host.cpu_type
  end
end

.ruby_binary_slugObject



74
75
76
77
78
79
80
81
82
# File 'lib/babushka/pkg_helpers/gem_helper.rb', line 74

def ruby_binary_slug
  deprecated! '2013-04-28', :method_name => 'Babushka::GemHelper.ruby_binary_slug'
  [
    (defined?(RUBY_ENGINE) ? RUBY_ENGINE : 'ruby'),
    RUBY_VERSION,
    ruby_arch,
    (RUBY_PLATFORM['darwin'] ? 'macosx' : RUBY_PLATFORM.sub(/^.*?-/, ''))
  ].join('-')
end

.ruby_pathObject



40
41
42
43
# File 'lib/babushka/pkg_helpers/gem_helper.rb', line 40

def ruby_path
  deprecated! '2013-04-28', :method_name => 'Babushka::GemHelper.ruby_path', :instead => 'Babushka.ruby.path'
  Babushka.ruby.path
end

.ruby_wrapper_pathObject



45
46
47
48
49
50
51
52
53
54
55
56
57
58
# File 'lib/babushka/pkg_helpers/gem_helper.rb', line 45

def ruby_wrapper_path
  deprecated! '2013-04-28', :method_name => 'Babushka::GemHelper.ruby_wrapper_path'
  if Babushka.ruby.path.to_s['/.rvm/rubies/'].nil?
    Babushka.ruby.path
  else
    Babushka.ruby.path.sub(
      # /Users/ben/.rvm/rubies/ruby-1.9.2-p0/bin/ruby
      /^(.*)\/\.rvm\/rubies\/([^\/]+)\/bin\/ruby/
    ) {
      # /Users/ben/.rvm/wrappers/ruby-1.9.2-p0/ruby
      "#{$1}/.rvm/wrappers/#{$2}/ruby"
    }
  end
end

.should_sudo?Boolean

Returns:

  • (Boolean)


89
90
91
# File 'lib/babushka/pkg_helpers/gem_helper.rb', line 89

def should_sudo?
  super || (Babushka.ruby.gem_dir.exists? && !Babushka.ruby.gem_dir.writable?)
end

.slug_for(ruby) ⇒ Object



84
85
86
87
# File 'lib/babushka/pkg_helpers/gem_helper.rb', line 84

def slug_for ruby
  deprecated! '2013-04-28', :method_name => 'Babushka::GemHelper.slug_for'
  shell %Q{#{ruby} -e "require '#{Babushka::Path.lib / 'babushka'}'; puts Babushka::GemHelper.ruby_binary_slug"}
end

.versionObject



93
94
95
96
# File 'lib/babushka/pkg_helpers/gem_helper.rb', line 93

def version
  deprecated! '2013-04-28', :method_name => 'Babushka::GemHelper.version', :instead => 'Babushka.ruby.gem_version'
  Babushka.ruby.gem_version
end