aruba 0.1.9 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +0 -1
 - data/History.txt +32 -0
 - data/README.rdoc +2 -2
 - data/Rakefile +3 -3
 - data/aruba.gemspec +60 -0
 - data/features/file_system_commands.feature +12 -5
 - data/features/output.feature +18 -11
 - data/features/running_ruby.feature +13 -18
 - data/features/step_definitions/aruba_dev_steps.rb +6 -6
 - data/lib/aruba/api.rb +23 -3
 - data/lib/aruba/cucumber.rb +41 -25
 - metadata +23 -13
 
    
        data/.gitignore
    CHANGED
    
    
    
        data/History.txt
    CHANGED
    
    | 
         @@ -1,3 +1,35 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            == 0.2.0
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            === New Features
         
     | 
| 
      
 4 
     | 
    
         
            +
            * Added aruba.gemspec. (David Chelimsky)
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
            === Changed features
         
     | 
| 
      
 7 
     | 
    
         
            +
            * Several step definitions regarding output have changed. (#1 Aslak Hellesøy)
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
              - /^I should see "([^\"]*)"$/
         
     | 
| 
      
 10 
     | 
    
         
            +
              + /^the output should contain "([^"]*)"$/
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
              - /^I should not see "([^\"]*)"$/
         
     | 
| 
      
 13 
     | 
    
         
            +
              + /^the output should not contain "([^"]*)"$/
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
              - /^I should see:$/
         
     | 
| 
      
 16 
     | 
    
         
            +
              + /^the output should contain:$/
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
      
 18 
     | 
    
         
            +
              - /^I should not see:$/
         
     | 
| 
      
 19 
     | 
    
         
            +
              + /^the output should not contain:$/
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
              - /^I should see exactly "([^\"]*)"$/
         
     | 
| 
      
 22 
     | 
    
         
            +
              + /^the output should contain exactly "([^"]*)"$/
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
              - /^I should see exactly:$/
         
     | 
| 
      
 25 
     | 
    
         
            +
              + /^the output should contain exactly:$/
         
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
      
 27 
     | 
    
         
            +
              - /^I should see matching \/([^\/]*)\/$/
         
     | 
| 
      
 28 
     | 
    
         
            +
              + /^the output should match \/([^\/]*)\/$/
         
     | 
| 
      
 29 
     | 
    
         
            +
             
     | 
| 
      
 30 
     | 
    
         
            +
              - /^I should see matching:$/
         
     | 
| 
      
 31 
     | 
    
         
            +
              + /^the output should match:$/
         
     | 
| 
      
 32 
     | 
    
         
            +
             
     | 
| 
       1 
33 
     | 
    
         
             
            == 0.1.9
         
     | 
| 
       2 
34 
     | 
    
         
             
            * If the GOTGEMS environment variable is set, bundler won't run (faster). (Aslak Hellesøy)
         
     | 
| 
       3 
35 
     | 
    
         | 
    
        data/README.rdoc
    CHANGED
    
    | 
         @@ -23,8 +23,8 @@ with specific versions of Ruby (regardless of what Ruby version you're using to 
     | 
|
| 
       23 
23 
     | 
    
         | 
| 
       24 
24 
     | 
    
         
             
            This is done with the follwoing step definitions:
         
     | 
| 
       25 
25 
     | 
    
         | 
| 
       26 
     | 
    
         
            -
              /^I am using rvm "([ 
     | 
| 
       27 
     | 
    
         
            -
              /^I am using rvm gemset "([ 
     | 
| 
      
 26 
     | 
    
         
            +
              /^I am using rvm "([^"]*)"$/
         
     | 
| 
      
 27 
     | 
    
         
            +
              /^I am using rvm gemset "([^"]*)"$/
         
     | 
| 
       28 
28 
     | 
    
         | 
| 
       29 
29 
     | 
    
         
             
            Then, if you use the step definition:
         
     | 
| 
       30 
30 
     | 
    
         | 
    
        data/Rakefile
    CHANGED
    
    | 
         @@ -5,15 +5,15 @@ require 'rake' 
     | 
|
| 
       5 
5 
     | 
    
         
             
            begin
         
     | 
| 
       6 
6 
     | 
    
         
             
              require 'jeweler'
         
     | 
| 
       7 
7 
     | 
    
         
             
              Jeweler::Tasks.new do |gem|
         
     | 
| 
       8 
     | 
    
         
            -
                gem.version = "0. 
     | 
| 
      
 8 
     | 
    
         
            +
                gem.version = "0.2.0"
         
     | 
| 
       9 
9 
     | 
    
         
             
                gem.name = "aruba"
         
     | 
| 
       10 
10 
     | 
    
         
             
                gem.summary = %Q{CLI Steps for Cucumber}
         
     | 
| 
       11 
11 
     | 
    
         
             
                gem.description = %Q{CLI Steps for Cucumber, hand-crafted for you in Aruba}
         
     | 
| 
       12 
12 
     | 
    
         
             
                gem.email = "cukes@googlegroups.com"
         
     | 
| 
       13 
13 
     | 
    
         
             
                gem.homepage = "http://github.com/aslakhellesoy/aruba"
         
     | 
| 
       14 
14 
     | 
    
         
             
                gem.authors = ["Aslak Hellesøy", "David Chelimsky"]
         
     | 
| 
       15 
     | 
    
         
            -
                gem.add_development_dependency "rspec", ">=  
     | 
| 
       16 
     | 
    
         
            -
                gem.add_development_dependency "cucumber", ">= 0. 
     | 
| 
      
 15 
     | 
    
         
            +
                gem.add_development_dependency "rspec", ">= 2.0.0.beta.15"
         
     | 
| 
      
 16 
     | 
    
         
            +
                gem.add_development_dependency "cucumber", ">= 0.8.2"
         
     | 
| 
       17 
17 
     | 
    
         
             
              end
         
     | 
| 
       18 
18 
     | 
    
         
             
              Jeweler::GemcutterTasks.new
         
     | 
| 
       19 
19 
     | 
    
         
             
            rescue LoadError
         
     | 
    
        data/aruba.gemspec
    ADDED
    
    | 
         @@ -0,0 +1,60 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # Generated by jeweler
         
     | 
| 
      
 2 
     | 
    
         
            +
            # DO NOT EDIT THIS FILE DIRECTLY
         
     | 
| 
      
 3 
     | 
    
         
            +
            # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
         
     | 
| 
      
 4 
     | 
    
         
            +
            # -*- encoding: utf-8 -*-
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
            Gem::Specification.new do |s|
         
     | 
| 
      
 7 
     | 
    
         
            +
              s.name = %q{aruba}
         
     | 
| 
      
 8 
     | 
    
         
            +
              s.version = "0.2.0"
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
              s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
         
     | 
| 
      
 11 
     | 
    
         
            +
              s.authors = ["Aslak Helles\303\270y", "David Chelimsky"]
         
     | 
| 
      
 12 
     | 
    
         
            +
              s.date = %q{2010-07-07}
         
     | 
| 
      
 13 
     | 
    
         
            +
              s.description = %q{CLI Steps for Cucumber, hand-crafted for you in Aruba}
         
     | 
| 
      
 14 
     | 
    
         
            +
              s.email = %q{cukes@googlegroups.com}
         
     | 
| 
      
 15 
     | 
    
         
            +
              s.extra_rdoc_files = [
         
     | 
| 
      
 16 
     | 
    
         
            +
                "LICENSE",
         
     | 
| 
      
 17 
     | 
    
         
            +
                 "README.rdoc"
         
     | 
| 
      
 18 
     | 
    
         
            +
              ]
         
     | 
