aruba 1.0.0.pre.alpha.2 → 1.0.0.pre.alpha.3
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.
- checksums.yaml +5 -5
- data/.github/PULL_REQUEST_TEMPLATE.md +2 -1
- data/.rubocop.yml +6 -181
- data/.rubocop_todo.yml +364 -0
- data/.travis.yml +63 -34
- data/.yardopts +3 -0
- data/CHANGELOG.md +1121 -0
- data/CONTRIBUTING.md +179 -78
- data/Gemfile +29 -44
- data/README.md +41 -11
- data/Rakefile +35 -35
- data/appveyor.yml +6 -5
- data/aruba.gemspec +14 -16
- data/bin/console +2 -11
- data/cucumber.yml +0 -7
- data/fixtures/cli-app/README.md +1 -1
- data/fixtures/cli-app/Rakefile +1 -1
- data/fixtures/cli-app/cli-app.gemspec +1 -0
- data/fixtures/cli-app/lib/cli/app/suppress_simple_cov_output.rb +3 -3
- data/fixtures/cli-app/lib/cli/app/version.rb +1 -1
- data/fixtures/empty-app/Rakefile +1 -1
- data/fixtures/empty-app/cli-app.gemspec +1 -0
- data/fixtures/empty-app/lib/cli/app/version.rb +1 -1
- data/fixtures/getting-started-app/Gemfile +1 -1
- data/lib/aruba/api.rb +3 -10
- data/lib/aruba/api/bundler.rb +16 -0
- data/lib/aruba/api/commands.rb +249 -0
- data/lib/aruba/api/core.rb +24 -10
- data/lib/aruba/api/environment.rb +12 -7
- data/lib/aruba/api/filesystem.rb +22 -20
- data/lib/aruba/api/text.rb +3 -9
- data/lib/aruba/aruba_path.rb +3 -18
- data/lib/aruba/basic_configuration.rb +3 -19
- data/lib/aruba/cli.rb +1 -1
- data/lib/aruba/colorizer.rb +33 -33
- data/lib/aruba/command.rb +4 -0
- data/lib/aruba/config_wrapper.rb +1 -1
- data/lib/aruba/configuration.rb +78 -0
- data/lib/aruba/console.rb +5 -5
- data/lib/aruba/console/help.rb +1 -1
- data/lib/aruba/cucumber.rb +0 -1
- data/lib/aruba/cucumber/command.rb +55 -115
- data/lib/aruba/cucumber/environment.rb +1 -1
- data/lib/aruba/cucumber/file.rb +9 -21
- data/lib/aruba/cucumber/hooks.rb +6 -62
- data/lib/aruba/event_bus/name_resolver.rb +1 -2
- data/lib/aruba/hooks.rb +1 -1
- data/lib/aruba/initializer.rb +3 -3
- data/lib/aruba/matchers/base/base_matcher.rb +2 -2
- data/lib/aruba/matchers/base/message_indenter.rb +19 -0
- data/lib/aruba/matchers/base/object_formatter.rb +2 -2
- data/lib/aruba/matchers/collection/include_an_object.rb +7 -9
- data/lib/aruba/matchers/command/be_successfully_executed.rb +2 -4
- data/lib/aruba/matchers/command/have_exit_status.rb +1 -1
- data/lib/aruba/matchers/command/have_finished_in_time.rb +2 -4
- data/lib/aruba/matchers/command/have_output.rb +9 -4
- data/lib/aruba/matchers/command/have_output_on_stderr.rb +1 -1
- data/lib/aruba/matchers/command/have_output_on_stdout.rb +1 -1
- data/lib/aruba/matchers/command/have_output_size.rb +1 -1
- data/lib/aruba/matchers/directory/be_an_existing_directory.rb +4 -6
- data/lib/aruba/matchers/directory/have_sub_directory.rb +4 -6
- data/lib/aruba/matchers/file/be_a_command_found_in_path.rb +2 -4
- data/lib/aruba/matchers/file/be_an_existing_executable.rb +4 -6
- data/lib/aruba/matchers/file/be_an_existing_file.rb +4 -6
- data/lib/aruba/matchers/file/have_file_content.rb +4 -4
- data/lib/aruba/matchers/file/have_file_size.rb +6 -8
- data/lib/aruba/matchers/file/have_same_file_content.rb +9 -12
- data/lib/aruba/matchers/path/a_path_matching_pattern.rb +2 -4
- data/lib/aruba/matchers/path/be_an_absolute_path.rb +3 -5
- data/lib/aruba/matchers/path/be_an_existing_path.rb +4 -6
- data/lib/aruba/matchers/path/have_permissions.rb +6 -8
- data/lib/aruba/matchers/string/include_output_string.rb +8 -10
- data/lib/aruba/matchers/string/match_output_string.rb +9 -11
- data/lib/aruba/matchers/string/output_string_eq.rb +7 -9
- data/lib/aruba/platform.rb +0 -1
- data/lib/aruba/platforms/announcer.rb +26 -70
- data/lib/aruba/platforms/aruba_file_creator.rb +1 -1
- data/lib/aruba/platforms/aruba_fixed_size_file_creator.rb +2 -2
- data/lib/aruba/platforms/aruba_logger.rb +22 -2
- data/lib/aruba/platforms/command_monitor.rb +2 -125
- data/lib/aruba/platforms/filesystem_status.rb +9 -9
- data/lib/aruba/platforms/local_environment.rb +2 -2
- data/lib/aruba/platforms/simple_table.rb +3 -3
- data/lib/aruba/platforms/unix_command_string.rb +7 -4
- data/lib/aruba/platforms/unix_environment_variables.rb +9 -13
- data/lib/aruba/platforms/unix_platform.rb +2 -27
- data/lib/aruba/platforms/unix_which.rb +2 -1
- data/lib/aruba/platforms/windows_command_string.rb +20 -7
- data/lib/aruba/platforms/windows_environment_variables.rb +35 -30
- data/lib/aruba/platforms/windows_which.rb +4 -3
- data/lib/aruba/processes/basic_process.rb +11 -15
- data/lib/aruba/processes/debug_process.rb +5 -0
- data/lib/aruba/processes/in_process.rb +17 -8
- data/lib/aruba/processes/spawn_process.rb +35 -23
- data/lib/aruba/rspec.rb +9 -22
- data/lib/aruba/runtime.rb +7 -5
- data/lib/aruba/setup.rb +6 -4
- data/lib/aruba/tasks/docker_helpers.rb +1 -1
- data/lib/aruba/version.rb +1 -1
- metadata +37 -57
- data/History.md +0 -612
- data/bin/bootstrap +0 -34
- data/fixtures/spawn_process/stderr.sh +0 -3
- data/lib/aruba/api/command.rb +0 -309
- data/lib/aruba/api/deprecated.rb +0 -895
- data/lib/aruba/api/rvm.rb +0 -44
- data/lib/aruba/config.rb +0 -101
- data/lib/aruba/cucumber/rvm.rb +0 -3
- data/lib/aruba/in_process.rb +0 -14
- data/lib/aruba/jruby.rb +0 -4
- data/lib/aruba/matchers/path/match_path_pattern.rb +0 -41
- data/lib/aruba/matchers/rspec_matcher_include_regexp.rb +0 -25
- data/lib/aruba/spawn_process.rb +0 -11
data/lib/aruba/api/core.rb
CHANGED
@@ -25,8 +25,8 @@ module Aruba
|
|
25
25
|
# This will only clean up aruba's working directory to remove all
|
26
26
|
# artifacts of your tests. This does NOT clean up the current working
|
27
27
|
# directory.
|
28
|
-
def setup_aruba
|
29
|
-
Aruba::Setup.new(aruba).call
|
28
|
+
def setup_aruba(clobber = true)
|
29
|
+
Aruba::Setup.new(aruba).call(clobber)
|
30
30
|
|
31
31
|
self
|
32
32
|
end
|
@@ -55,7 +55,7 @@ module Aruba
|
|
55
55
|
aruba.current_directory << dir
|
56
56
|
new_directory = expand_path('.')
|
57
57
|
|
58
|
-
aruba.event_bus.notify Events::ChangedWorkingDirectory.new(:
|
58
|
+
aruba.event_bus.notify Events::ChangedWorkingDirectory.new(old: old_directory, new: new_directory)
|
59
59
|
|
60
60
|
old_dir = Aruba.platform.getwd
|
61
61
|
|
@@ -80,7 +80,7 @@ module Aruba
|
|
80
80
|
aruba.current_directory << dir
|
81
81
|
new_directory = expand_path('.')
|
82
82
|
|
83
|
-
aruba.event_bus.notify Events::ChangedWorkingDirectory.new(:
|
83
|
+
aruba.event_bus.notify Events::ChangedWorkingDirectory.new(old: old_directory, new: new_directory)
|
84
84
|
|
85
85
|
self
|
86
86
|
end
|
@@ -117,11 +117,15 @@ module Aruba
|
|
117
117
|
# # => <path>/test/fixtures/file
|
118
118
|
# expand_path('%/file')
|
119
119
|
#
|
120
|
+
# @example Absolute directory
|
121
|
+
#
|
122
|
+
# # => /foo/bar
|
123
|
+
# expand_path('/foo/bar')
|
124
|
+
#
|
120
125
|
# rubocop:disable Metrics/MethodLength
|
121
126
|
# rubocop:disable Metrics/CyclomaticComplexity
|
127
|
+
# rubocop:disable Metrics/PerceivedComplexity
|
122
128
|
def expand_path(file_name, dir_string = nil)
|
123
|
-
check_for_deprecated_variables if Aruba::VERSION < '1'
|
124
|
-
|
125
129
|
# rubocop:disable Metrics/LineLength
|
126
130
|
message = %(Filename "#{file_name}" needs to be a string. It cannot be nil or empty either. Please use `expand_path('.')` if you want the current directory to be expanded.)
|
127
131
|
# rubocop:enable Metrics/LineLength
|
@@ -129,7 +133,8 @@ module Aruba
|
|
129
133
|
fail ArgumentError, message unless file_name.is_a?(String) && !file_name.empty?
|
130
134
|
|
131
135
|
# rubocop:disable Metrics/LineLength
|
132
|
-
|
136
|
+
fail %(Aruba's working directory does not exist. Maybe you forgot to run `setup_aruba` before using its API.) unless Aruba.platform.directory? File.join(aruba.config.root_directory, aruba.config.working_directory)
|
137
|
+
|
133
138
|
# rubocop:enable Metrics/LineLength
|
134
139
|
|
135
140
|
prefix = file_name[0]
|
@@ -140,10 +145,11 @@ module Aruba
|
|
140
145
|
|
141
146
|
# rubocop:disable Metrics/LineLength
|
142
147
|
fail ArgumentError, %(Fixture "#{rest}" does not exist in fixtures directory "#{aruba.fixtures_directory}". This was the one we found first on your system from all possible candidates: #{aruba.config.fixtures_directories.map { |p| format('"%s"', p) }.join(', ')}.) unless Aruba.platform.exist? path
|
148
|
+
|
143
149
|
# rubocop:enable Metrics/LineLength
|
144
150
|
|
145
151
|
path
|
146
|
-
elsif '~'
|
152
|
+
elsif prefix == '~'
|
147
153
|
path = with_environment do
|
148
154
|
ArubaPath.new(File.expand_path(file_name))
|
149
155
|
end
|
@@ -152,13 +158,21 @@ module Aruba
|
|
152
158
|
fail ArgumentError, %(Expanding "~/" to a relative path "#{path}" is not allowed) unless path.absolute?
|
153
159
|
|
154
160
|
path.to_s
|
161
|
+
elsif absolute? file_name
|
162
|
+
unless aruba.config.allow_absolute_paths
|
163
|
+
aruba.logger.warn 'Using absolute paths in Aruba is not recommended.' \
|
164
|
+
' Set config.allow_absolute_paths = true to silence this warning'
|
165
|
+
end
|
166
|
+
file_name
|
155
167
|
else
|
156
168
|
directory = File.join(aruba.root_directory, aruba.current_directory)
|
157
|
-
|
169
|
+
directory = File.expand_path(dir_string, directory) if dir_string
|
170
|
+
File.expand_path(file_name, directory)
|
158
171
|
end
|
159
172
|
end
|
160
173
|
# rubocop:enable Metrics/MethodLength
|
161
|
-
# rubocop:enable
|
174
|
+
# rubocop:enable Metrics/CyclomaticComplexity
|
175
|
+
# rubocop:enable Metrics/PerceivedComplexity
|
162
176
|
|
163
177
|
# Run block with environment
|
164
178
|
#
|
@@ -13,6 +13,8 @@ module Aruba
|
|
13
13
|
#
|
14
14
|
# @param [String] value
|
15
15
|
# The value of the environment variable. Needs to be a string.
|
16
|
+
#
|
17
|
+
# @return [self]
|
16
18
|
def set_environment_variable(name, value)
|
17
19
|
name = name.to_s
|
18
20
|
value = value.to_s
|
@@ -21,7 +23,7 @@ module Aruba
|
|
21
23
|
aruba.environment[name] = value
|
22
24
|
new_environment = aruba.environment.to_h
|
23
25
|
|
24
|
-
aruba.event_bus.notify Events::AddedEnvironmentVariable.new(:
|
26
|
+
aruba.event_bus.notify Events::AddedEnvironmentVariable.new(old: old_environment, new: new_environment, changed: { name: name, value: value })
|
25
27
|
|
26
28
|
self
|
27
29
|
end
|
@@ -33,6 +35,8 @@ module Aruba
|
|
33
35
|
#
|
34
36
|
# @param [String] value
|
35
37
|
# The value of the environment variable. Needs to be a string.
|
38
|
+
#
|
39
|
+
# @return [self]
|
36
40
|
def append_environment_variable(name, value)
|
37
41
|
name = name.to_s
|
38
42
|
value = value.to_s
|
@@ -41,7 +45,7 @@ module Aruba
|
|
41
45
|
aruba.environment.append name, value
|
42
46
|
new_environment = aruba.environment.to_h
|
43
47
|
|
44
|
-
aruba.event_bus.notify Events::ChangedEnvironmentVariable.new(:
|
48
|
+
aruba.event_bus.notify Events::ChangedEnvironmentVariable.new(old: old_environment, new: new_environment, changed: { name: name, value: value })
|
45
49
|
|
46
50
|
self
|
47
51
|
end
|
@@ -53,6 +57,8 @@ module Aruba
|
|
53
57
|
#
|
54
58
|
# @param [String] value
|
55
59
|
# The value of the environment variable. Needs to be a string.
|
60
|
+
#
|
61
|
+
# @return [self]
|
56
62
|
def prepend_environment_variable(name, value)
|
57
63
|
name = name.to_s
|
58
64
|
value = value.to_s
|
@@ -61,18 +67,17 @@ module Aruba
|
|
61
67
|
aruba.environment.prepend name, value
|
62
68
|
new_environment = aruba.environment.to_h
|
63
69
|
|
64
|
-
aruba.event_bus.notify Events::ChangedEnvironmentVariable.new(:
|
70
|
+
aruba.event_bus.notify Events::ChangedEnvironmentVariable.new(old: old_environment, new: new_environment, changed: { name: name, value: value })
|
65
71
|
|
66
72
|
self
|
67
73
|
end
|
68
74
|
|
69
75
|
# Remove existing environment variable
|
70
76
|
#
|
71
|
-
# @param [String]
|
77
|
+
# @param [String] name
|
72
78
|
# The name of the environment variable as string, e.g. 'HOME'
|
73
79
|
#
|
74
|
-
# @
|
75
|
-
# The value of the environment variable. Needs to be a string.
|
80
|
+
# @return [self]
|
76
81
|
def delete_environment_variable(name)
|
77
82
|
name = name.to_s
|
78
83
|
|
@@ -80,7 +85,7 @@ module Aruba
|
|
80
85
|
aruba.environment.delete name
|
81
86
|
new_environment = aruba.environment.to_h
|
82
87
|
|
83
|
-
aruba.event_bus.notify Events::DeletedEnvironmentVariable.new(:
|
88
|
+
aruba.event_bus.notify Events::DeletedEnvironmentVariable.new(old: old_environment, new: new_environment, changed: { name: name, value: '' })
|
84
89
|
|
85
90
|
self
|
86
91
|
end
|
data/lib/aruba/api/filesystem.rb
CHANGED
@@ -40,8 +40,10 @@ module Aruba
|
|
40
40
|
|
41
41
|
# Check if file exist and is executable
|
42
42
|
#
|
43
|
-
# @param [String]
|
44
|
-
# The
|
43
|
+
# @param [String] path
|
44
|
+
# The path which should exist and be executable
|
45
|
+
#
|
46
|
+
# @return [Boolean]
|
45
47
|
def executable?(path)
|
46
48
|
path = expand_path(path)
|
47
49
|
|
@@ -50,16 +52,14 @@ module Aruba
|
|
50
52
|
|
51
53
|
# Check if path is absolute
|
52
54
|
#
|
53
|
-
# @return [
|
54
|
-
# Result of check
|
55
|
+
# @return [Boolean]
|
55
56
|
def absolute?(path)
|
56
57
|
ArubaPath.new(path).absolute?
|
57
58
|
end
|
58
59
|
|
59
60
|
# Check if path is relative
|
60
61
|
#
|
61
|
-
# @return [
|
62
|
-
# Result of check
|
62
|
+
# @return [Boolean]
|
63
63
|
def relative?(path)
|
64
64
|
ArubaPath.new(path).relative?
|
65
65
|
end
|
@@ -69,7 +69,7 @@ module Aruba
|
|
69
69
|
# @return [Array]
|
70
70
|
# List of files and directories
|
71
71
|
def all_paths
|
72
|
-
list('.').map { |
|
72
|
+
list('.').map { |path| expand_path(path) }
|
73
73
|
end
|
74
74
|
|
75
75
|
# Return all existing files in current directory
|
@@ -128,10 +128,10 @@ module Aruba
|
|
128
128
|
# The method does not check if file already exists. If the file name is a
|
129
129
|
# path the method will create all neccessary directories.
|
130
130
|
#
|
131
|
-
# @param [String]
|
131
|
+
# @param [String] name
|
132
132
|
# The name of the file
|
133
133
|
#
|
134
|
-
# @param [String]
|
134
|
+
# @param [String] content
|
135
135
|
# The content which should be written to the file
|
136
136
|
def write_file(name, content)
|
137
137
|
Aruba.platform.create_file(expand_path(name), content, false)
|
@@ -182,7 +182,7 @@ module Aruba
|
|
182
182
|
end
|
183
183
|
|
184
184
|
raise ArgumentError, "Using a fixture as destination (#{destination}) is not supported" if destination.start_with? aruba.config.fixtures_path_prefix
|
185
|
-
raise ArgumentError,
|
185
|
+
raise ArgumentError, 'Multiples sources can only be copied to a directory' if source.count > 1 && exist?(destination) && !directory?(destination)
|
186
186
|
|
187
187
|
source_paths = source.map { |f| expand_path(f) }
|
188
188
|
destination_path = expand_path(destination)
|
@@ -228,7 +228,7 @@ module Aruba
|
|
228
228
|
raise ArgumentError, %(The following source "#{s}" does not exist.) unless exist? s
|
229
229
|
end
|
230
230
|
|
231
|
-
raise ArgumentError,
|
231
|
+
raise ArgumentError, 'Multiple sources can only be copied to a directory' if source.count > 1 && exist?(destination) && !directory?(destination)
|
232
232
|
|
233
233
|
source_paths = source.map { |f| expand_path(f) }
|
234
234
|
destination_path = expand_path(destination)
|
@@ -252,10 +252,10 @@ module Aruba
|
|
252
252
|
# The method does not check if file already exists. If the file name is a
|
253
253
|
# path the method will create all neccessary directories.
|
254
254
|
#
|
255
|
-
# @param [String]
|
255
|
+
# @param [String] name
|
256
256
|
# The name of the file
|
257
257
|
#
|
258
|
-
# @param [Integer]
|
258
|
+
# @param [Integer] size
|
259
259
|
# The size of the file
|
260
260
|
def write_fixed_size_file(name, size)
|
261
261
|
Aruba.platform.create_fixed_size_file(expand_path(name), size, false)
|
@@ -297,8 +297,8 @@ module Aruba
|
|
297
297
|
mode
|
298
298
|
end
|
299
299
|
|
300
|
-
args.each { |
|
301
|
-
paths = args.map { |
|
300
|
+
args.each { |path| raise "Expected #{path} to be present" unless exist?(path) }
|
301
|
+
paths = args.map { |path| expand_path(path) }
|
302
302
|
|
303
303
|
Aruba.platform.chmod(mode, paths, options)
|
304
304
|
|
@@ -342,7 +342,7 @@ module Aruba
|
|
342
342
|
{}
|
343
343
|
end
|
344
344
|
|
345
|
-
args = args.map { |
|
345
|
+
args = args.map { |path| expand_path(path) }
|
346
346
|
|
347
347
|
Aruba.platform.rm(args, options)
|
348
348
|
end
|
@@ -354,7 +354,7 @@ module Aruba
|
|
354
354
|
#
|
355
355
|
# @yield
|
356
356
|
# Pass the content of the given file to this block
|
357
|
-
def with_file_content(file
|
357
|
+
def with_file_content(file)
|
358
358
|
expect(file).to be_an_existing_path
|
359
359
|
|
360
360
|
content = read(file).join("\n")
|
@@ -370,12 +370,11 @@ module Aruba
|
|
370
370
|
# @param [Array, Path] paths
|
371
371
|
# The paths
|
372
372
|
#
|
373
|
-
# @
|
373
|
+
# @return [FileSize]
|
374
374
|
# Bytes on disk
|
375
|
-
|
376
375
|
def disk_usage(*paths)
|
377
376
|
expect(paths.flatten).to Aruba::Matchers.all be_an_existing_path
|
378
|
-
expanded = paths.flatten.map { |
|
377
|
+
expanded = paths.flatten.map { |path| ArubaPath.new(expand_path(path)) }
|
379
378
|
|
380
379
|
# TODO: change the API so that you could set something like
|
381
380
|
# aruba.config.fs_allocation_unit_size directly
|
@@ -395,6 +394,9 @@ module Aruba
|
|
395
394
|
|
396
395
|
# Get size of file
|
397
396
|
#
|
397
|
+
# @param [String] name
|
398
|
+
# File name
|
399
|
+
#
|
398
400
|
# @return [Numeric]
|
399
401
|
# The size of the file
|
400
402
|
def file_size(name)
|
data/lib/aruba/api/text.rb
CHANGED
@@ -22,11 +22,7 @@ module Aruba
|
|
22
22
|
# @param [#to_s] text
|
23
23
|
# Input
|
24
24
|
def extract_text(text)
|
25
|
-
|
26
|
-
text.gsub(/(?:\e|\033)\[\d+(?>(;\d+)*)m/, '')
|
27
|
-
else
|
28
|
-
text.gsub(/(?:\e|\033)\[\d+(?>(;\d+)*)m/, '').gsub(/\\\[|\\\]/, '').gsub(/\007|\016|\017/, '')
|
29
|
-
end
|
25
|
+
text.gsub(/(?:\e|\033)\[\d+(?>(;\d+)*)m/, '').gsub(/\\\[|\\\]/, '').gsub(/\007|\016|\017/, '')
|
30
26
|
end
|
31
27
|
|
32
28
|
# Unescape special characters and remove ANSI characters
|
@@ -35,14 +31,12 @@ module Aruba
|
|
35
31
|
# The text to sanitize
|
36
32
|
def sanitize_text(text)
|
37
33
|
text = unescape_text(text)
|
38
|
-
text = extract_text(text) if
|
34
|
+
text = extract_text(text) if aruba.config.remove_ansi_escape_sequences
|
39
35
|
|
40
36
|
text.chomp
|
41
37
|
end
|
42
38
|
|
43
|
-
#
|
44
|
-
#
|
45
|
-
# Replace variables in command string
|
39
|
+
# Replace variables in command string (experimental)
|
46
40
|
#
|
47
41
|
# @param [#to_s] text
|
48
42
|
# The text to parse
|
data/lib/aruba/aruba_path.rb
CHANGED
@@ -48,8 +48,7 @@ module Aruba
|
|
48
48
|
# @example
|
49
49
|
# path = ArubaPath.new 'path/to/dir.d'
|
50
50
|
# path.pop
|
51
|
-
# puts path
|
52
|
-
# # => path/to
|
51
|
+
# puts path # => path/to
|
53
52
|
def pop
|
54
53
|
@delegate_sd_obj.pop
|
55
54
|
end
|
@@ -60,9 +59,8 @@ module Aruba
|
|
60
59
|
# The count of file name parts
|
61
60
|
#
|
62
61
|
# @example
|
63
|
-
#
|
64
|
-
#
|
65
|
-
# path.depth # => 3
|
62
|
+
# path = ArubaPath.new('path/to/file.txt')
|
63
|
+
# path.depth # => 3
|
66
64
|
#
|
67
65
|
def depth
|
68
66
|
__getobj__.each_filename.to_a.size
|
@@ -91,19 +89,6 @@ module Aruba
|
|
91
89
|
to_s[index]
|
92
90
|
end
|
93
91
|
|
94
|
-
# Report count of blocks allocated on disk
|
95
|
-
#
|
96
|
-
# This reports the amount of blocks which are allocated by the path.
|
97
|
-
#
|
98
|
-
# @return [Integer]
|
99
|
-
# The count of blocks on disk
|
100
|
-
#
|
101
|
-
# @deprecated
|
102
|
-
def blocks
|
103
|
-
min_bytes_used = minimum_disk_space_used
|
104
|
-
min_bytes_used / Aruba.config.physical_block_size
|
105
|
-
end
|
106
|
-
|
107
92
|
# TODO: Aruba.config.physical_block_size could be allowed to be nil
|
108
93
|
# (So the unit size can be autodetected)
|
109
94
|
|
@@ -72,7 +72,7 @@ module Aruba
|
|
72
72
|
define_method("#{name}=") { |v| find_option(name).value = v }
|
73
73
|
|
74
74
|
# Add reader
|
75
|
-
option_reader name, :
|
75
|
+
option_reader name, contract: { None => contract.values.first }
|
76
76
|
end
|
77
77
|
|
78
78
|
private
|
@@ -80,7 +80,7 @@ module Aruba
|
|
80
80
|
def add_option(name, value = nil)
|
81
81
|
return if known_options.key?(name)
|
82
82
|
|
83
|
-
known_options[name] = Option.new(:
|
83
|
+
known_options[name] = Option.new(name: name, value: value)
|
84
84
|
|
85
85
|
self
|
86
86
|
end
|
@@ -114,29 +114,13 @@ module Aruba
|
|
114
114
|
|
115
115
|
# Make deep dup copy of configuration
|
116
116
|
def make_copy
|
117
|
-
obj =
|
117
|
+
obj = dup
|
118
118
|
obj.local_options = Marshal.load(Marshal.dump(local_options))
|
119
119
|
obj.hooks = @hooks
|
120
120
|
|
121
121
|
obj
|
122
122
|
end
|
123
123
|
|
124
|
-
# Get access to hooks
|
125
|
-
def hooks
|
126
|
-
# rubocop:disable Metrics/LineLength
|
127
|
-
Aruba.platform.deprecated 'The use of the "#aruba.config.hooks" is deprecated. Please use "#aruba.config.before(:name) {}" to define and "#aruba.config.before(:name, *args)" to run a hook. This method will become private in the next major version.'
|
128
|
-
# rubocop:enable Metrics/LineLength
|
129
|
-
|
130
|
-
@hooks
|
131
|
-
end
|
132
|
-
|
133
|
-
# @deprecated
|
134
|
-
def before_cmd(&block)
|
135
|
-
Aruba.platform.deprecated 'The use of the "#before_cmd"-hook is deprecated. Please define with "#before(:command) {}" instead'
|
136
|
-
|
137
|
-
before(:command, &block)
|
138
|
-
end
|
139
|
-
|
140
124
|
# Define or run before-hook
|
141
125
|
#
|
142
126
|
# @param [Symbol, String] name
|
data/lib/aruba/cli.rb
CHANGED
@@ -18,7 +18,7 @@ module Aruba
|
|
18
18
|
end
|
19
19
|
|
20
20
|
desc 'init', 'Initialize aruba'
|
21
|
-
option :test_framework, :
|
21
|
+
option :test_framework, default: 'cucumber', enum: %w(cucumber rspec minitest), desc: 'Choose which test framework to use'
|
22
22
|
def init
|
23
23
|
Aruba::Initializer.new.call(options[:test_framework])
|
24
24
|
end
|
data/lib/aruba/colorizer.rb
CHANGED
@@ -4,34 +4,34 @@ module Aruba
|
|
4
4
|
module AnsiColor
|
5
5
|
# :stopdoc:
|
6
6
|
ATTRIBUTES = [
|
7
|
-
[
|
8
|
-
[
|
9
|
-
[
|
10
|
-
[
|
11
|
-
[
|
12
|
-
[
|
13
|
-
[
|
14
|
-
[
|
15
|
-
[
|
16
|
-
[
|
17
|
-
[
|
18
|
-
[
|
19
|
-
[
|
20
|
-
[
|
21
|
-
[
|
22
|
-
[
|
23
|
-
[
|
24
|
-
[
|
25
|
-
[
|
26
|
-
[
|
27
|
-
[
|
28
|
-
[
|
29
|
-
[
|
30
|
-
[
|
31
|
-
[
|
32
|
-
[
|
33
|
-
[
|
34
|
-
[
|
7
|
+
[:clear, 0],
|
8
|
+
[:reset, 0], # synonym for :clear
|
9
|
+
[:bold, 1],
|
10
|
+
[:dark, 2],
|
11
|
+
[:italic, 3], # not widely implemented
|
12
|
+
[:underline, 4],
|
13
|
+
[:underscore, 4], # synonym for :underline
|
14
|
+
[:blink, 5],
|
15
|
+
[:rapid_blink, 6], # not widely implemented
|
16
|
+
[:negative, 7], # no reverse because of String#reverse
|
17
|
+
[:concealed, 8],
|
18
|
+
[:strikethrough, 9], # not widely implemented
|
19
|
+
[:black, 30],
|
20
|
+
[:red, 31],
|
21
|
+
[:green, 32],
|
22
|
+
[:yellow, 33],
|
23
|
+
[:blue, 34],
|
24
|
+
[:magenta, 35],
|
25
|
+
[:cyan, 36],
|
26
|
+
[:white, 37],
|
27
|
+
[:on_black, 40],
|
28
|
+
[:on_red, 41],
|
29
|
+
[:on_green, 42],
|
30
|
+
[:on_yellow, 43],
|
31
|
+
[:on_blue, 44],
|
32
|
+
[:on_magenta, 45],
|
33
|
+
[:on_cyan, 46],
|
34
|
+
[:on_white, 47]
|
35
35
|
].freeze
|
36
36
|
|
37
37
|
ATTRIBUTE_NAMES = ATTRIBUTES.transpose.first
|
@@ -62,7 +62,7 @@ module Aruba
|
|
62
62
|
elsif respond_to?(:to_str)
|
63
63
|
result << to_str
|
64
64
|
else
|
65
|
-
return result #only switch on
|
65
|
+
return result # only switch on
|
66
66
|
end
|
67
67
|
result << "\e[0m" if Aruba::AnsiColor.coloring?
|
68
68
|
result
|
@@ -74,10 +74,10 @@ module Aruba
|
|
74
74
|
COLORED_REGEXP = /\e\[(?:[34][0-7]|[0-9])?m/
|
75
75
|
|
76
76
|
def self.included(klass)
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
77
|
+
return unless klass == String
|
78
|
+
|
79
|
+
ATTRIBUTES.delete(:clear)
|
80
|
+
ATTRIBUTE_NAMES.delete(:clear)
|
81
81
|
end
|
82
82
|
|
83
83
|
# Returns an uncolored version of the string, that is all
|