aruba 1.0.0.pre.alpha.4 → 1.0.0.pre.alpha.5

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.
Files changed (63) hide show
  1. checksums.yaml +4 -4
  2. data/.rspec +0 -1
  3. data/.rubocop.yml +19 -1
  4. data/.rubocop_todo.yml +10 -116
  5. data/.travis.yml +24 -26
  6. data/CHANGELOG.md +112 -19
  7. data/CONTRIBUTING.md +7 -7
  8. data/Gemfile +2 -50
  9. data/Rakefile +20 -37
  10. data/appveyor.yml +3 -5
  11. data/aruba.gemspec +16 -6
  12. data/bin/console +1 -1
  13. data/cucumber.yml +4 -15
  14. data/exe/aruba +1 -1
  15. data/fixtures/cli-app/bin/aruba-test-cli +1 -1
  16. data/fixtures/cli-app/cli-app.gemspec +1 -3
  17. data/fixtures/cli-app/lib/cli/app.rb +1 -1
  18. data/fixtures/cli-app/spec/spec_helper.rb +1 -1
  19. data/fixtures/empty-app/cli-app.gemspec +1 -3
  20. data/fixtures/empty-app/lib/cli/app.rb +0 -2
  21. data/fixtures/getting-started-app/Gemfile +1 -1
  22. data/lib/aruba/api.rb +6 -6
  23. data/lib/aruba/api/commands.rb +25 -1
  24. data/lib/aruba/api/core.rb +17 -4
  25. data/lib/aruba/api/environment.rb +8 -4
  26. data/lib/aruba/api/filesystem.rb +19 -6
  27. data/lib/aruba/colorizer.rb +10 -99
  28. data/lib/aruba/config/jruby.rb +15 -5
  29. data/lib/aruba/config_wrapper.rb +3 -1
  30. data/lib/aruba/configuration.rb +24 -12
  31. data/lib/aruba/cucumber.rb +0 -2
  32. data/lib/aruba/cucumber/command.rb +123 -45
  33. data/lib/aruba/cucumber/file.rb +13 -15
  34. data/lib/aruba/cucumber/testing_frameworks.rb +74 -50
  35. data/lib/aruba/in_config_wrapper.rb +5 -1
  36. data/lib/aruba/initializer.rb +28 -28
  37. data/lib/aruba/matchers/command/be_successfully_executed.rb +4 -0
  38. data/lib/aruba/matchers/command/have_exit_status.rb +13 -3
  39. data/lib/aruba/matchers/command/have_finished_in_time.rb +1 -1
  40. data/lib/aruba/matchers/command/have_output.rb +1 -1
  41. data/lib/aruba/matchers/command/have_output_on_stderr.rb +1 -1
  42. data/lib/aruba/matchers/command/have_output_on_stdout.rb +1 -1
  43. data/lib/aruba/matchers/command/have_output_size.rb +1 -1
  44. data/lib/aruba/matchers/directory/be_an_existing_directory.rb +1 -1
  45. data/lib/aruba/matchers/file/be_an_existing_file.rb +1 -1
  46. data/lib/aruba/platform.rb +0 -7
  47. data/lib/aruba/platforms/announcer.rb +16 -11
  48. data/lib/aruba/platforms/command_monitor.rb +36 -0
  49. data/lib/aruba/platforms/simple_table.rb +2 -10
  50. data/lib/aruba/platforms/unix_environment_variables.rb +2 -10
  51. data/lib/aruba/platforms/unix_platform.rb +7 -3
  52. data/lib/aruba/platforms/windows_command_string.rb +2 -2
  53. data/lib/aruba/platforms/windows_environment_variables.rb +7 -1
  54. data/lib/aruba/platforms/windows_platform.rb +4 -0
  55. data/lib/aruba/processes/basic_process.rb +11 -11
  56. data/lib/aruba/processes/debug_process.rb +7 -3
  57. data/lib/aruba/processes/spawn_process.rb +13 -8
  58. data/lib/aruba/rspec.rb +1 -1
  59. data/lib/aruba/setup.rb +5 -5
  60. data/lib/aruba/version.rb +1 -1
  61. metadata +153 -20
  62. data/bin/build +0 -3
  63. data/bin/release +0 -3
