aruba 2.1.0 → 2.3.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 (102) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +90 -39
  3. data/CONTRIBUTING.md +0 -1
  4. data/LICENSE +19 -17
  5. data/README.md +5 -6
  6. data/exe/aruba +3 -2
  7. data/lib/aruba/api/bundler.rb +4 -2
  8. data/lib/aruba/api/commands.rb +10 -8
  9. data/lib/aruba/api/core.rb +34 -32
  10. data/lib/aruba/api/environment.rb +4 -2
  11. data/lib/aruba/api/filesystem.rb +17 -19
  12. data/lib/aruba/api/text.rb +5 -3
  13. data/lib/aruba/api.rb +13 -11
  14. data/lib/aruba/{platforms/aruba_logger.rb → aruba_logger.rb} +4 -2
  15. data/lib/aruba/aruba_path.rb +4 -2
  16. data/lib/aruba/basic_configuration/option.rb +2 -0
  17. data/lib/aruba/basic_configuration.rb +15 -13
  18. data/lib/aruba/cli.rb +10 -8
  19. data/lib/aruba/colorizer.rb +2 -0
  20. data/lib/aruba/command.rb +10 -6
  21. data/lib/aruba/{platforms/command_monitor.rb → command_monitor.rb} +7 -5
  22. data/lib/aruba/config/jruby.rb +11 -9
  23. data/lib/aruba/config_wrapper.rb +4 -2
  24. data/lib/aruba/configuration.rb +17 -15
  25. data/lib/aruba/console/help.rb +7 -5
  26. data/lib/aruba/console.rb +12 -11
  27. data/lib/aruba/contracts/absolute_path.rb +3 -1
  28. data/lib/aruba/contracts/enum.rb +3 -1
  29. data/lib/aruba/contracts/is_power_of_two.rb +4 -2
  30. data/lib/aruba/contracts/relative_path.rb +3 -1
  31. data/lib/aruba/cucumber/command.rb +108 -99
  32. data/lib/aruba/cucumber/environment.rb +9 -7
  33. data/lib/aruba/cucumber/file.rb +4 -2
  34. data/lib/aruba/cucumber/hooks.rb +31 -29
  35. data/lib/aruba/cucumber/parameter_types.rb +4 -1
  36. data/lib/aruba/cucumber/testing_frameworks.rb +20 -18
  37. data/lib/aruba/cucumber.rb +10 -8
  38. data/lib/aruba/errors.rb +2 -6
  39. data/lib/aruba/event_bus.rb +8 -47
  40. data/lib/aruba/events.rb +15 -7
  41. data/lib/aruba/file_size.rb +3 -1
  42. data/lib/aruba/generators/script_file.rb +4 -2
  43. data/lib/aruba/hooks.rb +2 -0
  44. data/lib/aruba/in_config_wrapper.rb +3 -1
  45. data/lib/aruba/initializer.rb +25 -42
  46. data/lib/aruba/matchers/base/message_indenter.rb +3 -1
  47. data/lib/aruba/matchers/command/be_successfully_executed.rb +6 -4
  48. data/lib/aruba/matchers/command/have_exit_status.rb +2 -0
  49. data/lib/aruba/matchers/command/have_finished_in_time.rb +2 -0
  50. data/lib/aruba/matchers/command/have_output.rb +3 -1
  51. data/lib/aruba/matchers/command/have_output_on_stderr.rb +2 -0
  52. data/lib/aruba/matchers/command/have_output_on_stdout.rb +2 -0
  53. data/lib/aruba/matchers/command/have_output_size.rb +21 -5
  54. data/lib/aruba/matchers/command.rb +3 -1
  55. data/lib/aruba/matchers/directory/be_an_existing_directory.rb +3 -1
  56. data/lib/aruba/matchers/directory/have_sub_directory.rb +4 -2
  57. data/lib/aruba/matchers/directory.rb +3 -1
  58. data/lib/aruba/matchers/environment.rb +3 -1
  59. data/lib/aruba/matchers/file/be_a_command_found_in_path.rb +7 -5
  60. data/lib/aruba/matchers/file/be_an_existing_executable.rb +3 -1
  61. data/lib/aruba/matchers/file/be_an_existing_file.rb +3 -1
  62. data/lib/aruba/matchers/file/have_file_content.rb +2 -0
  63. data/lib/aruba/matchers/file/have_file_size.rb +2 -0
  64. data/lib/aruba/matchers/file/have_same_file_content.rb +3 -1
  65. data/lib/aruba/matchers/file.rb +3 -1
  66. data/lib/aruba/matchers/path/a_path_matching_pattern.rb +2 -0
  67. data/lib/aruba/matchers/path/be_an_absolute_path.rb +2 -0
  68. data/lib/aruba/matchers/path/be_an_existing_path.rb +2 -0
  69. data/lib/aruba/matchers/path/have_permissions.rb +3 -1
  70. data/lib/aruba/matchers/path.rb +3 -1
  71. data/lib/aruba/matchers/string/include_output_string.rb +3 -1
  72. data/lib/aruba/matchers/string/match_output_string.rb +3 -1
  73. data/lib/aruba/matchers/string/output_string_eq.rb +3 -1
  74. data/lib/aruba/matchers/string.rb +3 -1
  75. data/lib/aruba/platform.rb +4 -2
  76. data/lib/aruba/platforms/announcer.rb +16 -14
  77. data/lib/aruba/platforms/aruba_file_creator.rb +2 -0
  78. data/lib/aruba/platforms/aruba_fixed_size_file_creator.rb +3 -1
  79. data/lib/aruba/platforms/determine_disk_usage.rb +3 -1
  80. data/lib/aruba/platforms/determine_file_size.rb +2 -0
  81. data/lib/aruba/platforms/filesystem_status.rb +3 -1
  82. data/lib/aruba/platforms/local_environment.rb +9 -1
  83. data/lib/aruba/platforms/simple_table.rb +4 -2
  84. data/lib/aruba/platforms/unix_command_string.rb +4 -2
  85. data/lib/aruba/platforms/unix_environment_variables.rb +4 -2
  86. data/lib/aruba/platforms/unix_platform.rb +32 -26
  87. data/lib/aruba/platforms/unix_which.rb +3 -1
  88. data/lib/aruba/platforms/windows_command_string.rb +3 -18
  89. data/lib/aruba/platforms/windows_environment_variables.rb +3 -1
  90. data/lib/aruba/platforms/windows_platform.rb +12 -6
  91. data/lib/aruba/platforms/windows_which.rb +7 -5
  92. data/lib/aruba/processes/basic_process.rb +5 -3
  93. data/lib/aruba/processes/debug_process.rb +8 -6
  94. data/lib/aruba/processes/in_process.rb +11 -8
  95. data/lib/aruba/processes/spawn_process.rb +110 -37
  96. data/lib/aruba/rspec.rb +8 -6
  97. data/lib/aruba/runtime.rb +9 -7
  98. data/lib/aruba/setup.rb +8 -6
  99. data/lib/aruba/version.rb +3 -1
  100. data/lib/aruba.rb +3 -1
  101. metadata +24 -99
  102. data/lib/aruba/event_bus/name_resolver.rb +0 -158
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aruba
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.0
4
+ version: 2.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Aslak Hellesøy, Matt Wynne and other Aruba Contributors
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-05-20 00:00:00.000000000 Z
11
+ date: 2025-01-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -30,26 +30,6 @@ dependencies:
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
32
  version: '3.0'
