geordi 2.11.0 → 3.1.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.
Files changed (85) hide show
  1. checksums.yaml +4 -4
  2. data/.ruby-version +1 -1
  3. data/.travis.yml +8 -2
  4. data/CHANGELOG.md +40 -0
  5. data/Gemfile +2 -5
  6. data/Gemfile.lock +50 -3
  7. data/README.md +34 -7
  8. data/Rakefile +6 -10
  9. data/{bin → exe}/b +0 -0
  10. data/{bin → exe}/cap-all +0 -0
  11. data/{bin → exe}/console-for +0 -0
  12. data/{bin → exe}/cuc +0 -0
  13. data/{bin → exe}/cuc-show +0 -0
  14. data/{bin → exe}/cuc-vnc-setup +0 -0
  15. data/{bin → exe}/deploy-to-production +0 -0
  16. data/{bin → exe}/dump-for +0 -0
  17. data/{bin → exe}/dumple +0 -0
  18. data/{bin → exe}/geordi +0 -0
  19. data/{bin → exe}/gitpt +0 -0
  20. data/{bin → exe}/launchy_browser +0 -0
  21. data/{bin → exe}/load-dump +0 -0
  22. data/{bin → exe}/migrate-all +0 -0
  23. data/{bin → exe}/rs +0 -0
  24. data/{bin → exe}/run_tests +0 -0
  25. data/{bin → exe}/shell-for +0 -0
  26. data/{bin → exe}/tests +0 -0
  27. data/geordi.gemspec +23 -20
  28. data/lib/geordi/COMMAND_TEMPLATE +4 -6
  29. data/lib/geordi/capistrano_config.rb +7 -7
  30. data/lib/geordi/chromedriver_updater.rb +9 -10
  31. data/lib/geordi/cli.rb +1 -7
  32. data/lib/geordi/commands/_setup_vnc.rb +23 -23
  33. data/lib/geordi/commands/apache_site.rb +3 -3
  34. data/lib/geordi/commands/bundle_install.rb +3 -3
  35. data/lib/geordi/commands/capistrano.rb +5 -6
  36. data/lib/geordi/commands/chromedriver_update.rb +0 -9
  37. data/lib/geordi/commands/clean.rb +5 -6
  38. data/lib/geordi/commands/commit.rb +0 -1
  39. data/lib/geordi/commands/console.rb +4 -4
  40. data/lib/geordi/commands/create_database_yml.rb +4 -4
  41. data/lib/geordi/commands/create_databases.rb +3 -3
  42. data/lib/geordi/commands/cucumber.rb +25 -25
  43. data/lib/geordi/commands/delete_dumps.rb +12 -12
  44. data/lib/geordi/commands/deploy.rb +27 -28
  45. data/lib/geordi/commands/drop_databases.rb +13 -15
  46. data/lib/geordi/commands/dump.rb +12 -13
  47. data/lib/geordi/commands/eurest.rb +2 -2
  48. data/lib/geordi/commands/firefox.rb +4 -4
  49. data/lib/geordi/commands/migrate.rb +3 -3
  50. data/lib/geordi/commands/png_optimize.rb +15 -14
  51. data/lib/geordi/commands/rake.rb +3 -3
  52. data/lib/geordi/commands/remove_executable_flags.rb +3 -3
  53. data/lib/geordi/commands/rspec.rb +11 -11
  54. data/lib/geordi/commands/security_update.rb +84 -27
  55. data/lib/geordi/commands/server.rb +6 -6
  56. data/lib/geordi/commands/setup.rb +8 -8
  57. data/lib/geordi/commands/shell.rb +3 -3
  58. data/lib/geordi/commands/tests.rb +1 -1
  59. data/lib/geordi/commands/unit.rb +3 -3
  60. data/lib/geordi/commands/update.rb +7 -7
  61. data/lib/geordi/commands/vnc.rb +1 -1
  62. data/lib/geordi/commands/with_rake.rb +3 -3
  63. data/lib/geordi/commands/yarn_install.rb +3 -3
  64. data/lib/geordi/cucumber.rb +35 -36
  65. data/lib/geordi/db_cleaner.rb +40 -41
  66. data/lib/geordi/dump_loader.rb +6 -5
  67. data/lib/geordi/firefox_for_selenium.rb +26 -29
  68. data/lib/geordi/gitpt.rb +14 -15
  69. data/lib/geordi/interaction.rb +2 -6
  70. data/lib/geordi/remote.rb +9 -10
  71. data/lib/geordi/util.rb +26 -27
  72. data/lib/geordi/version.rb +1 -1
  73. metadata +25 -37
  74. data/features/commit.feature +0 -17
  75. data/features/console.feature +0 -7
  76. data/features/cucumber.feature +0 -261
  77. data/features/deploy.feature +0 -66
  78. data/features/dump.feature +0 -34
  79. data/features/firefox.feature +0 -44
  80. data/features/server.feature +0 -31
  81. data/features/setup.feature +0 -11
  82. data/features/shell.feature +0 -78
  83. data/features/support/env.rb +0 -8
  84. data/features/support/step_definitions/aruba_backport_steps.rb +0 -5
  85. data/features/support/step_definitions/miscellaneous_steps.rb +0 -11