@@ -129,11 +129,11 @@ Or use these Rake tasks:
129
129
  # Run the whole test suite
130
130
  rake test
131
131
  # Run RSpec tests
132
- rake test:rspec
132
+ rake spec
133
133
  # Run Cucumber features
134
- rake test:cucumber
134
+ rake cucumber
135
135
  # Run Cucumber features which are "WORK IN PROGRESS" and are allowed to fail
136
- rake test:cucumber_wip
136
+ rake cucumber:wip
137
137
  ```
138
138
 
139
139
  If you have problems because our assumptions about your local setup are wrong,
@@ -195,11 +195,11 @@ You can use the following Rake tasks to build and install your work-in-progress
195
195
 
196
196
  ```bash
197
197
  # Build your copy
198
- bundle exec rake rubygem:build
198
+ bundle exec rake build
199
199
  # Build and install your copy
200
- bundle exec rake rubygem:install
200
+ bundle exec rake install
201
201
  # Build and install your copy without network access
202
- bundle exec rake rubygem:install:local
202
+ bundle exec rake install:local
203
203
  ```
204
204
 
205
205
  ## Getting started as a "Maintainer"
@@ -225,7 +225,7 @@ bin/test
225
225
 
226
226
  # Release gem
227
227
  git commit -m "Version bump"
228
- bin/release
228
+ bundle exec rake release
229
229
 
230
230
  # If it's a major relase:
231
231
  # Merge changes back to have correct documentation
data/Gemfile CHANGED
@@ -4,60 +4,12 @@ source 'https://rubygems.org'
4
4
  gemspec
5
5
 
6
6
  # Load local Gemfile
7
- load File.expand_path('../Gemfile.local', __FILE__) if File.file? File.expand_path('../Gemfile.local', __FILE__)
7
+ load File.expand_path('Gemfile.local', __dir__) if File.file? File.expand_path('Gemfile.local', __dir__)
8
8
 
9
9
  # Debug aruba
10
10
  group :debug do
11
11
  unless RUBY_PLATFORM.include?('java')
12
- if RUBY_VERSION >= '2.3.0'
13
- gem 'byebug', '~> 11.0'
14
- else
15
- gem 'byebug', '~> 10.0'
16
- end
17
-
12
+ gem 'byebug', '~> 11.0'
18
13
  gem 'pry-byebug', '~> 3.4'
19
14
  end
20
-
21
- gem 'pry-doc', '~> 1.0.0'
22
- end
23
-
24
- # Tools to run during development
25
- group :development do
26
- # Needed for lint:yard:junk task
27
- if RUBY_VERSION >= '2.3.0'
28
- gem 'yard-junk', '~> 0'
29
- end
30
- end
31
-
32
- group :development, :test do
33
- # we use this to demonstrate interactive debugging within our feature tests
34
- gem 'pry', '~> 0.12.2'
35
-
36
- # Run development and test tasks
37
- gem 'rake', '~> 12.3'
38
-
39
- # Lint travis yaml
40
- gem 'travis-yaml'
41
-
42
- # Code Coverage
43
- gem 'simplecov', '~> 0.10'
44
-
45
- # API docs generation
46
- gem 'yard', '~>0.9.9'
47
-
48
- # Test api
49
- gem 'fuubar', '~> 2.2'
50
- gem 'rspec', '~> 3.4'
51
-
52
- # Make aruba compliant to ruby community guide
53
- gem 'rubocop', '~> 0.64.0'
54
-
55
- # License compliance
56
- if RUBY_VERSION >= '2.3'
57
- gem 'license_finder', '~> 5.0'
58
- end
59
-
60
- gem 'minitest', '~> 5.8'
61
-
62
- gem 'json', '~> 2.1'
63
15
  end
data/Rakefile CHANGED
@@ -1,4 +1,4 @@
1
- $LOAD_PATH << File.expand_path('../', __FILE__)
1
+ $LOAD_PATH << File.expand_path(__dir__)
2
2
 
3
3
  require 'aruba/tasks/docker_helpers'
4
4
  require 'aruba/platform'
@@ -6,33 +6,30 @@ require 'aruba/platform'
6
6
  require 'bundler'
7
7
  Bundler.setup
8
8
 
9
- task default: [:lint, :test]
9
+ task default: %w(spec cucumber cucumber:wip lint)
10
10
 
11
11
  desc 'Run all linters.'
12
12
  task lint: %w(lint:travis lint:coding_guidelines lint:licenses)
13
13
 
14
14
  desc 'Run the whole test suite.'
15
- task test: %w(test:rspec test:cucumber test:cucumber_wip)
15
+ task test: %w(spec cucumber cucumber:wip)
16
16
 
17
17
  require 'cucumber/rake/task'
18
18
  require 'rspec/core/rake_task'
19
19
 
20
- namespace :test do
21
- Cucumber::Rake::Task.new do |t|
22
- t.cucumber_opts = %w{--format progress}
23
- end
24
-
25
- Cucumber::Rake::Task.new(:cucumber_wip, 'Run Cucumber features '\
26
- 'which are "WORK IN PROGRESS" and '\
27
- 'are allowed to fail') do |t|
28
- t.cucumber_opts = %w{--format progress}
29
- t.profile = 'wip'
30
- end
20
+ Cucumber::Rake::Task.new do |t|
21
+ t.cucumber_opts = %w{--format progress}
22
+ end
31
23
 
32
- desc 'Run RSpec tests'
33
- RSpec::Core::RakeTask.new(:rspec)
24
+ Cucumber::Rake::Task.new('cucumber:wip', 'Run Cucumber features '\
25
+ 'which are "WORK IN PROGRESS" and '\
26
+ 'are allowed to fail') do |t|
27
+ t.cucumber_opts = %w{--format progress}
28
+ t.profile = 'wip'
34
29
  end
35
30
 
31
+ RSpec::Core::RakeTask.new
32
+
36
33
  namespace :lint do
37
34
  desc 'Lint our .travis.yml'
38
35
  task :travis do
@@ -48,33 +45,19 @@ namespace :lint do
48
45
 
49
46
  desc 'Lint our code with "rubocop"'
50
47
  task :coding_guidelines do
51
- if RUBY_VERSION >= '2'
52
- sh 'bundle exec rubocop --fail-level E'
53
- else
54
- warn 'Your ruby version is not supported for code linting'
55
- end
48
+ sh 'bundle exec rubocop --fail-level E'
56
49
  end
57
50
 
58
51
  desc 'Check for relevant licenses in project'
59
52
  task :licenses do
60
- if RUBY_VERSION >= '2.3'
61
- sh 'bundle exec license_finder'
62
- else
63
- warn 'Your ruby version is not supported for license checking'
64
- end
53
+ sh 'bundle exec license_finder'
65
54
  end
66
55
 
67
- begin
68
- require 'yard-junk/rake'
69
- YardJunk::Rake.define_task
70
- rescue LoadError
71
- warn 'yard-junk requires Ruby 2.3.0. Rake task lint:yard:junk not loaded.'
72
- end
56
+ require 'yard-junk/rake'
57
+ YardJunk::Rake.define_task
73
58
  end
74
59
 
75
- namespace :rubygem do
76
- Bundler::GemHelper.install_tasks
77
- end
60
+ Bundler::GemHelper.install_tasks
78
61
 
79
62
  namespace :docker do
80
63
  desc 'Build docker image'
@@ -82,7 +65,7 @@ namespace :docker do
82
65
  args.with_defaults(version: 'latest')
83
66
  args.with_defaults(cache: true)
84
67
 
85
- docker_compose_file = Aruba::DockerComposeFile.new(File.expand_path('../docker-compose.yml', __FILE__))
68
+ docker_compose_file = Aruba::DockerComposeFile.new(File.expand_path('docker-compose.yml', __dir__))
86
69
  docker_run_instance = Aruba::DockerRunInstance.new(docker_compose_file, :base)
87
70
 
88
71
  builder = Aruba::DockerBuildCommandLineBuilder.new(
@@ -96,7 +79,7 @@ namespace :docker do
96
79
 
97
80
  desc 'Run docker container'
98
81
  task :run, :command do |_, args|
99
- docker_compose_file = Aruba::DockerComposeFile.new(File.expand_path('../docker-compose.yml', __FILE__))
82
+ docker_compose_file = Aruba::DockerComposeFile.new(File.expand_path('docker-compose.yml', __dir__))
100
83
  docker_run_instance = Aruba::DockerRunInstance.new(docker_compose_file, :base)
101
84
 
102
85
  builder = Aruba::DockerRunCommandLineBuilder.new(
@@ -1,8 +1,8 @@
1
1
  version: "{build}"
2
2
 
3
- # This will build all PRs targetting matching branches.
3
+ # This will build all PRs targeting matching branches.
4
4
  # Without this, each PR builds twice -- once for the PR branch HEAD,
5
- # and once for the merge commit that github creates for each mergable PR.
5
+ # and once for the merge commit that github creates for each mergeable PR.
6
6
  branches:
7
7
  only:
8
8
  - master
@@ -20,13 +20,11 @@ install:
20
20
  - cinst ansicon
21
21
 
22
22
  test_script:
23
- - bundle exec rake test:rspec --trace
23
+ - bundle exec rake spec --trace
24
24
 
25
25
  environment:
26
26
  matrix:
27
- - ruby_version: '22'
28
27
  - ruby_version: '23'
29
28
  - ruby_version: '24'
30
29
  - ruby_version: '25'
31
30
  - ruby_version: '26'
32
-
@@ -1,5 +1,3 @@
1
- # -*- encoding: utf-8 -*-
2
-
3
1
  lib = ::File.expand_path('../lib', __FILE__)
4
2
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
3
  require 'aruba/version'
@@ -8,22 +6,34 @@ Gem::Specification.new do |spec|
8
6
  spec.name = 'aruba'
9
7
  spec.version = Aruba::VERSION
10
8
  spec.author = 'Aslak Hellesøy, Matt Wynne and other Aruba Contributors'
11
- spec.description = 'Extension for popular TDD and BDD frameworks like "Cucumber", "RSpec" and "Minitest" to make testing commandline applications meaningful, easy and fun.'
9
+ spec.description = 'Extension for popular TDD and BDD frameworks like "Cucumber", "RSpec" and "Minitest",
10
+ to make testing commandline applications meaningful, easy and fun.'
12
11
  spec.summary = "aruba-#{spec.version}"
13
12
  spec.license = 'MIT'
14
13
  spec.email = 'cukes@googlegroups.com'
15
14
  spec.homepage = 'https://github.com/cucumber/aruba'
16
15
 
17
- spec.add_runtime_dependency 'childprocess', '~> 1.0'
16
+ spec.add_runtime_dependency 'childprocess', '~> 3.0'
18
17
  spec.add_runtime_dependency 'contracts', '~> 0.13'
19
18
  spec.add_runtime_dependency 'cucumber', ['>= 2.4', '< 4.0']
20
19
  spec.add_runtime_dependency 'ffi', '~> 1.9'
21
20
  spec.add_runtime_dependency 'rspec-expectations', '~> 3.4'
22
21
  spec.add_runtime_dependency 'thor', '~> 0.19'
23
22
 
24
- spec.add_development_dependency 'bundler', ['>= 1.7.0', '< 3.0']
23
+ spec.add_development_dependency 'json', '~> 2.1'
24
+ spec.add_development_dependency 'license_finder', '~> 5.3'
25
+ spec.add_development_dependency 'minitest', '~> 5.10'
26
+ spec.add_development_dependency 'pry-doc', '~> 1.0.0'
27
+ spec.add_development_dependency 'rake', '~> 12.3'
28
+ spec.add_development_dependency 'rspec', '~> 3.6'
29
+ spec.add_development_dependency 'rubocop', '~> 0.69.0'
30
+ spec.add_development_dependency 'rubocop-performance', '~> 1.1'
31
+ spec.add_development_dependency 'simplecov', '~> 0.15'
32
+ spec.add_development_dependency 'travis-yaml', '~> 0.2'
33
+ spec.add_development_dependency 'yard-junk', '~> 0.0.7'
34
+
25
35
  spec.rubygems_version = '>= 1.6.1'
26
- spec.required_ruby_version = '>= 2.2'
36
+ spec.required_ruby_version = '>= 2.3'
27
37
 
28
38
  spec.files = `git ls-files -z`.split("\x0").reject do |f|
29
39
  f.match(%r{^(test|spec|features)/})
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- $LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
3
+ $LOAD_PATH.unshift File.expand_path('../lib', __dir__)
4
4
 
5
5
  require 'aruba/console'
6
6
 
@@ -1,17 +1,6 @@
1
1
  <%
2
- $LOAD_PATH << ::File.expand_path('../lib', __FILE__)
3
- require 'aruba/version'
4
- require 'ffi'
5
-
6
- java_version = (RUBY_DESCRIPTION.match(/.*?on.*?(1\.[\d]\..*? )/))[1] if defined?(JRUBY_VERSION)
7
-
8
- std_opts = "--format pretty --color --exclude features/fixtures --require features --tags ~@unsupported-on"
9
- java_default_opts = "--tags ~@wip-jruby-java-1.6" if defined?(JRUBY_VERSION) && (java_version < '1.7.0')
10
- java_wip_opts = "--tags @wip-jruby-java-1.6:3" if defined?(JRUBY_VERSION) && (java_version < '1.7.0')
11
-
12
- ignore_opts = []
13
- ignore_opts << '--tags ~@ignore'
14
- ignore_opts = ignore_opts.join(' ')
2
+ std_opts = "--format pretty --color --exclude features/fixtures --require features --tags ~@unsupported-on"
3
+ ignore_opts = '--tags ~@ignore'
15
4
  %>
16
- default: <%= std_opts %> --tags ~@wip <%= java_default_opts %> <%= ignore_opts %>
17
- wip: <%= std_opts %> --wip --tags @wip:3 <%= java_wip_opts %> <%= ignore_opts %>
5
+ default: <%= std_opts %> --tags ~@wip <%= ignore_opts %>
6
+ wip: <%= std_opts %> --wip --tags @wip:3 <%= ignore_opts %>
data/exe/aruba CHANGED
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- $LOAD_PATH << File.expand_path('../../lib', __FILE__)
3
+ $LOAD_PATH << File.expand_path('../lib', __dir__)
4
4
 
5
5
  require 'aruba/cli'
6
6
 
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- $LOAD_PATH << File.expand_path('../../lib', __FILE__)
3
+ $LOAD_PATH << File.expand_path('../lib', __dir__)
4
4
  require 'cli/app'
5
5
 
6
6
  exit 0
@@ -1,6 +1,4 @@
1
- # coding: utf-8
2
-
3
- lib = File.expand_path('../lib', __FILE__)
1
+ lib = File.expand_path('lib', __dir__)
4
2
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
3
  require 'cli/app/version'
6
4
 
@@ -1,6 +1,6 @@
1
1
  require 'cli/app/version'
2
2
 
3
- ::Dir.glob(File.expand_path('../**/*.rb', __FILE__)).each { |f| require_relative f }
3
+ ::Dir.glob(File.expand_path('**/*.rb', __dir__)).each { |f| require_relative f }
4
4
 
5
5
  module Cli
6
6
  module App
@@ -1,4 +1,4 @@
1
- $LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
1
+ $LOAD_PATH.unshift File.expand_path('../lib', __dir__)
2
2
 
3
3
  require 'cli/app'
4
4
 
@@ -1,6 +1,4 @@
1
- # coding: utf-8
2
-
3
- lib = File.expand_path('../lib', __FILE__)
1
+ lib = File.expand_path('lib', __dir__)
4
2
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
3
  require 'cli/app/version'
6
4
 
@@ -1,7 +1,5 @@
1
1
  require 'cli/app/version'
2
2
 
3
- ::Dir.glob(File.expand_path('../**/*.rb', __FILE__)).each { |f| require_relative f }
4
-
5
3
  module Cli
6
4
  module App
7
5
  # Your code goes here...
@@ -1,4 +1,4 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
- gem 'aruba', path: File.expand_path('../../../../', __FILE__)
3
+ gem 'aruba', path: File.expand_path('../../..', __dir__)
4
4
  gem 'cucumber'
@@ -19,11 +19,11 @@ Aruba.platform.require_matching_files('../matchers/**/*.rb', __FILE__)
19
19
  module Aruba
20
20
  # Api
21
21
  module Api
22
- include Aruba::Api::Core
23
- include Aruba::Api::Commands
24
- include Aruba::Api::Environment
25
- include Aruba::Api::Filesystem
26
- include Aruba::Api::Text
27
- include Aruba::Api::Bundler
22
+ include Core
23
+ include Commands
24
+ include Environment
25
+ include Filesystem
26
+ include Text
27
+ include Bundler
28
28
  end
29
29
  end
@@ -92,6 +92,30 @@ module Aruba
92
92
  self
93
93
  end
94
94
 
95
+ # Get stdout of all processes
96
+ #
97
+ # @return [String]
98
+ # The stdout of all processes which have run before
99
+ def all_stdout
100
+ aruba.command_monitor.all_stdout
101
+ end
102
+
103
+ # Get stderr of all processes
104
+ #
105
+ # @return [String]
106
+ # The stderr of all processes which have run before
107
+ def all_stderr
108
+ aruba.command_monitor.all_stderr
109
+ end
110
+
111
+ # Get stderr and stdout of all processes
112
+ #
113
+ # @return [String]
114
+ # The stderr and stdout of all processes which have run before
115
+ def all_output
116
+ aruba.command_monitor.all_output
117
+ end
118
+
95
119
  # Find a started command
96
120
  #
97
121
  # @param [String, Command] commandline
@@ -128,7 +152,7 @@ module Aruba
128
152
 
129
153
  unless command.interactive?
130
154
  raise NotImplementedError,
131
- 'Running interactively is not supported with this process launcher.'
155
+ 'Running interactively is not supported with this process launcher.'
132
156
  end
133
157
 
134
158
  start_command(command)
@@ -3,8 +3,6 @@ require 'aruba/runtime'
3
3
  require 'aruba/errors'
4
4
  require 'aruba/setup'
5
5
 
6
- require 'aruba/config/jruby'
7
-
8
6
  # Aruba
9
7
  module Aruba
10
8
  # Api
@@ -17,6 +15,8 @@ module Aruba
17
15
 
18
16
  # Aruba Runtime
19
17
  def aruba
18
+ # TODO: Check this variable being accessed inconsistently. Should only be using the memo!
19
+ # Renaming this to `aruba` causes 100's of rspec failures. Needs a deeper dive, approach with caution!
20
20
  @_aruba_runtime ||= Runtime.new
21
21
  end
22
22
 
@@ -31,6 +31,15 @@ module Aruba
31
31
  self
32
32
  end
33
33
 
34
+ # Execute block in Aruba's current directory
35
+ #
36
+ # @yield
37
+ # The block which should be run in current directory
38
+ def in_current_directory(&block)
39
+ create_directory '.' unless directory?('.')
40
+ cd('.', &block)
41
+ end
42
+
34
43
  # Switch to directory
35
44
  #
36
45
  # @param [String] dir
@@ -49,7 +58,9 @@ module Aruba
49
58
  def cd(dir, &block)
50
59
  if block_given?
51
60
  begin
52
- fail ArgumentError, "#{expand_path(dir)} is not a directory or does not exist." unless Aruba.platform.directory? expand_path(dir)
61
+ unless Aruba.platform.directory? expand_path(dir)
62
+ fail ArgumentError, "#{expand_path(dir)} is not a directory or does not exist."
63
+ end
53
64
 
54
65
  old_directory = expand_path('.')
55
66
  aruba.current_directory << dir
@@ -74,7 +85,9 @@ module Aruba
74
85
  return result
75
86
  end
76
87
 
77
- fail ArgumentError, "#{expand_path(dir)} is not a directory or does not exist." unless Aruba.platform.directory? expand_path(dir)
88
+ unless Aruba.platform.directory? expand_path(dir)
89
+ fail ArgumentError, "#{expand_path(dir)} is not a directory or does not exist."
90
+ end
78
91
 
79
92
  old_directory = expand_path('.')
80
93
  aruba.current_directory << dir