| 
      
 19 
     | 
    
         
            +
              s.files = [
         
     | 
| 
      
 20 
     | 
    
         
            +
                ".document",
         
     | 
| 
      
 21 
     | 
    
         
            +
                 ".gitignore",
         
     | 
| 
      
 22 
     | 
    
         
            +
                 "History.txt",
         
     | 
| 
      
 23 
     | 
    
         
            +
                 "LICENSE",
         
     | 
| 
      
 24 
     | 
    
         
            +
                 "README.rdoc",
         
     | 
| 
      
 25 
     | 
    
         
            +
                 "Rakefile",
         
     | 
| 
      
 26 
     | 
    
         
            +
                 "aruba.gemspec",
         
     | 
| 
      
 27 
     | 
    
         
            +
                 "config/.gitignore",
         
     | 
| 
      
 28 
     | 
    
         
            +
                 "features/exit_statuses.feature",
         
     | 
| 
      
 29 
     | 
    
         
            +
                 "features/file_system_commands.feature",
         
     | 
| 
      
 30 
     | 
    
         
            +
                 "features/output.feature",
         
     | 
| 
      
 31 
     | 
    
         
            +
                 "features/running_ruby.feature",
         
     | 
| 
      
 32 
     | 
    
         
            +
                 "features/step_definitions/aruba_dev_steps.rb",
         
     | 
| 
      
 33 
     | 
    
         
            +
                 "features/support/env.rb",
         
     | 
| 
      
 34 
     | 
    
         
            +
                 "lib/aruba.rb",
         
     | 
| 
      
 35 
     | 
    
         
            +
                 "lib/aruba/api.rb",
         
     | 
| 
      
 36 
     | 
    
         
            +
                 "lib/aruba/cucumber.rb"
         
     | 
| 
      
 37 
     | 
    
         
            +
              ]
         
     | 
