Class: Cucumber::Rake::Task::ForkedCucumberRunner

Inherits:
Object
  • Object
show all
Includes:
Rake::DSL
Defined in:
lib/cucumber/rake/task.rb

Overview

:nodoc:

Direct Known Subclasses

RCovCucumberRunner

Instance Method Summary (collapse)

Constructor Details

- (ForkedCucumberRunner) initialize(libs, cucumber_bin, cucumber_opts, bundler, feature_files)

A new instance of ForkedCucumberRunner



61
62
63
64
65
66
67
# File 'lib/cucumber/rake/task.rb', line 61

def initialize(libs, cucumber_bin, cucumber_opts, bundler, feature_files)
  @libs          = libs
  @cucumber_bin  = cucumber_bin
  @cucumber_opts = cucumber_opts
  @bundler       = bundler
  @feature_files = feature_files
end

Instance Method Details

- (Object) cmd



93
94
95
96
97
98
99
100
101
# File 'lib/cucumber/rake/task.rb', line 93

def cmd
  if use_bundler
    [ Cucumber::RUBY_BINARY, '-S', 'bundle', 'exec', 'cucumber', @cucumber_opts,
    @feature_files ].flatten
  else
    [ Cucumber::RUBY_BINARY, '-I', load_path(@libs), quoted_binary(@cucumber_bin),
    @cucumber_opts, @feature_files ].flatten
  end
end

- (Boolean) gem_available?(gemname)

Returns:

  • (Boolean)


81
82
83
# File 'lib/cucumber/rake/task.rb', line 81

def gem_available?(gemname)
  gem_available_new_rubygems?(gemname) || gem_available_old_rubygems?(gemname)
end

- (Boolean) gem_available_new_rubygems?(gemname)

Returns:

  • (Boolean)


89
90
91
# File 'lib/cucumber/rake/task.rb', line 89

def gem_available_new_rubygems?(gemname)
  Gem::Specification.respond_to?(:find_all_by_name) && Gem::Specification.find_all_by_name(gemname).any?
end

- (Boolean) gem_available_old_rubygems?(gemname)

Returns:

  • (Boolean)


85
86
87
# File 'lib/cucumber/rake/task.rb', line 85

def gem_available_old_rubygems?(gemname)
  Gem.available?(gemname)
end

- (Object) load_path(libs)



69
70
71
# File 'lib/cucumber/rake/task.rb', line 69

def load_path(libs)
  ['"%s"' % @libs.join(File::PATH_SEPARATOR)]
end

- (Object) quoted_binary(cucumber_bin)



73
74
75
# File 'lib/cucumber/rake/task.rb', line 73

def quoted_binary(cucumber_bin)
  ['"%s"' % cucumber_bin]
end

- (Object) run



103
104
105
# File 'lib/cucumber/rake/task.rb', line 103

def run
  sh(cmd.join(" "))
end

- (Object) use_bundler



77
78
79
# File 'lib/cucumber/rake/task.rb', line 77

def use_bundler
  @bundler.nil? ? File.exist?("./Gemfile") && gem_available?("bundler") : @bundler
end