@@ -4,14 +4,13 @@ require 'tempfile'
4
4
 
5
5
  module Geordi
6
6
  class ChromedriverUpdater
7
- include Geordi::Interaction
8
7
 
9
8
  def run
10
9
  chrome_version = determine_chrome_version
11
10
  chromedriver_version = determine_chromedriver_version
12
11
 
13
12
  if skip_update?(chrome_version, chromedriver_version)
14
- warn("No update required, you are using for both executables the same version #{chrome_version}!")
13
+ Interaction.warn("No update required, you are using for both executables the same version #{chrome_version}!")
15
14
  else
16
15
  chromedriver_zip = download_chromedriver(chrome_version)
17
16
  unzip(chromedriver_zip, File.expand_path('~/bin'))
@@ -19,7 +18,7 @@ module Geordi
19
18
  chromedriver_zip.unlink
20
19
 
21
20
  # We need to determine the version again, as it could be nil in case no chromedriver was installed before
22
- note "Chromedriver updated to version #{determine_chromedriver_version}"
21
+ Interaction.note "Chromedriver updated to version #{determine_chromedriver_version}"
23
22
  end
24
23
  end
25
24
 
@@ -27,12 +26,12 @@ module Geordi
27
26
 
28
27
  def determine_chrome_version
29
28
  stdout_str, _error_str, status = Open3.capture3('google-chrome', '--version')
30
- chrome_version = if !stdout_str.nil?
29
+ chrome_version = unless stdout_str.nil?
31
30
  stdout_str[/\AGoogle Chrome (\d+)/, 1]
32
31
  end
33
32
 
34
33
  if !status.success? || chrome_version.nil?
35
- fail('Could not determine the current Google Chrome version')
34
+ Interaction.fail('Could not determine the current Google Chrome version')
36
35
  else
37
36
  chrome_version.to_i
38
37
  end
@@ -42,12 +41,12 @@ module Geordi
42
41
  return unless Open3.capture2('which chromedriver')[1].success?
43
42
 
44
43
  stdout_str, _error_str, status = Open3.capture3('chromedriver', '-v')
45
- chromedriver_version = if !stdout_str.nil?
44
+ chromedriver_version = unless stdout_str.nil?
46
45
  stdout_str[/\AChromeDriver (\d+)/, 1]
47
46
  end
48
47
 
49
48
  if !status.success? || chromedriver_version.nil?
50
- fail('Could not determine the current chromedriver version')
49
+ Interaction.fail('Could not determine the current chromedriver version')
51
50
  else
52
51
  chromedriver_version.to_i
53
52
  end
@@ -69,7 +68,7 @@ module Geordi
69
68
 
70
69
  file
71
70
  else
72
- fail("Could not download chromedriver version #{latest_version}")
71
+ Interaction.fail("Could not download chromedriver version #{latest_version}")
73
72
  end
74
73
  end
75
74
 
@@ -80,7 +79,7 @@ module Geordi
80
79
  if response.is_a?(Net::HTTPSuccess)
81
80
  response.body.to_s
82
81
  else
83
- fail("Could not find the latest version for Google Chrome version #{chrome_version}")
82
+ Interaction.fail("Could not find the latest version for Google Chrome version #{chrome_version}")
84
83
  end
85
84
  end
86
85
 
@@ -88,7 +87,7 @@ module Geordi
88
87
  _stdout_str, _error_str, status = Open3.capture3('unzip', '-d', output_dir, '-o', zip.path)
89
88
 
90
89
  unless status.success?
91
- fail("Could not unzip #{zip.path}")
90
+ Interaction.fail("Could not unzip #{zip.path}")
92
91
  end