| 
      
 38 
     | 
    
         
            +
              s.homepage = %q{http://github.com/aslakhellesoy/aruba}
         
     | 
| 
      
 39 
     | 
    
         
            +
              s.rdoc_options = ["--charset=UTF-8"]
         
     | 
| 
      
 40 
     | 
    
         
            +
              s.require_paths = ["lib"]
         
     | 
| 
      
 41 
     | 
    
         
            +
              s.rubygems_version = %q{1.3.7}
         
     | 
| 
      
 42 
     | 
    
         
            +
              s.summary = %q{CLI Steps for Cucumber}
         
     | 
| 
      
 43 
     | 
    
         
            +
             
     | 
| 
      
 44 
     | 
    
         
            +
              if s.respond_to? :specification_version then
         
     | 
| 
      
 45 
     | 
    
         
            +
                current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
         
     | 
| 
      
 46 
     | 
    
         
            +
                s.specification_version = 3
         
     | 
| 
      
 47 
     | 
    
         
            +
             
     | 
| 
      
 48 
     | 
    
         
            +
                if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
         
     | 
| 
      
 49 
     | 
    
         
            +
                  s.add_development_dependency(%q<rspec>, [">= 2.0.0.beta.15"])
         
     | 
| 
      
 50 
     | 
    
         
            +
                  s.add_development_dependency(%q<cucumber>, [">= 0.8.2"])
         
     | 
| 
      
 51 
     | 
    
         
            +
                else
         
     | 
| 
      
 52 
     | 
    
         
            +
                  s.add_dependency(%q<rspec>, [">= 2.0.0.beta.15"])
         
     | 
| 
      
 53 
     | 
    
         
            +
                  s.add_dependency(%q<cucumber>, [">= 0.8.2"])
         
     | 
| 
      
 54 
     | 
    
         
            +
                end
         
     | 
| 
      
 55 
     | 
    
         
            +
              else
         
     | 
| 
      
 56 
     | 
    
         
            +
                s.add_dependency(%q<rspec>, [">= 2.0.0.beta.15"])
         
     | 
| 
      
 57 
     | 
    
         
            +
                s.add_dependency(%q<cucumber>, [">= 0.8.2"])
         
     | 
| 
      
 58 
     | 
    
         
            +
              end
         
     | 
| 
      
 59 
     | 
    
         
            +
            end
         
     | 
| 
      
 60 
     | 
    
         
            +
             
     | 
| 
         @@ -15,7 +15,7 @@ Feature: file system commands 
     | 
|
| 
       15 
15 
     | 
    
         
             
                  puts "hello world"
         
     | 
| 
       16 
16 
     | 
    
         
             
                  """
         
     | 
| 
       17 
17 
     | 
    
         
             
                When I run "ruby foo/bar/example.rb"
         
     | 
| 
       18 
     | 
    
         
            -
                Then  
     | 
| 
      
 18 
     | 
    
         
            +
                Then the output should contain "hello world"
         
     | 
| 
       19 
19 
     | 
    
         | 
| 
       20 
20 
     | 
    
         
             
              Scenario: append to a file
         
     | 
| 
       21 
21 
     | 
    
         
             
                Given a file named "foo/bar/example.rb" with:
         
     | 
| 
         @@ -27,13 +27,13 @@ Feature: file system commands 
     | 
|
| 
       27 
27 
     | 
    
         
             
                  puts "this was appended"
         
     | 
| 
       28 
28 
     | 
    
         
             
                  """
         
     | 
| 
       29 
29 
     | 
    
         
             
                When I run "ruby foo/bar/example.rb"
         
     | 
| 
       30 
     | 
    
         
            -
                Then  
     | 
| 
       31 
     | 
    
         
            -
                And  
     | 
| 
      
 30 
     | 
    
         
            +
                Then the output should contain "hello world"
         
     | 
| 
      
 31 
     | 
    
         
            +
                And the output should contain "this was appended"
         
     | 
| 
       32 
32 
     | 
    
         | 
| 
       33 
33 
     | 
    
         
             
              Scenario: clean up files generated in previous scenario
         
     | 
| 
       34 
34 
     | 
    
         
             
                When I run "ruby foo/bar/example.rb"
         
     | 
| 
       35 
35 
     | 
    
         
             
                Then the exit status should be 1
         
     | 
| 
       36 
     | 
    
         
            -
                And  
     | 
| 
      
 36 
     | 
    
         
            +
                And the output should contain "No such file or directory -- foo/bar/example.rb"
         
     | 
| 
       37 
37 
     | 
    
         | 
| 
       38 
38 
     | 
    
         
             
              Scenario: change to a subdir
         
     | 
| 
       39 
39 
     | 
    
         
             
                Given a file named "foo/bar/example.rb" with:
         
     | 
| 
         @@ -42,7 +42,7 @@ Feature: file system commands 
     | 
|
| 
       42 
42 
     | 
    
         
             
                  """
         
     | 
| 
       43 
43 
     | 
    
         
             
                When I cd to "foo/bar"
         
     | 
| 
       44 
44 
     | 
    
         
             
                And I run "ruby example.rb"
         
     | 
| 
       45 
     | 
    
         
            -
                Then  
     | 
| 
      
 45 
     | 
    
         
            +
                Then the output should contain "hello world"
         
     | 
| 
       46 
46 
     | 
    
         | 
| 
       47 
47 
     | 
    
         
             
              Scenario: Reset current directory from previous scenario
         
     | 
| 
       48 
48 
     | 
    
         
             
                When I run "ruby example.rb"
         
     | 
| 
         @@ -67,6 +67,13 @@ Feature: file system commands 
     | 
|
| 
       67 
67 
     | 
    
         
             
              Scenario: Check for absence of files
         
     | 
| 
       68 
68 
     | 
    
         
             
                Then the following files should not exist:
         
     | 
| 
       69 
69 
     | 
    
         
             
                  | lorem/ipsum/dolor |
         
     | 
| 
      
 70 
     | 
    
         
            +
                  
         
     | 
| 
      
 71 
     | 
    
         
            +
              Scenario: Check for presence of a subset of directories
         
     | 
| 
      
 72 
     | 
    
         
            +
                Given a directory named "foo/bar"
         
     | 
| 
      
 73 
     | 
    
         
            +
                Given a directory named "foo/bla"
         
     | 
| 
      
 74 
     | 
    
         
            +
                Then the following directories should exist:
         
     | 
| 
      
 75 
     | 
    
         
            +
                  | foo/bar |
         
     | 
| 
      
 76 
     | 
    
         
            +
                  | foo/bla |
         
     | 
| 
       70 
77 
     | 
    
         | 
| 
       71 
78 
     | 
    
         
             
              Scenario: Check file contents
         
     | 
| 
       72 
79 
     | 
    
         
             
                Given a file named "foo" with:
         
     | 
    
        data/features/output.feature
    CHANGED
    
    | 
         @@ -2,41 +2,48 @@ Feature: Output 
     | 
|
| 
       2 
2 
     | 
    
         | 
| 
       3 
3 
     | 
    
         
             
              In order to specify expected output
         
     | 
| 
       4 
4 
     | 
    
         
             
              As a developer using Cucumber
         
     | 
| 
       5 
     | 
    
         
            -
              I want to use the " 
     | 
| 
      
 5 
     | 
    
         
            +
              I want to use the "the output should contain" step
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
              Scenario: Run unknown command
         
     | 
| 
      
 8 
     | 
    
         
            +
                When I run "neverever gonna work"
         
     | 
| 
      
 9 
     | 
    
         
            +
                Then the output should contain:
         
     | 
| 
      
 10 
     | 
    
         
            +
                """
         
     | 
| 
      
 11 
     | 
    
         
            +
                sh: neverever: command not found
         
     | 
| 
      
 12 
     | 
    
         
            +
                """
         
     | 
| 
       6 
13 
     | 
    
         | 
| 
       7 
14 
     | 
    
         
             
              Scenario: Detect subset of one-line output
         
     | 
| 
       8 
15 
     | 
    
         
             
                When I run "ruby -e 'puts \"hello world\"'"
         
     | 
| 
       9 
     | 
    
         
            -
                Then  
     | 
| 
      
 16 
     | 
    
         
            +
                Then the output should contain "hello world"
         
     | 
| 
       10 
17 
     | 
    
         | 
| 
       11 
18 
     | 
    
         
             
              Scenario: Detect subset of one-line output
         
     | 
| 
       12 
19 
     | 
    
         
             
                When I run "echo 'hello world'"
         
     | 
| 
       13 
     | 
    
         
            -
                Then  
     | 
| 
      
 20 
     | 
    
         
            +
                Then the output should contain "hello world"
         
     | 
| 
       14 
21 
     | 
    
         | 
| 
       15 
22 
     | 
    
         
             
              Scenario: Detect absence of one-line output
         
     | 
| 
       16 
23 
     | 
    
         
             
                When I run "ruby -e 'puts \"hello world\"'"
         
     | 
| 
       17 
     | 
    
         
            -
                Then  
     | 
| 
      
 24 
     | 
    
         
            +
                Then the output should not contain "good-bye"
         
     | 
| 
       18 
25 
     | 
    
         | 
| 
       19 
26 
     | 
    
         
             
              Scenario: Detect subset of multiline output
         
     | 
| 
       20 
27 
     | 
    
         
             
                When I run "ruby -e 'puts \"hello\\nworld\"'"
         
     | 
| 
       21 
     | 
    
         
            -
                Then  
     | 
| 
      
 28 
     | 
    
         
            +
                Then the output should contain:
         
     | 
| 
       22 
29 
     | 
    
         
             
                  """
         
     | 
| 
       23 
30 
     | 
    
         
             
                  hello
         
     | 
| 
       24 
31 
     | 
    
         
             
                  """
         
     | 
| 
       25 
32 
     | 
    
         | 
| 
       26 
33 
     | 
    
         
             
              Scenario: Detect subset of multiline output
         
     | 
| 
       27 
34 
     | 
    
         
             
                When I run "ruby -e 'puts \"hello\\nworld\"'"
         
     | 
| 
       28 
     | 
    
         
            -
                Then  
     | 
| 
      
 35 
     | 
    
         
            +
                Then the output should not contain:
         
     | 
| 
       29 
36 
     | 
    
         
             
                  """
         
     | 
| 
       30 
37 
     | 
    
         
             
                  good-bye
         
     | 
| 
       31 
38 
     | 
    
         
             
                  """
         
     | 
| 
       32 
39 
     | 
    
         | 
| 
       33 
40 
     | 
    
         
             
              Scenario: Detect exact one-line output
         
     | 
| 
       34 
41 
     | 
    
         
             
                When I run "ruby -e 'puts \"hello world\"'"
         
     | 
| 
       35 
     | 
    
         
            -
                Then  
     | 
| 
      
 42 
     | 
    
         
            +
                Then the output should contain exactly "hello world\n"
         
     | 
| 
       36 
43 
     | 
    
         | 
| 
       37 
44 
     | 
    
         
             
              Scenario: Detect exact multiline output
         
     | 
| 
       38 
45 
     | 
    
         
             
                When I run "ruby -e 'puts \"hello\\nworld\"'"
         
     | 
| 
       39 
     | 
    
         
            -
                Then  
     | 
| 
      
 46 
     | 
    
         
            +
                Then the output should contain exactly:
         
     | 
| 
       40 
47 
     | 
    
         
             
                  """
         
     | 
| 
       41 
48 
     | 
    
         
             
                  hello
         
     | 
| 
       42 
49 
     | 
    
         
             
                  world
         
     | 
| 
         @@ -46,13 +53,13 @@ Feature: Output 
     | 
|
| 
       46 
53 
     | 
    
         
             
              @announce
         
     | 
| 
       47 
54 
     | 
    
         
             
              Scenario: Detect subset of one-line output with regex
         
     | 
| 
       48 
55 
     | 
    
         
             
                When I run "ruby --version"
         
     | 
| 
       49 
     | 
    
         
            -
                Then  
     | 
| 
       50 
     | 
    
         
            -
                And  
     | 
| 
      
 56 
     | 
    
         
            +
                Then the output should contain "ruby"
         
     | 
| 
      
 57 
     | 
    
         
            +
                And the output should match /ruby ([\d]+\.[\d]+\.[\d]+)(p\d+)? \(.*$/
         
     | 
| 
       51 
58 
     | 
    
         | 
| 
       52 
59 
     | 
    
         
             
              @announce
         
     | 
| 
       53 
60 
     | 
    
         
             
              Scenario: Detect subset of multiline output with regex
         
     | 
| 
       54 
61 
     | 
    
         
             
                When I run "ruby -e 'puts \"hello\\nworld\\nextra line1\\nextra line2\\nimportant line\"'"
         
     | 
| 
       55 
     | 
    
         
            -
                Then  
     | 
| 
      
 62 
     | 
    
         
            +
                Then the output should match:
         
     | 
| 
       56 
63 
     | 
    
         
             
                  """
         
     | 
| 
       57 
64 
     | 
    
         
             
                  he..o
         
     | 
| 
       58 
65 
     | 
    
         
             
                  wor.d
         
     | 
| 
         @@ -7,51 +7,46 @@ Feature: Running ruby 
     | 
|
| 
       7 
7 
     | 
    
         
             
              Scenario: Run with ruby 1.9.1
         
     | 
| 
       8 
8 
     | 
    
         
             
                Given I am using rvm "1.9.1"
         
     | 
| 
       9 
9 
     | 
    
         
             
                When I run "ruby -e 'puts RUBY_VERSION'"
         
     | 
| 
       10 
     | 
    
         
            -
                Then  
     | 
| 
       11 
     | 
    
         
            -
                And  
     | 
| 
      
 10 
     | 
    
         
            +
                Then the output should contain "ruby-1.9.1-p378"
         
     | 
| 
      
 11 
     | 
    
         
            +
                And the output should not contain "rvm usage"
         
     | 
| 
       12 
12 
     | 
    
         | 
| 
       13 
13 
     | 
    
         
             
              Scenario: Run with ruby JRuby
         
     | 
| 
       14 
     | 
    
         
            -
                Given I am using rvm "jruby 
     | 
| 
      
 14 
     | 
    
         
            +
                Given I am using rvm "jruby"
         
     | 
| 
       15 
15 
     | 
    
         
             
                When I run "ruby -e 'puts JRUBY_VERSION'"
         
     | 
| 
       16 
     | 
    
         
            -
                Then  
     | 
| 
       17 
     | 
    
         
            -
                And  
     | 
| 
      
 16 
     | 
    
         
            +
                Then the output should contain "1.5.1"
         
     | 
| 
      
 17 
     | 
    
         
            +
                And the output should not contain "rvm usage"
         
     | 
| 
       18 
18 
     | 
    
         | 
| 
       19 
19 
     | 
    
         
             
              Scenario: Install gems with bundler
         
     | 
| 
       20 
20 
     | 
    
         
             
                Given I am using rvm "1.9.1"
         
     | 
| 
       21 
21 
     | 
    
         
             
                And I am using rvm gemset "a-new-gemset-where-no-gems-are-installed" with Gemfile:
         
     | 
| 
       22 
22 
     | 
    
         
             
                  """
         
     | 
| 
      
 23 
     | 
    
         
            +
                  source :gemcutter
         
     | 
| 
       23 
24 
     | 
    
         
             
                  gem 'diff-lcs', '1.1.2'
         
     | 
| 
       24 
25 
     | 
    
         
             
                  """
         
     | 
| 
       25 
26 
     | 
    
         
             
                When I run "gem list"
         
     | 
| 
       26 
     | 
    
         
            -
                Then  
     | 
| 
      
 27 
     | 
    
         
            +
                Then the output should match:
         
     | 
| 
       27 
28 
     | 
    
         
             
                  """
         
     | 
| 
       28 
29 
     | 
    
         
             
                  bundler \(\d+\.+\d+\.+\d+\)
         
     | 
| 
       29 
30 
     | 
    
         
             
                  diff-lcs \(\d+\.+\d+\.+\d+\)
         
     | 
| 
       30 
31 
     | 
    
         
             
                  """
         
     | 
| 
       31 
32 
     | 
    
         | 
| 
       32 
     | 
    
         
            -
              Scenario: Specify both rvm and gemset
         
     | 
| 
       33 
     | 
    
         
            -
                Given I am using rvm "1.9.1"
         
     | 
| 
       34 
     | 
    
         
            -
                And I am using an empty rvm gemset "a-new-gemset-where-no-gems-are-installed"
         
     | 
| 
       35 
     | 
    
         
            -
                When I run "gem list | wc -l"
         
     | 
| 
       36 
     | 
    
         
            -
                Then I should see exactly "       2\n"
         
     | 
| 
       37 
     | 
    
         
            -
             
     | 
| 
       38 
33 
     | 
    
         
             
              Scenario: Find the version of ruby 1.9.1
         
     | 
| 
       39 
34 
     | 
    
         
             
                Given I am using rvm "1.9.1"
         
     | 
| 
       40 
35 
     | 
    
         
             
                When I run "ruby --version"
         
     | 
| 
       41 
     | 
    
         
            -
                Then  
     | 
| 
      
 36 
     | 
    
         
            +
                Then the output should contain "1.9.1"
         
     | 
| 
       42 
37 
     | 
    
         | 
| 
       43 
38 
     | 
    
         
             
              Scenario: Find the version of cucumber on ruby 1.9.1
         
     | 
| 
       44 
39 
     | 
    
         
             
                Given I am using rvm "1.9.1"
         
     | 
| 
       45 
40 
     | 
    
         
             
                When I run "cucumber --version"
         
     | 
| 
       46 
     | 
    
         
            -
                Then  
     | 
| 
      
 41 
     | 
    
         
            +
                Then the output should match /\d+\.+\d+\.+\d+/
         
     | 
| 
       47 
42 
     | 
    
         | 
| 
       48 
43 
     | 
    
         
             
              Scenario: Use current ruby
         
     | 
| 
       49 
44 
     | 
    
         
             
                When I run "ruby --version"
         
     | 
| 
       50 
     | 
    
         
            -
                Then  
     | 
| 
      
 45 
     | 
    
         
            +
                Then the output should contain the current Ruby version
         
     | 
| 
       51 
46 
     | 
    
         | 
| 
       52 
47 
     | 
    
         
             
              Scenario: Use current ruby and a gem bin file
         
     | 
| 
       53 
48 
     | 
    
         
             
                When I run "rake --version"
         
     | 
| 
       54 
     | 
    
         
            -
                Then  
     | 
| 
      
 49 
     | 
    
         
            +
                Then the output should contain "rake, version"
         
     | 
| 
       55 
50 
     | 
    
         | 
| 
       56 
51 
     | 
    
         
             
              # I have trouble running rvm 1.8.7 in OS X Leopard, which is
         
     | 
| 
       57 
52 
     | 
    
         
             
              # ruby-1.8.7-p249 (It segfaults rather often). However, a previous
         
     | 
| 
         @@ -70,7 +65,7 @@ Feature: Running ruby 
     | 
|
| 
       70 
65 
     | 
    
         
             
                  """
         
     | 
| 
       71 
66 
     | 
    
         
             
                And I am using rvm "1.8.7"
         
     | 
| 
       72 
67 
     | 
    
         
             
                When I run "ruby --version"
         
     | 
| 
       73 
     | 
    
         
            -
                Then  
     | 
| 
      
 68 
     | 
    
         
            +
                Then the output should contain "patchlevel 174"
         
     | 
| 
       74 
69 
     | 
    
         | 
| 
       75 
70 
     | 
    
         
             
              # To verify this, make sure current rvm is *not* JRuby and run:
         
     | 
| 
       76 
71 
     | 
    
         
             
              #
         
     | 
| 
         @@ -78,4 +73,4 @@ Feature: Running ruby 
     | 
|
| 
       78 
73 
     | 
    
         
             
              @jruby
         
     | 
| 
       79 
74 
     | 
    
         
             
              Scenario: Don't use rvm, but default to same Ruby as the one that launched Cucumber
         
     | 
| 
       80 
75 
     | 
    
         
             
                When I run "ruby -e 'puts JRUBY_VERSION if defined?(JRUBY_VERSION)'"
         
     | 
| 
       81 
     | 
    
         
            -
                Then  
     | 
| 
      
 76 
     | 
    
         
            +
                Then the output should contain the JRuby version
         
     | 
| 
         @@ -1,4 +1,4 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            Given /^I have a local file named "([ 
     | 
| 
      
 1 
     | 
    
         
            +
            Given /^I have a local file named "([^"]*)" with:$/ do |filename, content|
         
     | 