33
- - !ruby/object:Gem::Dependency
34
- name: childprocess
35
- requirement: !ruby/object:Gem::Requirement
36
- requirements:
37
- - - ">="
38
- - !ruby/object:Gem::Version
39
- version: '2.0'
40
- - - "<"
41
- - !ruby/object:Gem::Version
42
- version: '5.0'
43
- type: :runtime
44
- prerelease: false
45
- version_requirements: !ruby/object:Gem::Requirement
46
- requirements:
47
- - - ">="
48
- - !ruby/object:Gem::Version
49
- version: '2.0'
50
- - - "<"
51
- - !ruby/object:Gem::Version
52
- version: '5.0'
53
33
  - !ruby/object:Gem::Dependency
54
34
  name: contracts
55
35
  requirement: !ruby/object:Gem::Requirement
@@ -76,20 +56,20 @@ dependencies:
76
56
  requirements:
77
57
  - - ">="
78
58
  - !ruby/object:Gem::Version
79
- version: '4.0'
59
+ version: '8.0'
80
60
  - - "<"
81
61
  - !ruby/object:Gem::Version
82
- version: '9.0'
62
+ version: '10.0'
83
63
  type: :runtime
84
64
  prerelease: false
85
65
  version_requirements: !ruby/object:Gem::Requirement