93
92
  end
94
93
  end
@@ -6,18 +6,12 @@ require 'geordi/util'
6
6
  module Geordi
7
7
  class CLI < Thor
8
8
 
9
- if Geordi::Util.ruby_version <= Gem::Version.new('2.0.0')
10
- warn "Deprecation warning: Ruby 1.8.7 and 1.9.3 support will be dropped in Geordi 3.x."
11
- end
12
-
13
- include Geordi::Interaction
14
-
15
9
  def self.exit_on_failure?
16
10
  true
17
11
  end
18
12
 
19
13
  # load all tasks defined in lib/geordi/commands
20
- Dir[File.expand_path '../commands/*.rb', __FILE__].each do |file|
14
+ Dir[File.expand_path 'commands/*.rb', __dir__].each do |file|
21
15
  class_eval File.read(file), file
22
16
  end
23
17
 
@@ -1,34 +1,34 @@
1
- desc '-setup-vnc', 'Setup VNC for running Selenium tests there', :hide => true
1
+ desc '-setup-vnc', 'Setup VNC for running Selenium tests there', hide: true
2
2
  def _setup_vnc
3
3
  `clear`
4
4
 
5
- note 'This script will help you install a VNC server and a VNC viewer.'
5
+ Interaction.note 'This script will help you install a VNC server and a VNC viewer.'
6
6
  puts
7
- puts strip_heredoc <<-TEXT
7
+ puts Util.strip_heredoc <<-TEXT
8
8
  With those you will be able to use our cucumber script without being
9
9
  disturbed by focus-stealing Selenium windows. Instead, they will open
10
10
  inside a VNC session.
11
11
 
12
12
  You can still inspect everything with:
13
13
  TEXT
14
- note_cmd 'geordi vnc'
14
+ Interaction.note_cmd 'geordi vnc'
15
15
  puts
16
- note 'Please open a second shell to execute instructions.'
17
- prompt 'Continue ...'
16
+ Interaction.note 'Please open a second shell to execute instructions.'
17
+ Interaction.prompt 'Continue ...'
18
18
 
19
- announce 'Setup VNC server'
19
+ Interaction.announce 'Setup VNC server'
20
20
 
21
21
  vnc_server_installed = system('which vncserver > /dev/null 2>&1')
22
22
  if vnc_server_installed
23
- success 'It appears you already have a VNC server installed. Good job!'
23
+ Interaction.success 'It appears you already have a VNC server installed. Good job!'
24
24
  else
25
25
  puts 'Please run:'
26
- note_cmd 'sudo apt-get install vnc4server'
27
- prompt 'Continue ...'
26
+ Interaction.note_cmd 'sudo apt-get install vnc4server'
27
+ Interaction.prompt 'Continue ...'
28
28
 
29
29
  puts
30
- note 'We will now set a password for your VNC server.'
31
- puts strip_heredoc <<-TEXT
30
+ Interaction.note 'We will now set a password for your VNC server.'
31
+ puts Util.strip_heredoc <<-TEXT
32
32
  When running our cucumber script, you will not actually need this
33
33
  password, and there is no security risk. However, if you start a vncserver
34
34
  without our cucumber script, a user with your password can connect to
@@ -36,31 +36,31 @@ def _setup_vnc
36
36
 
37
37
  TEXT
38
38
  puts 'Please run:'
39
- note_cmd 'vncserver :20'
40
- warn 'Enter a secure password!'
41
- prompt 'Continue ...'
39
+ Interaction.note_cmd 'vncserver :20'
40
+ Interaction.warn 'Enter a secure password!'
41
+ Interaction.prompt 'Continue ...'
42
42
 
43
43
  puts 'Now stop the server again. Please run:'
44
- note_cmd 'vncserver -kill :20'
45
- prompt 'Continue ...'
44
+ Interaction.note_cmd 'vncserver -kill :20'
45
+ Interaction.prompt 'Continue ...'
46
46
  end
47
47
 
48
- announce 'Setup VNC viewer'
48
+ Interaction.announce 'Setup VNC viewer'
49
49
 
50
50
  vnc_viewer_installed = system('which vncviewer > /dev/null 2>&1')
51
51
  if vnc_viewer_installed
52
- success 'It appears you already have a VNC viewer installed. Good job!'
52
+ Interaction.success 'It appears you already have a VNC viewer installed. Good job!'
53
53
  else
54
54
  puts 'Please run:'