| 
       2 
2 
     | 
    
         
             
              File.open(filename, 'w') {|io| io.write(content)}
         
     | 
| 
       3 
3 
     | 
    
         
             
            end
         
     | 
| 
       4 
4 
     | 
    
         | 
| 
         @@ -10,15 +10,15 @@ When /^I do aruba (.*)$/ do |aruba_step| 
     | 
|
| 
       10 
10 
     | 
    
         
             
              end
         
     | 
| 
       11 
11 
     | 
    
         
             
            end
         
     | 
| 
       12 
12 
     | 
    
         | 
| 
       13 
     | 
    
         
            -
            Then /^ 
     | 
| 
      
 13 
     | 
    
         
            +
            Then /^the output should contain the JRuby version$/ do
         
     | 
| 
       14 
14 
     | 
    
         
             
              pending "This must be manually run in JRuby" unless defined?(JRUBY_VERSION)
         
     | 
| 
       15 
     | 
    
         
            -
              Then %{ 
     | 
| 
      
 15 
     | 
    
         
            +
              Then %{the output should contain "#{JRUBY_VERSION}"}
         
     | 
| 
       16 
16 
     | 
    
         
             
            end
         
     | 
| 
       17 
17 
     | 
    
         | 
| 
       18 
     | 
    
         
            -
            Then /^ 
     | 
| 
       19 
     | 
    
         
            -
              Then %{ 
     | 
| 
      
 18 
     | 
    
         
            +
            Then /^the output should contain the current Ruby version$/ do
         
     | 
| 
      
 19 
     | 
    
         
            +
              Then %{the output should contain "#{RUBY_VERSION}"}
         
     | 
| 
       20 
20 
     | 
    
         
             
            end
         
     | 
| 
       21 
21 
     | 
    
         | 
| 
       22 
     | 
    
         
            -
            Then /^aruba should fail with "([ 
     | 
| 
      
 22 
     | 
    
         
            +
            Then /^aruba should fail with "([^"]*)"$/ do |error_message|
         
     | 