86
66
  requirements:
87
67
  - - ">="
88
68
  - !ruby/object:Gem::Version
89
- version: '4.0'
69
+ version: '8.0'
90
70
  - - "<"
91
71
  - !ruby/object:Gem::Version
92
- version: '9.0'
72
+ version: '10.0'
93
73
  - !ruby/object:Gem::Dependency
94
74
  name: rspec-expectations
95
75
  requirement: !ruby/object:Gem::Requirement
@@ -174,40 +154,6 @@ dependencies:
174
154
  - - "~>"
175
155
  - !ruby/object:Gem::Version
176
156
  version: '5.10'
177
- - !ruby/object:Gem::Dependency
178
- name: pry
179
- requirement: !ruby/object:Gem::Requirement
180
- requirements:
181
- - - ">="
182
- - !ruby/object:Gem::Version
183
- version: 0.13.0
184
- - - "<"
185
- - !ruby/object:Gem::Version
186
- version: 0.15.0
187
- type: :development
188
- prerelease: false
189
- version_requirements: !ruby/object:Gem::Requirement
190
- requirements:
191
- - - ">="
192
- - !ruby/object:Gem::Version
193
- version: 0.13.0
194
- - - "<"
195
- - !ruby/object:Gem::Version
196
- version: 0.15.0
197
- - !ruby/object:Gem::Dependency
198
- name: pry-doc
199
- requirement: !ruby/object:Gem::Requirement
200
- requirements:
201
- - - "~>"
202
- - !ruby/object:Gem::Version
203
- version: '1.0'
204
- type: :development
205
- prerelease: false
206
- version_requirements: !ruby/object:Gem::Requirement
207
- requirements:
208
- - - "~>"
209
- - !ruby/object:Gem::Version
210
- version: '1.0'
211
157
  - !ruby/object:Gem::Dependency
212
158
  name: rake
213
159
  requirement: !ruby/object:Gem::Requirement
@@ -262,62 +208,56 @@ dependencies:
262
208
  requirements:
263
209
  - - "~>"
264
210
  - !ruby/object:Gem::Version
265
- version: '1.28'
266
- - - "!="
267
- - !ruby/object:Gem::Version
268
- version: 1.29.0
211
+ version: '1.62'
269
212
  type: :development
270
213
  prerelease: false
271
214
  version_requirements: !ruby/object:Gem::Requirement
272
215
  requirements:
273
216
  - - "~>"
274
217
  - !ruby/object:Gem::Version
275
- version: '1.28'
276
- - - "!="
277
- - !ruby/object:Gem::Version
278
- version: 1.29.0
218
+ version: '1.62'
279
219
  - !ruby/object:Gem::Dependency
280
220
  name: rubocop-packaging
281
221
  requirement: !ruby/object:Gem::Requirement
282
222
  requirements:
283
223
  - - "~>"
284
224
  - !ruby/object:Gem::Version
285
- version: 0.5.0
225
+ version: 0.5.2
286
226
  type: :development
287
227
  prerelease: false
288
228
  version_requirements: !ruby/object:Gem::Requirement
289
229
  requirements:
290
230
  - - "~>"
291
231
  - !ruby/object:Gem::Version
292
- version: 0.5.0
232
+ version: 0.5.2
293
233
  - !ruby/object:Gem::Dependency
294
234
  name: rubocop-performance
295
235
  requirement: !ruby/object:Gem::Requirement
296
236
  requirements:
297
237
  - - "~>"
298
238
  - !ruby/object:Gem::Version
299
- version: '1.13'
239
+ version: '1.21'
300
240
  type: :development
301
241
  prerelease: false
302
242
  version_requirements: !ruby/object:Gem::Requirement
303
243
  requirements:
304
244
  - - "~>"
305
245
  - !ruby/object:Gem::Version
306
- version: '1.13'
246
+ version: '1.21'
307
247
  - !ruby/object:Gem::Dependency
308
248
  name: rubocop-rspec
309
249
  requirement: !ruby/object:Gem::Requirement
310
250
  requirements:
311
251
  - - "~>"
312
252
  - !ruby/object:Gem::Version
313
- version: '2.8'
253
+ version: '3.0'
314
254
  type: :development
315
255
  prerelease: false
316
256
  version_requirements: !ruby/object:Gem::Requirement
317
257
  requirements:
318
258
  - - "~>"
319
259
  - !ruby/object:Gem::Version