55
- note_cmd 'sudo apt-get install xtightvncviewer'
56
- prompt 'Continue ...'
55
+ Interaction.note_cmd 'sudo apt-get install xtightvncviewer'
56
+ Interaction.prompt 'Continue ...'
57
57
  end
58
58
 
59
59
  puts
60
- puts strip_heredoc <<-TEXT
60
+ puts Util.strip_heredoc <<-TEXT
61
61
  All done. Our cucumber script will now automatically run Selenium features
62
62
  in VNC.
63
63
  TEXT
64
64
 
65
- success 'Happy cuking!'
65
+ Interaction.success 'Happy cuking!'
66
66
  end
@@ -10,13 +10,13 @@ def apache_site(*args)
10
10
  puts 'Please call: apache-site my-site'
11
11
  puts
12
12
  puts 'Available sites:'
13
- Dir.new(".").each do |file|
13
+ Dir.new('.').each do |file|
14
14
  puts "- #{file}" if file != '.' && file != '..'
15
15
  end
16
16
  exit
17
17
  end
18
18
 
19
- has_default = File.exists?('default')
20
- exec "sudo a2dissite \*; sudo a2ensite #{"default " if has_default}#{site} && sudo apache2ctl restart"
19
+ has_default = File.exist?('default')
20
+ exec "sudo a2dissite \*; sudo a2ensite #{'default ' if has_default}#{site} && sudo apache2ctl restart"
21
21
  Dir.chdir old_cwd
22
22
  end
@@ -1,7 +1,7 @@
1
- desc 'bundle-install', 'Run bundle install if required', :hide => true
1
+ desc 'bundle-install', 'Run bundle install if required', hide: true
2
2
  def bundle_install
3
- if File.exists?('Gemfile') and !system('bundle check > /dev/null 2>&1')
4
- announce 'Bundling'
3
+ if File.exist?('Gemfile') && !system('bundle check > /dev/null 2>&1')
4
+ Interaction.announce 'Bundling'
5
5
  Util.system! 'bundle install'
6
6
  end
7
7
  end
@@ -6,18 +6,17 @@ LONGDESC
6
6
  def capistrano(*args)
7
7
  targets = Dir['config/deploy/*.rb'].map { |file| File.basename(file, '.rb') }.sort
8
8
 
9
- note 'Found the following deploy targets:'
9
+ Interaction.note 'Found the following deploy targets:'
10
10
  puts targets
11
- prompt('Continue?', 'n', /y|yes/) or fail 'Cancelled.'
11
+ Interaction.prompt('Continue?', 'n', /y|yes/) || Interaction.fail('Cancelled.')
12
12
 
13
13
  targets << nil if targets.empty? # default target
14
14
  targets.each do |stage|
15
- announce 'Target: ' + (stage || '(default)')
15
+ Interaction.announce 'Target: ' + (stage || '(default)')
16
16
 
17
17
  command = "bundle exec cap #{stage} " + args.join(' ')
18
- note_cmd command
18
+ Interaction.note_cmd command
19
19
 
20
- Util.system!(command, :fail_message => 'Capistrano failed. Have a look!')
20
+ Util.system!(command, fail_message: 'Capistrano failed. Have a look!')
21
21
  end
22
-
23
22
  end
@@ -9,14 +9,5 @@ LONGDESC
9
9
  def chromedriver_update
10
10
  require 'geordi/chromedriver_updater'
11
11
 
12
- # Ruby 1.9.3 introduces #capture3 in open3
13
- supported_ruby_version = '1.9.2'
14
-
15
- # We do not want to backport this command to Ruby 1.8.7, a user can just use a newer Ruby version to run it. For all
16
- # other commands it still is necessary to have a proper Ruby 1.8.7 support.
17
- if Gem::Version.new(RUBY_VERSION) < Gem::Version.new(supported_ruby_version)
18
- raise("Unsupported ruby version #{RUBY_VERSION}, please use at least #{supported_ruby_version} to run this command!")
19
- end
20
-
21
12
  ChromedriverUpdater.new.run
22
13
  end
@@ -1,16 +1,15 @@
1
1
  desc 'clean', 'Remove unneeded files from the current directory'
2
2
  def clean
3
3
 