| 
       23 
23 
     | 
    
         
             
              @aruba_exception.message.should =~ compile_and_escape(error_message)
         
     | 
| 
       24 
24 
     | 
    
         
             
            end
         
     | 
    
        data/lib/aruba/api.rb
    CHANGED
    
    | 
         @@ -63,6 +63,18 @@ module Api 
     | 
|
| 
       63 
63 
     | 
    
         
             
                  end
         
     | 
| 
       64 
64 
     | 
    
         
             
                end
         
     | 
| 
       65 
65 
     | 
    
         
             
              end
         
     | 
| 
      
 66 
     | 
    
         
            +
              
         
     | 
| 
      
 67 
     | 
    
         
            +
              def check_directory_presence(paths, expect_presence)
         
     | 
| 
      
 68 
     | 
    
         
            +
                in_current_dir do
         
     | 
| 
      
 69 
     | 
    
         
            +
                  paths.each do |path|
         
     | 
| 
      
 70 
     | 
    
         
            +
                    if expect_presence
         
     | 
| 
      
 71 
     | 
    
         
            +
                      File.should be_directory(path)
         
     | 
| 
      
 72 
     | 
    
         
            +
                    else
         
     | 
| 
      
 73 
     | 
    
         
            +
                      File.should_not be_directory(path)
         
     | 
| 
      
 74 
     | 
    
         
            +
                    end
         
     | 
| 
      
 75 
     | 
    
         
            +
                  end
         
     | 
| 
      
 76 
     | 
    
         
            +
                end
         
     | 
| 
      
 77 
     | 
    
         
            +
              end
         
     | 
| 
       66 
78 
     | 
    
         | 
| 
       67 
79 
     | 
    
         
             
              def _mkdir(dir_name)
         
     | 
| 
       68 
80 
     | 
    
         
             
                FileUtils.mkdir_p(dir_name) unless File.directory?(dir_name)
         
     | 
| 
         @@ -118,7 +130,7 @@ module Api 
     | 
|
| 
       118 
130 
     | 
    
         
             
                cmd = detect_ruby_script(cmd)
         
     | 
| 
       119 
131 
     | 
    
         
             
                cmd = detect_ruby(cmd)
         
     | 
| 
       120 
132 
     | 
    
         | 
| 
       121 
     | 
    
         
            -
                 
     | 
| 
      
 133 
     | 
    
         
            +
                announce_or_puts("$ #{cmd}") if @announce_cmd
         
     | 
| 
       122 
134 
     | 
    
         | 
| 
       123 
135 
     | 
    
         
             
                stderr_file = Tempfile.new('cucumber')
         
     | 
| 
       124 
136 
     | 
    
         
             
                stderr_file.close
         
     | 
| 
         @@ -127,14 +139,14 @@ module Api 
     | 
|
| 
       127 
139 
     | 
    
         
             
                  IO.popen("#{cmd} 2> #{stderr_file.path}", mode) do |io|
         
     | 
| 
       128 
140 
     | 
    
         
             
                    @last_stdout = io.read
         
     | 
| 
       129 
141 
     | 
    
         | 
| 
       130 
     | 
    
         
            -
                     
     | 
| 
      
 142 
     | 
    
         
            +
                    announce_or_puts(@last_stdout) if @announce_stdout
         
     | 
| 
       131 
143 
     | 
    
         
             
                  end
         
     | 
| 
       132 
144 
     | 
    
         | 
| 
       133 
145 
     | 
    
         
             
                  @last_exit_status = $?.exitstatus
         
     | 
| 
       134 
146 
     | 
    
         
             
                end
         
     | 
| 
       135 
147 
     | 
    
         
             
                @last_stderr = IO.read(stderr_file.path)
         
     | 
| 
       136 
148 
     | 
    
         | 
| 
       137 
     | 
    
         
            -
                 
     | 
| 
      
 149 
     | 
    
         
            +
                announce_or_puts(@last_stderr) if @announce_stderr
         
     | 
| 
       138 
150 
     | 
    
         | 
| 
       139 
151 
     | 
    
         
             
                if(@last_exit_status != 0 && fail_on_error)
         
     | 
| 
       140 
152 
     | 
    
         
             
                  fail("Exit status was #{@last_exit_status}. Output:\n#{combined_output}")
         
     | 
| 
         @@ -143,6 +155,14 @@ module Api 
     | 
|
| 
       143 
155 
     | 
    
         
             
                @last_stderr
         
     | 
| 
       144 
156 
     | 
    
         
             
              end
         
     | 
| 
       145 
157 
     | 
    
         | 
| 
      
 158 
     | 
    
         
            +
              def announce_or_puts(msg)
         
     | 
| 
      
 159 
     | 
    
         
            +
                if(@puts)
         
     | 
| 
      
 160 
     | 
    
         
            +
                  puts(msg)
         
     | 
| 
      
 161 
     | 
    
         
            +
                else
         
     | 
| 
      
 162 
     | 
    
         
            +
                  announce(msg)
         
     | 
| 
      
 163 
     | 
    
         
            +
                end
         
     | 
| 
      
 164 
     | 
    
         
            +
              end
         
     | 
| 
      
 165 
     | 
    
         
            +
             
     | 
| 
       146 
166 
     | 
    
         
             
              def detect_ruby(cmd)
         
     | 
| 
       147 
167 
     | 
    
         
             
                if cmd =~ /^ruby\s/
         
     | 
| 
       148 
168 
     | 
    
         
             
                  cmd.gsub(/^ruby\s/, "#{current_ruby} ")
         
     | 
    
        data/lib/aruba/cucumber.rb
    CHANGED
    
    | 
         @@ -6,6 +6,10 @@ Before do 
     | 
|
| 
       6 
6 
     | 
    
         
             
              FileUtils.rm_rf(current_dir)
         
     | 
| 
       7 
7 
     | 
    
         
             
            end
         
     | 
| 
       8 
8 
     | 
    
         | 
| 
      
 9 
     | 
    
         
            +
            Before('@puts') do
         
     | 
| 
      
 10 
     | 
    
         
            +
              @puts = true
         
     | 
