module Perkins::Build::Script::RVM

Public Instance Methods

announce() click to toggle source
Calls superclass method
# File lib/perkins/build/script/rvm.rb, line 19
def announce
  super
  cmd 'ruby --version'
  if config[:ruby]
    cmd 'chruby --version'
  else
    cmd 'rvm --version'
  end
end
cache_slug() click to toggle source
Calls superclass method
# File lib/perkins/build/script/rvm.rb, line 5
def cache_slug
  super << "--rvm-" << ruby_version.to_s
end
export() click to toggle source
Calls superclass method
# File lib/perkins/build/script/rvm.rb, line 9
def export
  super
  set 'TRAVIS_RUBY_VERSION', config[:rvm], echo: false
end
setup() click to toggle source
Calls superclass method
# File lib/perkins/build/script/rvm.rb, line 14
def setup
  super
  config[:ruby] ? setup_chruby : setup_rvm
end

Private Instance Methods

ruby_version() click to toggle source
# File lib/perkins/build/script/rvm.rb, line 31
def ruby_version
  config[:rvm].to_s.gsub(/-(1[89]|2[01])mode$/, '-d\1')
end
setup_chruby() click to toggle source
# File lib/perkins/build/script/rvm.rb, line 35
def setup_chruby
  echo 'BETA: Using chruby to select Ruby version. This is currently a beta feature and may change at any time."', color: :yellow
  cmd "curl -sLo ~/chruby.sh https://gist.githubusercontent.com/henrikhodne/a01cd7367b12a59ee051/raw/chruby.sh", echo: false
  cmd "source ~/chruby.sh", echo: false
  cmd "chruby #{config[:ruby]}"
end
setup_rvm() click to toggle source
# File lib/perkins/build/script/rvm.rb, line 42
def setup_rvm
  file '$rvm_path/user/db', %w(
    rvm_remote_server_url3=https://s3.amazonaws.com/travis-rubies/binaries
    rvm_remote_server_type3=rubies
    rvm_remote_server_verify_downloads3=1
  ).join("\n")

  if ruby_version =~ /ruby-head/
    fold("rvm.1") do
      echo 'Setting up latest %s' % ruby_version, ansi: :yellow
      cmd "rvm get stable", assert: false if ruby_version == 'jruby-head'
      set 'ruby_alias', "`rvm alias show #{ruby_version} 2>/dev/null`"
      cmd "rvm alias delete #{ruby_version}", assert: false
      cmd "rvm remove ${ruby_alias:-#{ruby_version}} --gems", assert: false
      cmd "rvm remove #{ruby_version} --gems --fuzzy", assert: false
      cmd "rvm install #{ruby_version} --binary"
    end
    cmd "rvm use #{ruby_version}"
  elsif ruby_version == 'default'
    self.if "-f .ruby-version" do |sh|
      sh.echo 'BETA: Using Ruby version from .ruby-version. This is a beta feature and may be removed in the future.', color: :yellow
      fold("rvm.1") { sh.cmd "rvm use . --install --binary --fuzzy" }
    end
    self.else "rvm use default"
  else
    fold("rvm.1") { cmd "rvm use #{ruby_version} --install --binary --fuzzy" }
  end
end