class Rbenv

Manages the Ruby Version Manager Rbenv and the ruby installer ruby-build

Public Instance Methods

down() click to toggle source
# File lib/exogenesis/passengers/rbenv.rb, line 19
def down
  execute_interactive 'Teardown', 'rm -r ~/.rbenv'
end
up() click to toggle source
# File lib/exogenesis/passengers/rbenv.rb, line 9
def up
  if command_exists? 'rbenv'
    update_rbenv
  else
    install_rbenv
  end
  rubies.each { |ruby| install_ruby ruby }
  execute 'Rehash', 'rbenv rehash'
end

Private Instance Methods

install_rbenv() click to toggle source
# File lib/exogenesis/passengers/rbenv.rb, line 25
def install_rbenv
  execute 'Install rbenv', 'git clone https://github.com/sstephenson/rbenv.git ~/.rbenv'
  execute 'Install ruby-build plugin', 'git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build'
end
install_ruby(ruby) click to toggle source
# File lib/exogenesis/passengers/rbenv.rb, line 35
def install_ruby(ruby)
  return if installed_versions.include? ruby
  execute "Installing #{ruby}", "rbenv install #{ruby}"
end
installed_versions() click to toggle source
# File lib/exogenesis/passengers/rbenv.rb, line 40
def installed_versions
  return @installed_versions if @installed_versions

  @installed_versions = []
  execute 'Getting Installed Versions', 'rbenv versions' do |output|
    output.scan(/^[\*]?\s*([\S]*).*$/).each do |ruby|
      @installed_versions << ruby[0]
    end
  end
  @installed_versions
end
update_rbenv() click to toggle source
# File lib/exogenesis/passengers/rbenv.rb, line 30
def update_rbenv
  execute 'Update rbenv', 'cd ~/.rbenv && git pull'
  execute 'Update ruby-build', 'cd ~/.rbenv/plugins/ruby-build && git pull'
end