| 
      
 11 
     | 
    
         
            +
            end
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
       9 
13 
     | 
    
         
             
            Before('@announce-cmd') do
         
     | 
| 
       10 
14 
     | 
    
         
             
              @announce_cmd = true
         
     | 
| 
       11 
15 
     | 
    
         
             
            end
         
     | 
| 
         @@ -24,36 +28,40 @@ Before('@announce') do 
     | 
|
| 
       24 
28 
     | 
    
         
             
              @announce_cmd = true
         
     | 
| 
       25 
29 
     | 
    
         
             
            end
         
     | 
| 
       26 
30 
     | 
    
         | 
| 
       27 
     | 
    
         
            -
            Given /^I am using rvm "([ 
     | 
| 
      
 31 
     | 
    
         
            +
            Given /^I am using rvm "([^"]*)"$/ do |rvm_ruby_version|
         
     | 
| 
       28 
32 
     | 
    
         
             
              use_rvm(rvm_ruby_version)
         
     | 
| 
       29 
33 
     | 
    
         
             
            end
         
     | 
| 
       30 
34 
     | 
    
         | 
| 
       31 
     | 
    
         
            -
            Given /^I am using( an empty)? rvm gemset "([ 
     | 
| 
      
 35 
     | 
    
         
            +
            Given /^I am using( an empty)? rvm gemset "([^"]*)"$/ do |empty_gemset, rvm_gemset|
         
     | 
| 
       32 
36 
     | 
    
         
             
              use_rvm_gemset(rvm_gemset, empty_gemset)
         
     | 
| 
       33 
37 
     | 
    
         
             
            end
         
     | 
| 
       34 
38 
     | 
    
         | 
| 
       35 
     | 
    
         
            -
            Given /^I am using rvm gemset "([ 
     | 
| 
      
 39 
     | 
    
         
            +
            Given /^I am using rvm gemset "([^"]*)" with Gemfile:$/ do |rvm_gemset, gemfile|
         
     | 
| 
       36 
40 
     | 
    
         
             
              use_rvm_gemset(rvm_gemset, true)
         
     | 
| 
       37 
41 
     | 
    
         
             
              install_gems(gemfile)
         
     | 
| 
       38 
42 
     | 
    
         
             
            end
         
     | 
| 
       39 
43 
     | 
    
         | 
| 
       40 
     | 
    
         
            -
            Given /^a directory named "([ 
     | 
| 
      
 44 
     | 
    
         
            +
            Given /^a directory named "([^"]*)"$/ do |dir_name|
         
     | 
| 
       41 
45 
     | 
    
         
             
              create_dir(dir_name)
         
     | 
| 
       42 
46 
     | 
    
         
             
            end
         
     | 
| 
       43 
47 
     | 
    
         | 
| 
       44 
     | 
    
         
            -
            Given /^a file named "([ 
     | 
| 
      
 48 
     | 
    
         
            +
            Given /^a file named "([^"]*)" with:$/ do |file_name, file_content|
         
     | 
| 
       45 
49 
     | 
    
         
             
              create_file(file_name, file_content)
         
     | 
| 
       46 
50 
     | 
    
         
             
            end
         
     | 
| 
       47 
51 
     | 
    
         | 
| 
       48 
     | 
    
         
            -
            Given /^an empty file named "([ 
     | 
| 
      
 52 
     | 
    
         
            +
            Given /^an empty file named "([^"]*)"$/ do |file_name|
         
     | 
| 
       49 
53 
     | 
    
         
             
              create_file(file_name, "")
         
     | 
| 
       50 
54 
     | 
    
         
             
            end
         
     | 
| 
       51 
55 
     | 
    
         | 
| 
       52 
     | 
    
         
            -
            When /^I  
     | 
| 
      
 56 
     | 
    
         
            +
            When /^I write to "([^"]*)" with:$/ do |file_name, file_content|
         
     | 
| 
      
 57 
     | 
    
         
            +
              create_file(file_name, file_content)
         
     | 
| 
      
 58 
     | 
    
         
            +
            end
         
     | 
| 
      
 59 
     | 
    
         
            +
             
     | 
| 
      
 60 
     | 
    
         
            +
            When /^I append to "([^"]*)" with:$/ do |file_name, file_content|
         
     | 
| 
       53 
61 
     | 
    
         
             
              append_to_file(file_name, file_content)
         
     | 
| 
       54 
62 
     | 
    
         
             
            end
         
     | 
| 
       55 
63 
     | 
    
         | 
| 
       56 
     | 
    
         
            -
            When /^I cd to "([ 
     | 
| 
      
 64 
     | 
    
         
            +
            When /^I cd to "([^"]*)"$/ do |dir|
         
     | 
| 
       57 
65 
     | 
    
         
             
              cd(dir)
         
     | 
| 
       58 
66 
     | 
    
         
             
            end
         
     | 
| 
       59 
67 
     | 
    
         | 
| 
         @@ -65,39 +73,39 @@ When /^I successfully run "(.*)"$/ do |cmd| 
     | 
|
| 
       65 
73 
     | 
    
         
             
              run(unescape(cmd))
         
     | 
| 
       66 
74 
     | 
    
         
             
            end
         
     | 
| 
       67 
75 
     | 
    
         | 
| 
       68 
     | 
    
         
            -
            Then /^ 
     | 
| 
      
 76 
     | 
    
         
            +
            Then /^the output should contain "([^"]*)"$/ do |partial_output|
         
     | 
| 
       69 
77 
     | 
    
         
             
              combined_output.should =~ compile_and_escape(partial_output)
         
     | 
| 
       70 
78 
     | 
    
         
             
            end
         
     | 
| 
       71 
79 
     | 
    
         | 
| 
       72 
     | 
    
         
            -
            Then /^ 
     | 
| 
      
 80 
     | 
    
         
            +
            Then /^the output should not contain "([^"]*)"$/ do |partial_output|
         
     | 
| 
       73 
81 
     | 
    
         
             
              combined_output.should_not =~ compile_and_escape(partial_output)
         
     | 
| 
       74 
82 
     | 
    
         
             
            end
         
     | 
| 
       75 
83 
     | 
    
         | 
| 
       76 
     | 
    
         
            -
            Then /^ 
     | 
| 
      
 84 
     | 
    
         
            +
            Then /^the output should contain:$/ do |partial_output|
         
     | 
| 
       77 
85 
     | 
    
         
             
              combined_output.should =~ compile_and_escape(partial_output)
         
     | 
| 
       78 
86 
     | 
    
         
             
            end
         
     | 
| 
       79 
87 
     | 
    
         | 
| 
       80 
     | 
    
         
            -
            Then /^ 
     | 
| 
      
 88 
     | 
    
         
            +
            Then /^the output should not contain:$/ do |partial_output|
         
     | 
| 
       81 
89 
     | 
    
         
             
              combined_output.should_not =~ compile_and_escape(partial_output)
         
     | 
| 
       82 
90 
     | 
    
         
             
            end
         
     | 
| 
       83 
91 
     | 
    
         | 
| 
       84 
     | 
    
         
            -
            Then /^ 
     | 
| 
      
 92 
     | 
    
         
            +
            Then /^the output should contain exactly "([^"]*)"$/ do |exact_output|
         
     | 
| 
       85 
93 
     | 
    
         
             
              combined_output.should == unescape(exact_output)
         
     | 
| 
       86 
94 
     | 
    
         
             
            end
         
     | 
| 
       87 
95 
     | 
    
         | 
| 
       88 
     | 
    
         
            -
            Then /^ 
     | 
| 
      
 96 
     | 
    
         
            +
            Then /^the output should contain exactly:$/ do |exact_output|
         
     | 