320
- version: '2.8'
260
+ version: '3.0'
321
261
  - !ruby/object:Gem::Dependency
322
262
  name: simplecov
323
263
  requirement: !ruby/object:Gem::Requirement
@@ -327,7 +267,7 @@ dependencies:
327
267
  version: 0.18.0
328
268
  - - "<"
329
269
  - !ruby/object:Gem::Version
330
- version: 0.22.0
270
+ version: 0.23.0
331
271
  type: :development
332
272
  prerelease: false
333
273
  version_requirements: !ruby/object:Gem::Requirement
@@ -337,21 +277,7 @@ dependencies:
337
277
  version: 0.18.0
338
278
  - - "<"
339
279
  - !ruby/object:Gem::Version
340
- version: 0.22.0
341
- - !ruby/object:Gem::Dependency
342
- name: yard-junk
343
- requirement: !ruby/object:Gem::Requirement
344
- requirements:
345
- - - "~>"
346
- - !ruby/object:Gem::Version
347
- version: 0.0.7
348
- type: :development
349
- prerelease: false
350
- version_requirements: !ruby/object:Gem::Requirement
351
- requirements:
352
- - - "~>"
353
- - !ruby/object:Gem::Version
354
- version: 0.0.7
280
+ version: 0.23.0
355
281
  description: |
356
282
  Extension for popular TDD and BDD frameworks like "Cucumber", "RSpec" and "Minitest",
357
283
  to make testing command line applications meaningful, easy and fun.
@@ -378,12 +304,14 @@ files:
378
304
  - lib/aruba/api/environment.rb
379
305
  - lib/aruba/api/filesystem.rb
380
306
  - lib/aruba/api/text.rb
307
+ - lib/aruba/aruba_logger.rb
381
308
  - lib/aruba/aruba_path.rb
382
309
  - lib/aruba/basic_configuration.rb
383
310
  - lib/aruba/basic_configuration/option.rb
384
311
  - lib/aruba/cli.rb
385
312
  - lib/aruba/colorizer.rb
386
313
  - lib/aruba/command.rb
314
+ - lib/aruba/command_monitor.rb
387
315
  - lib/aruba/config/jruby.rb
388
316
  - lib/aruba/config_wrapper.rb
389
317
  - lib/aruba/configuration.rb
@@ -402,7 +330,6 @@ files:
402
330
  - lib/aruba/cucumber/testing_frameworks.rb
403
331
  - lib/aruba/errors.rb
404
332
  - lib/aruba/event_bus.rb
405
- - lib/aruba/event_bus/name_resolver.rb
406
333
  - lib/aruba/events.rb
407
334
  - lib/aruba/file_size.rb
408
335
  - lib/aruba/generators/script_file.rb
@@ -442,8 +369,6 @@ files:
442
369
  - lib/aruba/platforms/announcer.rb
443
370
  - lib/aruba/platforms/aruba_file_creator.rb
444
371
  - lib/aruba/platforms/aruba_fixed_size_file_creator.rb
445
- - lib/aruba/platforms/aruba_logger.rb
446
- - lib/aruba/platforms/command_monitor.rb
447
372
  - lib/aruba/platforms/determine_disk_usage.rb
448
373
  - lib/aruba/platforms/determine_file_size.rb
449
374
  - lib/aruba/platforms/filesystem_status.rb
@@ -474,7 +399,7 @@ metadata:
474
399
  documentation_uri: https://www.rubydoc.info/gems/aruba
475
400
  homepage_uri: https://github.com/cucumber/aruba
476
401
  source_code_uri: https://github.com/cucumber/aruba
477
- post_install_message:
402
+ post_install_message:
478
403
  rdoc_options:
479
404
  - "--charset"
480
405
  - UTF-8
@@ -486,15 +411,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
486
411
  requirements:
487
412
  - - ">="
488
413
  - !ruby/object:Gem::Version
489
- version: '2.5'
414
+ version: 3.0.0
490
415
  required_rubygems_version: !ruby/object:Gem::Requirement
491
416
  requirements:
492
417
  - - ">="
493
418
  - !ruby/object:Gem::Version
494
419
  version: '0'
495
420
  requirements: []
496
- rubygems_version: 3.3.7
497
- signing_key:
421
+ rubygems_version: 3.3.5
422
+ signing_key:
498
423
  specification_version: 4
499
- summary: aruba-2.1.0
424
+ summary: aruba-2.3.0
500
425
  test_files: []
