Parent

Class Index [+]

Quicksearch

Cucumber::Cli::Main

Public Class Methods

execute(args) click to toggle source
    # File lib/cucumber/cli/main.rb, line 24
24:         def execute(args)
25:           new(args).execute!(step_mother)
26:         end
new(args, out_stream = STDOUT, error_stream = STDERR) click to toggle source
    # File lib/cucumber/cli/main.rb, line 29
29:       def initialize(args, out_stream = STDOUT, error_stream = STDERR)
30:         @args         = args
31:         if Cucumber::WINDOWS_MRI
32:           @out_stream   = out_stream == STDOUT ? Formatter::ColorIO.new(Kernel, STDOUT) : out_stream
33:         else
34:           @out_stream   = out_stream
35:         end
36: 
37:         @error_stream = error_stream
38:         @configuration = nil
39:       end
step_mother() click to toggle source
    # File lib/cucumber/cli/main.rb, line 20
20:         def step_mother
21:           @step_mother ||= StepMother.new
22:         end

Public Instance Methods

configuration() click to toggle source
    # File lib/cucumber/cli/main.rb, line 74
74:       def configuration
75:         return @configuration if @configuration
76: 
77:         @configuration = Configuration.new(@out_stream, @error_stream)
78:         @configuration.parse!(@args)
79:         @configuration
80:       end
execute!(step_mother) click to toggle source
    # File lib/cucumber/cli/main.rb, line 41
41:       def execute!(step_mother)
42:         trap_interrupt
43:         if configuration.drb?
44:           begin
45:             return DRbClient.run(@args, @error_stream, @out_stream, configuration.drb_port)
46:           rescue DRbClientError => e
47:             @error_stream.puts "WARNING: #{e.message} Running features locally:"
48:           end
49:         end
50:         step_mother.options = configuration.options
51:         step_mother.log = configuration.log
52: 
53:         step_mother.load_code_files(configuration.support_to_load)
54:         step_mother.after_configuration(configuration)
55:         features = step_mother.load_plain_text_features(configuration.feature_files)
56:         step_mother.load_code_files(configuration.step_defs_to_load)
57: 
58:         runner = configuration.build_runner(step_mother, @out_stream)
59:         step_mother.visitor = runner # Needed to support World#announce
60:         
61:         runner.visit_features(features)
62: 
63:         failure = if configuration.wip?
64:           step_mother.scenarios(:passed).any?
65:         else
66:           step_mother.scenarios(:failed).any? ||
67:           (configuration.strict? && (step_mother.steps(:undefined).any? || step_mother.steps(:pending).any?))
68:         end
69:       rescue ProfilesNotDefinedError, YmlLoadError, ProfileNotFound => e
70:         @error_stream.puts e.message
71:         true
72:       end

Private Instance Methods

trap_interrupt() click to toggle source
    # File lib/cucumber/cli/main.rb, line 84
84:       def trap_interrupt
85:         trap('INT') do
86:           exit!(1) if Cucumber.wants_to_quit
87:           Cucumber.wants_to_quit = true
88:           STDERR.puts "\nExiting... Interrupt again to exit immediately."
89:         end
90:       end

Disabled; run with --debug to generate this.

[Validate]

Generated with the Darkfish Rdoc Generator 1.1.6.