| 
       89 
97 
     | 
    
         
             
              combined_output.should == exact_output
         
     | 
| 
       90 
98 
     | 
    
         
             
            end
         
     | 
| 
       91 
99 
     | 
    
         | 
| 
       92 
     | 
    
         
            -
            # " 
     | 
| 
       93 
     | 
    
         
            -
            # you don't need regex, use " 
     | 
| 
      
 100 
     | 
    
         
            +
            # "the output should match" allows regex in the partial_output, if
         
     | 
| 
      
 101 
     | 
    
         
            +
            # you don't need regex, use "the output should contain" instead since
         
     | 
| 
       94 
102 
     | 
    
         
             
            # that way, you don't have to escape regex characters that
         
     | 
| 
       95 
103 
     | 
    
         
             
            # appear naturally in the output
         
     | 
| 
       96 
     | 
    
         
            -
            Then /^ 
     | 
| 
      
 104 
     | 
    
         
            +
            Then /^the output should match \/([^\/]*)\/$/ do |partial_output|
         
     | 
| 
       97 
105 
     | 
    
         
             
              combined_output.should =~ /#{partial_output}/
         
     | 
| 
       98 
106 
     | 
    
         
             
            end
         
     | 
| 
       99 
107 
     | 
    
         | 
| 
       100 
     | 
    
         
            -
            Then /^ 
     | 
| 
      
 108 
     | 
    
         
            +
            Then /^the output should match:$/ do |partial_output|
         
     | 
| 
       101 
109 
     | 
    
         
             
              combined_output.should =~ /#{partial_output}/m
         
     | 
| 
       102 
110 
     | 
    
         
             
            end
         
     | 
| 
       103 
111 
     | 
    
         | 
| 
         @@ -110,7 +118,7 @@ Then /^the exit status should not be (\d+)$/ do |exit_status| 
     | 
|
| 
       110 
118 
     | 
    
         
             
            end
         
     | 
| 
       111 
119 
     | 
    
         | 
| 
       112 
120 
     | 
    
         
             
            Then /^it should (pass|fail) with:$/ do |pass_fail, partial_output|
         
     | 
| 
       113 
     | 
    
         
            -
              Then " 
     | 
| 
      
 121 
     | 
    
         
            +
              Then "the output should contain:", partial_output
         
     | 
| 
       114 
122 
     | 
    
         
             
              if pass_fail == 'pass'
         
     | 
| 
       115 
123 
     | 
    
         
             
                @last_exit_status.should == 0
         
     | 
| 
       116 
124 
     | 
    
         
             
              else
         
     | 
| 
         @@ -118,19 +126,19 @@ Then /^it should (pass|fail) with:$/ do |pass_fail, partial_output| 
     | 
|
| 
       118 
126 
     | 
    
         
             
              end
         
     | 
| 
       119 
127 
     | 
    
         
             
            end
         
     | 
| 
       120 
128 
     | 
    
         | 
| 
       121 
     | 
    
         
            -
            Then /^the stderr should contain "([ 
     | 
| 
      
 129 
     | 
    
         
            +
            Then /^the stderr should contain "([^"]*)"$/ do |partial_output|
         
     | 
| 
       122 
130 
     | 
    
         
             
              @last_stderr.should =~ compile_and_escape(partial_output)
         
     | 
| 
       123 
131 
     | 
    
         
             
            end
         
     | 
| 
       124 
132 
     | 
    
         | 
| 
       125 
     | 
    
         
            -
            Then /^the stdout should contain "([ 
     | 
| 
      
 133 
     | 
    
         
            +
            Then /^the stdout should contain "([^"]*)"$/ do |partial_output|
         
     | 
| 
       126 
134 
     | 
    
         
             
              @last_stdout.should =~ compile_and_escape(partial_output)
         
     | 
| 
       127 
135 
     | 
    
         
             
            end
         
     | 
| 
       128 
136 
     | 
    
         | 
| 
       129 
     | 
    
         
            -
            Then /^the stderr should not contain "([ 
     | 
| 
      
 137 
     | 
    
         
            +
            Then /^the stderr should not contain "([^"]*)"$/ do |partial_output|
         
     | 
| 
       130 
138 
     | 
    
         
             
              @last_stderr.should_not =~ compile_and_escape(partial_output)
         
     | 
| 
       131 
139 
     | 
    
         
             
            end
         
     | 
| 
       132 
140 
     | 
    
         | 
| 
       133 
     | 
    
         
            -
            Then /^the stdout should not contain "([ 
     | 
| 
      
 141 
     | 
    
         
            +
            Then /^the stdout should not contain "([^"]*)"$/ do |partial_output|
         
     | 
| 
       134 
142 
     | 
    
         
             
              @last_stdout.should_not =~ compile_and_escape(partial_output)
         
     | 
| 
       135 
143 
     | 
    
         
             
            end
         
     | 
| 
       136 
144 
     | 
    
         | 
| 
         @@ -142,10 +150,18 @@ Then /^the following files should not exist:$/ do |files| 
     | 
|
| 
       142 
150 
     | 
    
         
             
              check_file_presence(files.raw.map{|file_row| file_row[0]}, false)
         
     | 
| 
       143 
151 
     | 
    
         
             
            end
         
     | 
| 
       144 
152 
     | 
    
         | 
| 
       145 
     | 
    
         
            -
            Then /^the  
     | 
| 
      
 153 
     | 
    
         
            +
            Then /^the following directories should exist:$/ do |directories|
         
     | 
| 
      
 154 
     | 
    
         
            +
              check_directory_presence(directories.raw.map{|directory_row| directory_row[0]}, true)
         
     | 
| 
      
 155 
     | 
    
         
            +
            end
         
     | 
| 
      
 156 
     | 
    
         
            +
             
     | 
| 
      
 157 
     | 
    
         
            +
            Then /^the following directories should not exist:$/ do |directories|
         
     | 
| 
      
 158 
     | 
    
         
            +
              check_file_presence(directories.raw.map{|directory_row| directory_row[0]}, false)
         
     | 
| 
      
 159 
     | 
    
         
            +
            end
         
     | 
| 
      
 160 
     | 
    
         
            +
             
     | 