@@ -1,158 +0,0 @@
1
- require "aruba/errors"
2
-
3
- # Event notification library
4
- module Aruba
5
- # EventBus
6
- class EventBus
7
- # Resolve name to Event name
8
- class NameResolver
9
- # @private
10
- # Helpers for Resolvers
11
- module ResolveHelpers
12
- def camel_case(underscored_name)
13
- underscored_name.to_s.split("_").map { |word| word.upcase[0] + word[1..-1] }.join
14
- end
15
-
16
- # Thanks ActiveSupport
17
- # (Only needed to support Ruby 1.9.3 and JRuby)
18
- def constantize(camel_cased_word)
19
- names = camel_cased_word.split("::")
20
-
21
- # Trigger a built-in NameError exception including the ill-formed
22
- # constant in the message.
23
- Object.const_get(camel_cased_word) if names.empty?
24
-
25
- # Remove the first blank element in case of '::ClassName' notation.
26
- names.shift if names.size > 1 && names.first.empty?
27
-
28
- names.inject(Object) do |constant, name|
29
- if constant == Object
30
- constant.const_get(name)
31
- else
32
- candidate = constant.const_get(name)
33
-
34
- next candidate if constant.const_defined?(name, false)
35
-
36
- next candidate unless Object.const_defined?(name)
37
-
38
- # Go down the ancestors to check if it is owned directly. The check
39
- # stops when we reach Object or the end of ancestors tree.
40
- constant = constant.ancestors.inject do |const, ancestor|
41
- break const if ancestor == Object
42
- break ancestor if ancestor.const_defined?(name, false)
43
-
44
- const
45
- end
46
-
47
- # owner is in Object, so raise
48
- constant.const_get(name, false)
49
- end
50
- end
51
- end
52
- end
53
-
54
- # @private
55
- # Convert a class in to an event class
56
- class ClassResolver
57
- class << self
58
- def match?(event_id)
59
- event_id.is_a? Class
60
- end
61
-
62
- # Which types are supported
63
- def supports
64
- [Class]
65
- end
66
- end
67
-
68
- def transform(_, event_id)
69
- event_id
70
- end
71
- end
72
-
73
- # @private
74
- # Convert a string in to an event class
75
- class StringResolver
76
- include ResolveHelpers
77
-
78
- class << self
79
- def match?(event_id)
80
- event_id.is_a? String
81
- end
82
-
83
- # Which types are supported
84
- def supports
85
- [String]
86
- end
87
- end
88
-
89
- def transform(_, event_id)
90
- constantize(event_id)
91
- end
92
- end
93
-
94
- # @private
95
- # Convert a symbol in to an event class
96
- class SymbolResolver
97
- include ResolveHelpers
98
-
99
- class << self
100
- def match?(event_id)
101
- event_id.is_a? Symbol
102
- end
103
-
104
- # Which types are supported
105
- def supports
106
- [Symbol]
107
- end
108
- end
109
-
110
- def transform(default_namespace, event_id)
111
- constantize("#{default_namespace}::#{camel_case(event_id)}")
112
- end
113
- end
114
-
115
- # @private
116
- # Default failing resolver
117
- #
118
- # This comes into play if the user passes an invalid event type
119
- class FailingResolver
120
- class << self
121
- def match?(event_id)
122
- raise ArgumentError,
123
- %(Input type "#{event_id.class}" of event_id "#{event_id}" is invalid)
124
- end
125
-
126
- def supports
127
- []
128
- end
129
- end
130
- end
131
-
132
- protected
133
-
134
- attr_reader :resolvers, :default_namespace
135
-
136
- public
137
-
138
- def initialize(default_namespace)
139
- @default_namespace = default_namespace
140
-
141
- @resolvers = []
142
- @resolvers << ClassResolver
143
- @resolvers << StringResolver
144
- @resolvers << SymbolResolver
145
- @resolvers << FailingResolver
146
- end
147
-
148
- def transform(event_id)
149
- resolvers.find { |r| r.match? event_id }.new.transform(default_namespace, event_id)
150
- rescue StandardError => e
151
- types = @resolvers.map(&:supports).flatten.join(", ")
152
- message = "Transforming \"#{event_id}\" into an event class failed." \
153
- " Supported types are: #{types}. #{e.message}."
154
- raise EventNameResolveError, message, cause: e
155
- end
156
- end
157
- end
158
- end