Class: Cucumber::Rvm

Inherits:
Object
  • Object
show all
Defined in:
lib/cucumber/rvm.rb

Overview

:nodoc:

Constant Summary collapse

RVMS =
YAML.load_file(File.dirname(__FILE__) + '/../../rvm.yml')

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(ruby_name, gems_with_version, world) ⇒ Rvm

Returns a new instance of Rvm.



15
16
17
18
# File 'lib/cucumber/rvm.rb', line 15

def initialize(ruby_name, gems_with_version, world)
  @ruby_version, @gems_with_version, @world = RVMS['rubies'][ruby_name], gems_with_version, world
  raise "NO RUBY VERSION FOUND FOR #{ruby_name}. Check your rvms.yml" if @ruby_version.nil?
end

Class Method Details

.each(&proc) ⇒ Object



8
9
10
11
12
# File 'lib/cucumber/rvm.rb', line 8

def each(&proc)
  RVMS["rubies"].each do |ruby_name, ruby_version|
    proc.call(new(ruby_name, RVMS["dev_gems"], nil))
  end
end

Instance Method Details

#install_gemsObject



41
42
43
44
45
# File 'lib/cucumber/rvm.rb', line 41

def install_gems
  @gems_with_version.each do |gem_with_version|
    rvm("-S gem install #{gem_with_version}")
  end
end

#rvm(cmd) ⇒ Object



30
31
32
33
34
35
36
37
38
39
# File 'lib/cucumber/rvm.rb', line 30

def rvm(cmd)
  rvm_cmd = "rvm #{@ruby_version}%sinatra_app_gen #{cmd}"
  if @world
    @world.announce(rvm_cmd)
  else
    puts(rvm_cmd)
  end
  run(rvm_cmd)
  raise "STDOUT:\n#{@last_stdout}\nSTDERR:\n#{@last_stderr}" if @last_exit_status && @last_exit_status != 0
end