| 
      
 161 
     | 
    
         
            +
            Then /^the file "([^"]*)" should contain "([^"]*)"$/ do |file, partial_content|
         
     | 
| 
       146 
162 
     | 
    
         
             
              check_file_content(file, partial_content, true)
         
     | 
| 
       147 
163 
     | 
    
         
             
            end
         
     | 
| 
       148 
164 
     | 
    
         | 
| 
       149 
     | 
    
         
            -
            Then /^the file "([ 
     | 
| 
      
 165 
     | 
    
         
            +
            Then /^the file "([^"]*)" should not contain "([^"]*)"$/ do |file, partial_content|
         
     | 
| 
       150 
166 
     | 
    
         
             
              check_file_content(file, partial_content, false)
         
     | 
| 
       151 
167 
     | 
    
         
             
            end
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,12 +1,13 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification 
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: aruba
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version 
         
     | 
| 
      
 4 
     | 
    
         
            +
              hash: 23
         
     | 
| 
       4 
5 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       5 
6 
     | 
    
         
             
              segments: 
         
     | 
| 
       6 
7 
     | 
    
         
             
              - 0
         
     | 
| 
       7 
     | 
    
         
            -
              -  
     | 
| 
       8 
     | 
    
         
            -
              -  
     | 
| 
       9 
     | 
    
         
            -
              version: 0. 
     | 
| 
      
 8 
     | 
    
         
            +
              - 2
         
     | 
| 
      
 9 
     | 
    
         
            +
              - 0
         
     | 
| 
      
 10 
     | 
    
         
            +
              version: 0.2.0
         
     | 
| 
       10 
11 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       11 
12 
     | 
    
         
             
            authors: 
         
     | 
| 
       12 
13 
     | 
    
         
             
            - "Aslak Helles\xC3\xB8y"
         
     | 
| 
         @@ -15,37 +16,41 @@ autorequire: 
     | 
|
| 
       15 
16 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       16 
17 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       17 
18 
     | 
    
         | 
| 
       18 
     | 
    
         
            -
            date: 2010- 
     | 
| 
      
 19 
     | 
    
         
            +
            date: 2010-07-07 00:00:00 +02:00
         
     | 
| 
       19 
20 
     | 
    
         
             
            default_executable: 
         
     | 
| 
       20 
21 
     | 
    
         
             
            dependencies: 
         
     | 
| 
       21 
22 
     | 
    
         
             
            - !ruby/object:Gem::Dependency 
         
     | 
| 
       22 
23 
     | 
    
         
             
              name: rspec
         
     | 
| 
       23 
24 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       24 
25 
     | 
    
         
             
              requirement: &id001 !ruby/object:Gem::Requirement 
         
     | 
| 
      
 26 
     | 
    
         
            +
                none: false
         
     | 
| 
       25 
27 
     | 
    
         
             
                requirements: 
         
     | 
| 
       26 
28 
     | 
    
         
             
                - - ">="
         
     | 
| 
       27 
29 
     | 
    
         
             
                  - !ruby/object:Gem::Version 
         
     | 
| 
      
 30 
     | 
    
         
            +
                    hash: 62196477
         
     | 
| 
       28 
31 
     | 
    
         
             
                    segments: 
         
     | 
| 
       29 
     | 
    
         
            -
                    -  
     | 
| 
       30 
     | 
    
         
            -
                    -  
     | 
| 
      
 32 
     | 
    
         
            +
                    - 2
         
     | 
| 
      
 33 
     | 
    
         
            +
                    - 0
         
     | 
| 
       31 
34 
     | 
    
         
             
                    - 0
         
     | 
| 
       32 
     | 
    
         
            -
                     
     | 
| 
      
 35 
     | 
    
         
            +
                    - beta
         
     | 
| 
      
 36 
     | 
    
         
            +
                    - 15
         
     | 
| 
      
 37 
     | 
    
         
            +
                    version: 2.0.0.beta.15
         
     | 
| 
       33 
38 
     | 
    
         
             
              type: :development
         
     | 
| 
       34 
39 
     | 
    
         
             
              version_requirements: *id001
         
     | 
| 
       35 
40 
     | 
    
         
             
            - !ruby/object:Gem::Dependency 
         
     | 
| 
       36 
41 
     | 
    
         
             
              name: cucumber
         
     | 
| 
       37 
42 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       38 
43 
     | 
    
         
             
              requirement: &id002 !ruby/object:Gem::Requirement 
         
     | 
| 
      
 44 
     | 
    
         
            +
                none: false
         
     | 
| 
       39 
45 
     | 
    
         
             
                requirements: 
         
     | 
| 
       40 
46 
     | 
    
         
             
                - - ">="
         
     | 
| 
       41 
47 
     | 
    
         
             
                  - !ruby/object:Gem::Version 
         
     | 
| 
      
 48 
     | 
    
         
            +
                    hash: 59
         
     | 
| 
       42 
49 
     | 
    
         
             
                    segments: 
         
     | 
| 
       43 
50 
     | 
    
         
             
                    - 0
         
     | 
| 
       44 
     | 
    
         
            -
                    -  
     | 
| 
       45 
     | 
    
         
            -
                    -  
     | 
| 
       46 
     | 
    
         
            -
                     
     | 
| 
       47 
     | 
    
         
            -
                    - 6
         
     | 
| 
       48 
     | 
    
         
            -
                    version: 0.7.0.beta.6
         
     | 
| 
      
 51 
     | 
    
         
            +
                    - 8
         
     | 
| 
      
 52 
     | 
    
         
            +
                    - 2
         
     | 
| 
      
 53 
     | 
    
         
            +
                    version: 0.8.2
         
     | 
| 
       49 
54 
     | 
    
         
             
              type: :development
         
     | 
| 
       50 
55 
     | 
    
         
             
              version_requirements: *id002
         
     | 
| 
       51 
56 
     | 
    
         
             
            description: CLI Steps for Cucumber, hand-crafted for you in Aruba
         
     | 
| 
         @@ -64,6 +69,7 @@ files: 
     | 
|
| 
       64 
69 
     | 
    
         
             
            - LICENSE
         
     | 
| 
       65 
70 
     | 
    
         
             
            - README.rdoc
         
     | 
| 
       66 
71 
     | 
    
         
             
            - Rakefile
         
     | 
| 
      
 72 
     | 
    
         
            +
            - aruba.gemspec
         
     | 
| 
       67 
73 
     | 
    
         
             
            - config/.gitignore
         
     | 
| 
       68 
74 
     | 
    
         
             
            - features/exit_statuses.feature
         
     | 
| 
       69 
75 
     | 
    
         
             
            - features/file_system_commands.feature
         
     | 
| 
         @@ -84,23 +90,27 @@ rdoc_options: 
     | 
|
| 
       84 
90 
     | 
    
         
             
            require_paths: 
         
     | 
| 
       85 
91 
     | 
    
         
             
            - lib
         
     | 
| 
       86 
92 
     | 
    
         
             
            required_ruby_version: !ruby/object:Gem::Requirement 
         
     | 
| 
      
 93 
     | 
    
         
            +
              none: false
         
     | 
| 
       87 
94 
     | 
    
         
             
              requirements: 
         
     | 
| 
       88 
95 
     | 
    
         
             
              - - ">="
         
     | 
| 
       89 
96 
     | 
    
         
             
                - !ruby/object:Gem::Version 
         
     | 
| 
      
 97 
     | 
    
         
            +
                  hash: 3
         
     | 
| 
       90 
98 
     | 
    
         
             
                  segments: 
         
     | 
| 
       91 
99 
     | 
    
         
             
                  - 0
         
     | 
| 
       92 
100 
     | 
    
         
             
                  version: "0"
         
     | 
| 
       93 
101 
     | 
    
         
             
            required_rubygems_version: !ruby/object:Gem::Requirement 
         
     | 
| 
      
 102 
     | 
    
         
            +
              none: false
         
     | 
| 
       94 
103 
     | 
    
         
             
              requirements: 
         
     | 
| 
       95 
104 
     | 
    
         
             
              - - ">="
         
     | 
| 
       96 
105 
     | 
    
         
             
                - !ruby/object:Gem::Version 
         
     | 
| 
      
 106 
     | 
    
         
            +
                  hash: 3
         
     | 
| 
       97 
107 
     | 
    
         
             
                  segments: 
         
     | 
| 
       98 
108 
     | 
    
         
             
                  - 0
         
     | 
| 
       99 
109 
     | 
    
         
             
                  version: "0"
         
     | 
| 
       100 
110 
     | 
    
         
             
            requirements: []
         
     | 
| 
       101 
111 
     | 
    
         | 
| 
       102 
112 
     | 
    
         
             
            rubyforge_project: 
         
     | 
| 
       103 
     | 
    
         
            -
            rubygems_version: 1.3. 
     | 
| 
      
 113 
     | 
    
         
            +
            rubygems_version: 1.3.7
         
     | 
| 
       104 
114 
     | 
    
         
             
            signing_key: 
         
     | 
| 
       105 
115 
     | 
    
         
             
            specification_version: 3
         
     | 
| 
       106 
116 
     | 
    
         
             
            summary: CLI Steps for Cucumber
         
     |