4
- announce 'Removing tempfiles'
4
+ Interaction.announce 'Removing tempfiles'
5
5
  for pattern in %w[ webrat-* capybara-* tmp/webrat-* tmp/capybara-* tmp/rtex/* log/*.log ]
6
- note pattern
6
+ Interaction.note pattern
7
7
  puts `rm -vfR #{pattern}`
8
8
  end
9
9
 
10
- announce 'Finding recursively and removing backup files'
11
- for pattern in %w[ *~ ]
12
- note pattern
10
+ Interaction.announce 'Finding recursively and removing backup files'
11
+ %w[*~].each do |pattern|
12
+ Interaction.note pattern
13
13
  `find . -name #{pattern} -exec rm {} ';'`
14
14
  end
15
-
16
15
  end
@@ -21,4 +21,3 @@ Unsupported Ruby Version #{RUBY_VERSION}. `geordi commit` requires Ruby 2.1+.
21
21
 
22
22
  Gitpt.new.run(git_args)
23
23
  end
24
-
@@ -6,19 +6,19 @@ Open a Rails console on `staging`: `geordi console staging`
6
6
  LONGDESC
7
7
 
8
8
 
9
- option :select_server, :default => false, :type => :boolean, :aliases => '-s'
9
+ option :select_server, default: false, type: :boolean, aliases: '-s'
10
10
 
11
- def console(target = 'development', *args)
11
+ def console(target = 'development', *_args)
12
12
  require 'geordi/remote'
13
13
 
14
14
  if target == 'development'
15
15
  invoke_cmd 'yarn_install'
16
16
 
17
- announce 'Opening a local Rails console'
17
+ Interaction.announce 'Opening a local Rails console'
18
18
 
19
19
  Util.system! Util.console_command(target)
20
20
  else
21
- announce 'Opening a Rails console on ' + target
21
+ Interaction.announce 'Opening a Rails console on ' + target
22
22
 
23
23
  Geordi::Remote.new(target).console(options)
24
24
  end
@@ -1,10 +1,10 @@
1
- desc 'create-database-yml', '[sic]', :hide => true
1
+ desc 'create-database-yml', '[sic]', hide: true
2
2
  def create_database_yml
3
3
  real_yml = 'config/database.yml'
4
4
  sample_yml = 'config/database.sample.yml'
5
5
 
6
- if File.exists?(sample_yml) and not File.exists?(real_yml)
7
- announce 'Creating ' + real_yml
6
+ if File.exist?(sample_yml) && !File.exist?(real_yml)
7
+ Interaction.announce 'Creating ' + real_yml
8
8
 
9
9
  sample = File.read(sample_yml)
10
10
  adapter = sample.match(/adapter: (\w+)\n/).captures.first
@@ -15,6 +15,6 @@ def create_database_yml
15
15
  real = sample.gsub(/password:.*$/, "password: #{db_password}")
16
16
  File.open(real_yml, 'w') { |f| f.write(real) }
17
17
 
18
- note "Created #{real_yml}."
18
+ Interaction.note "Created #{real_yml}."
19
19
  end
20
20
  end
@@ -1,11 +1,11 @@
1
- desc 'create-databases', 'Create all databases', :hide => true
1
+ desc 'create-databases', 'Create all databases', hide: true
2
2
  def create_databases
3
3
  invoke_cmd 'create_database_yml'
4
4
  invoke_cmd 'bundle_install'
5
5
 
6
- announce 'Creating databases'
6
+ Interaction.announce 'Creating databases'
7
7
 
8
- if File.exists?('config/database.yml')
8
+ if File.exist?('config/database.yml')
9
9
  command = 'bundle exec rake db:create:all'
10
10
  command << ' parallel:create' if Util.file_containing?('Gemfile', /parallel_tests/)
11
11
 
@@ -17,30 +17,30 @@ or `-d`.
17
17
  e.g. `--format pretty`.
18
18
  LONGDESC
19
19
 
20
- option :modified, :aliases => '-m', :type => :boolean,
21
- :desc => 'Run all modified features'
22
- option :containing, :aliases => '-c', :banner => 'STRING',
23
- :desc => 'Run all features that contain STRING'
24
- option :verbose, :aliases => '-v', :type => :boolean,
25
- :desc => 'Print the testrun command'
26
- option :debug, :aliases => '-d', :type => :boolean,
27
- :desc => 'Run with `-f pretty -b` which helps hunting down bugs'
28
- option :rerun, :aliases => '-r', :type => :numeric, :default => 0,
29
- :desc => 'Rerun features up to N times while failing'
20
+ option :modified, aliases: '-m', type: :boolean,
21
+ desc: 'Run all modified features'
22
+ option :containing, aliases: '-c', banner: 'STRING',
23
+ desc: 'Run all features that contain STRING'
24
+ option :verbose, aliases: '-v', type: :boolean,
25
+ desc: 'Print the testrun command'
26
+ option :debug, aliases: '-d', type: :boolean,
27
+ desc: 'Run with `-f pretty -b` which helps hunting down bugs'
28
+ option :rerun, aliases: '-r', type: :numeric, default: 0,
29
+ desc: 'Rerun features up to N times while failing'
30
30
 
31
31
  def cucumber(*args)
32
32
  if args.empty?
33
33
  # This is not testable as there is no way to stub `git` :(
34
34
  if options.modified?
35
- modified_features = `git status --short`.split($/).map do |line|
35
+ modified_features = `git status --short`.split($INPUT_RECORD_SEPARATOR).map do |line|
36
36
  indicators = line.slice!(0..2) # Remove leading indicators
37
- line if line.include?('.feature') and not indicators.include?('D')
37
+ line if line.include?('.feature') && !indicators.include?('D')
38
38
  end.compact
39
39
  args = modified_features
40
40
  end
41
41
 
42
42
  if options.containing
43
- matching_features = `grep -lri '#{options.containing}' --include=*.feature features/`.split($/)
43
+ matching_features = `grep -lri '#{options.containing}' --include=*.feature features/`.split($INPUT_RECORD_SEPARATOR)
44
44
  args = matching_features.uniq
45
45
  end
46
46
  end
@@ -56,7 +56,7 @@ def cucumber(*args)
56
56
 
57
57
  # Serial run of @solo scenarios ############################################
58
58
  if files.any? { |f| f.include? ':' }
59
- note '@solo run skipped when called with line numbers' if options.verbose
59
+ Interaction.note '@solo run skipped when called with line numbers' if options.verbose
60
60
  else
61
61
  solo_files = if files.empty?
62
62
  'features' # Proper grepping
@@ -64,37 +64,37 @@ def cucumber(*args)
64
64
  files.join(' ')
65
65
  end
66
66
 
67
- solo_tag_usages = `grep -r '@solo' #{ solo_files }`.split("\n")
67
+ solo_tag_usages = `grep -r '@solo' #{solo_files}`.split("\n")
68
68
 
69
69
  if solo_tag_usages.any?
70
70
  solo_cmd_opts = cmd_opts.dup
71
71
  solo_cmd_opts << '--tags' << '@solo'
72
72
 
73
- announce 'Running @solo features'
74
- solo_success = Geordi::Cucumber.new.run files, solo_cmd_opts, :verbose => options.verbose, :parallel => false
75
- solo_success or fail 'Features failed.'
73
+ Interaction.announce 'Running @solo features'
74
+ solo_success = Geordi::Cucumber.new.run files, solo_cmd_opts, verbose: options.verbose, parallel: false
75
+ solo_success || Interaction.fail('Features failed.')
76
76
  end
77
77
  end
78
78
 
79
79
  # Parallel run of all given features + reruns ##############################
80
- announce 'Running features'
81
- normal_run_successful = Geordi::Cucumber.new.run(files, cmd_opts, :verbose => options.verbose)
80
+ Interaction.announce 'Running features'
81
+ normal_run_successful = Geordi::Cucumber.new.run(files, cmd_opts, verbose: options.verbose)
82
82
 
83
83
  unless normal_run_successful
84
84
  cmd_opts << '--profile' << 'rerun'
85
85
 
86
86
  # Reruns
87
87
  (options.rerun + 1).times do |i|
88
- fail 'Features failed.' if (i == options.rerun) # All reruns done?
88
+ Interaction.fail 'Features failed.' if i == options.rerun # All reruns done?
89
89
 
90
- announce "Rerun ##{ i + 1 } of #{ options.rerun }"
91
- break if Geordi::Cucumber.new.run([], cmd_opts, :verbose => options.verbose, :parallel => false)
90
+ Interaction.announce "Rerun ##{i + 1} of #{options.rerun}"
91
+ break if Geordi::Cucumber.new.run([], cmd_opts, verbose: options.verbose, parallel: false)
92
92
  end
93
93
  end
94
94
 
95
- success 'Features green.'
95
+ Interaction.success 'Features green.'
96
96
 
97
97
  else
98
- note 'Cucumber not employed.'
98
+ Interaction.note 'Cucumber not employed.'
99
99
  end
100
100
  end