aruba 2.0.1 → 2.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +84 -37
- data/README.md +5 -4
- data/lib/aruba/api/core.rb +4 -4
- data/lib/aruba/api/filesystem.rb +1 -5
- data/lib/aruba/cucumber/command.rb +1 -1
- data/lib/aruba/event_bus/name_resolver.rb +1 -1
- data/lib/aruba/matchers/file/be_a_command_found_in_path.rb +5 -5
- data/lib/aruba/platforms/simple_table.rb +1 -1
- data/lib/aruba/platforms/unix_platform.rb +5 -1
- data/lib/aruba/platforms/windows_command_string.rb +1 -18
- data/lib/aruba/platforms/windows_platform.rb +4 -0
- data/lib/aruba/processes/basic_process.rb +1 -1
- data/lib/aruba/processes/spawn_process.rb +94 -23
- data/lib/aruba/version.rb +1 -1
- metadata +17 -59
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5ecd6da4e86f63a073bffd882d13902780ca69946de8867aa81cba5a8c6ad118
|
4
|
+
data.tar.gz: f588ff00344ee379a877dbbed442d411769516d8f2f53a164b6a219660e0c38a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d35cd2c9c3d89085f0a04ad2bf2e7b8b83b1cd10cebb87ed39111d0d3feb39b18ad905c5a02e9773881687574abc4b57c5c1d281d7432b746b8f685bd6862f7a
|
7
|
+
data.tar.gz: cd8bbb1369f18078e3d27a56fb43bef2fc3d25c9b17d81921d30ad759d4c8b16ac5c3a49e7e26e5d19a041df7fcb67da6e978b3c2f79198e22f05b585caa90db
|
data/CHANGELOG.md
CHANGED
@@ -6,6 +6,21 @@ This project adheres to [Semantic Versioning][1].
|
|
6
6
|
|
7
7
|
This document is formatted according to the principles of [Keep A CHANGELOG][2].
|
8
8
|
|
9
|
+
## [2.2.0] / 2023-09-02
|
10
|
+
|
11
|
+
* Drop support for Ruby 2.5 ([#836] by [mvz])
|
12
|
+
* Add support for JRuby 9.4 ([#882] by [mvz])
|
13
|
+
* Support CRuby 3.2 ([#883] by [mvz])
|
14
|
+
* Improve `be_a_command_found_in_path matcher` and its tests ([#895] by [mvz])
|
15
|
+
* Replace ChildProcess with Process.spawn ([#891] and [#892] by [mvz])
|
16
|
+
* Support Cucumber version 9.0 ([#904] by [mvz])
|
17
|
+
* Drop support for Cucumber 4 through 7 ([#906] by [mvz])
|
18
|
+
* Drop support for Ruby 2.6 ([#907] by [mvz])
|
19
|
+
|
20
|
+
## [2.1.0] / 2022-05-20
|
21
|
+
|
22
|
+
* Support Cucumber 8 ([#870] by [mvz] with [dependabot])
|
23
|
+
|
9
24
|
## [2.0.1] / 2022-04-22
|
10
25
|
|
11
26
|
* Various cleanups of internal APIs ([#838] by [mvz])
|
@@ -110,7 +125,8 @@ Other changes
|
|
110
125
|
* Fix cucumber deprecations ([#688] by [deivid-rodriguez])
|
111
126
|
* Update gemspec: Metadata and RDoc options ([#686] by [mvz])
|
112
127
|
* Update dependencies and fix RuboCop offenses ([#683] by [mvz])
|
113
|
-
* Init: Conditionally prefix the `gem aruba` line with a carriage return
|
128
|
+
* Init: Conditionally prefix the `gem aruba` line with a carriage return
|
129
|
+
([#570] by [xtrasimplicity])
|
114
130
|
* Update supported set of rubies([#679] by [mvz])
|
115
131
|
|
116
132
|
## [1.0.0.pre.alpha.5]
|
@@ -160,7 +176,8 @@ Other changes
|
|
160
176
|
* Improve documentation for users and developers ([#454], [#456], [#457], [#460],
|
161
177
|
[#459], [#461], [#475], [#494] by [olleolleolle], [maxmeyer], [mvz])
|
162
178
|
* Make forgetting `setup_aruba` a hard failure ([#510] by [mvz])
|
163
|
-
* Update dependencies ([#511], [#541], [#553] by [mvz], [#528] by [maxmeyer],
|
179
|
+
* Update dependencies ([#511], [#541], [#553] by [mvz], [#528] by [maxmeyer],
|
180
|
+
[#615] by [luke-hill] and [mvz])
|
164
181
|
* Improve output of `#have_output` matcher ([#546] by [mvz])
|
165
182
|
* Removed `have_same_file_content_like` and `a_file_with_same_content_like`
|
166
183
|
matchers, in favour of `have_same_file_content_as` and
|
@@ -187,22 +204,26 @@ Other changes
|
|
187
204
|
|
188
205
|
### Developer experience and internal changes
|
189
206
|
|
190
|
-
* Fix test suite failures ([#452], [#497] by [maxmeyer] and [mvz]; [#487],
|
207
|
+
* Fix test suite failures ([#452], [#497] by [maxmeyer] and [mvz]; [#487],
|
208
|
+
[#509] by [mvz])
|
191
209
|
* Remove development gems for unsupported Rubinius platform ([#464] by [maxmeyer])
|
192
210
|
* Update `license_finder` dependency ([#466] by [maxmeyer])
|
193
211
|
* Restrict branches to run Travis ([#471] by [junaruga])
|
194
|
-
* Maintain Travis builds ([#476] by [maxmeyer]; [#493] [#532], [#536] by [mvz];
|
212
|
+
* Maintain Travis builds ([#476] by [maxmeyer]; [#493], [#532], [#536] by [mvz];
|
213
|
+
[#542], [#596], [#607] by [olleolleolle])
|
195
214
|
* Rename History.md to CHANGELOG.md and fix links and formatting, etc. to bring
|
196
215
|
it in line with [cucumber/cucumber#521] ([#481], [#482] by [jaysonesmith])
|
197
|
-
* Fix YARD documentation issues ([#491] [olleolleolle])
|
216
|
+
* Fix YARD documentation issues ([#491] by [olleolleolle])
|
198
217
|
* Change maintainership ([#495], [#523] by [maxmeyer])
|
199
218
|
* Remove commented-out code ([#498] by [olleolleolle])
|
200
|
-
* Documentation fixups ([#504] by [roschaefer]; [#530] by [xtrasimplicity];
|
219
|
+
* Documentation fixups ([#504] by [roschaefer]; [#530] by [xtrasimplicity];
|
220
|
+
[#606] by [olleolleolle])
|
201
221
|
* Add 'stale' bot ([#507] by [maxmeyer]
|
202
222
|
* Update RuboCop and fix some offenses ([#514], [#537] by [mvz])
|
203
|
-
* Mark scenarios requiring external commands ([#515] [mvz])
|
204
|
-
* Remove cucumber features related to Aruba development
|
205
|
-
|
223
|
+
* Mark scenarios requiring external commands ([#515] by [mvz])
|
224
|
+
* Remove cucumber features related to Aruba development
|
225
|
+
([#522], [#543], [#544] by [mvz])
|
226
|
+
* Avoid long waits in feature suite ([#544] by [mvz])
|
206
227
|
* Clean up internally used cuke tags and their implementation ([#548] by [mvz])
|
207
228
|
* Test with Ruby 2.5 and 2.6 ([#554] by [nicolasleger], [#578] by [mvz])
|
208
229
|
* Fix tests on Debian. ([#575] by [Heinrich])
|
@@ -324,7 +345,8 @@ Note: These are changes w.r.t. Aruba version 0.14.1.
|
|
324
345
|
## [0.14.11]
|
325
346
|
|
326
347
|
* Loosen childprocess dependency ([#658])
|
327
|
-
* Do not set binmode on output temp files, so automatic line ending conversion
|
348
|
+
* Do not set binmode on output temp files, so automatic line ending conversion
|
349
|
+
works ([#650])
|
328
350
|
* Improve deprecation suggestions ([#647])
|
329
351
|
* Backport fixes to code organization, layout and spelling ([#645])
|
330
352
|
|
@@ -374,7 +396,7 @@ Note: These are changes w.r.t. Aruba version 0.14.1.
|
|
374
396
|
|
375
397
|
## [0.14.5]
|
376
398
|
|
377
|
-
* Loosen dependency on child_process ([#551])
|
399
|
+
* Loosen dependency on `child_process` ([#551])
|
378
400
|
|
379
401
|
## [0.14.4]
|
380
402
|
|
@@ -468,7 +490,6 @@ Note: These are changes w.r.t. Aruba version 0.14.1.
|
|
468
490
|
commands from last to first.
|
469
491
|
* Added `be_an_executable` matcher
|
470
492
|
|
471
|
-
|
472
493
|
## [0.11.0.pre]
|
473
494
|
|
474
495
|
* Set stop signal which should be used to stop a process after a timeout or
|
@@ -485,17 +506,14 @@ Note: These are changes w.r.t. Aruba version 0.14.1.
|
|
485
506
|
private. Users should use `#run('cmd')` and not use the classes directly.
|
486
507
|
* `rvm`-methods are deprecated. They are too ruby specific.
|
487
508
|
|
488
|
-
|
489
509
|
## [0.10.2]
|
490
510
|
|
491
511
|
* Fixed problem in regex after merge of step definitions
|
492
512
|
|
493
|
-
|
494
513
|
## [0.10.1]
|
495
514
|
|
496
515
|
* Merged remove steps for file and directory from 4 into 2 step definitions
|
497
516
|
|
498
|
-
|
499
517
|
## [0.10.0]
|
500
518
|
|
501
519
|
* Fix `"#exit_timeout" is deprecated` error ([#314])
|
@@ -520,7 +538,6 @@ Note: These are changes w.r.t. Aruba version 0.14.1.
|
|
520
538
|
* Added work around because of method name conflict between Capybara and RSpec
|
521
539
|
([1939c404](https://github.com/cucumber/aruba/commit/1939c4049d5195ffdd967485f50119bdd86e98a0))
|
522
540
|
|
523
|
-
|
524
541
|
## [0.9.0]
|
525
542
|
|
526
543
|
* Fix feature test
|
@@ -548,7 +565,6 @@ Note: These are changes w.r.t. Aruba version 0.14.1.
|
|
548
565
|
* Now we make the process started via `SpawnProcess` the leader of the group to
|
549
566
|
kill all sub-processes more reliably
|
550
567
|
|
551
|
-
|
552
568
|
## [0.9.0.pre]
|
553
569
|
|
554
570
|
* Improve documentation for filesystem api and move it to feature tests
|
@@ -568,7 +584,6 @@ Note: These are changes w.r.t. Aruba version 0.14.1.
|
|
568
584
|
* Split up `#which` for Windows and Unix/Linux ([#304])
|
569
585
|
* Add `aruba console` command to play around with aruba ([#305])
|
570
586
|
|
571
|
-
|
572
587
|
## [0.8.1]
|
573
588
|
|
574
589
|
* Fix problem if working directory of aruba does not exist ([#286])
|
@@ -578,7 +593,8 @@ Note: These are changes w.r.t. Aruba version 0.14.1.
|
|
578
593
|
* Make the home directory configurable and use Around/around-hook to apply it
|
579
594
|
* Add announcer to output the full environment before a command is run
|
580
595
|
* Use `prepend_environment_variable` to modify PATH for rspec integration
|
581
|
-
* Add `VERSION` constant to aruba and use it for code which should be activated
|
596
|
+
* Add `VERSION` constant to aruba and use it for code which should be activated
|
597
|
+
on >= 1.0.0
|
582
598
|
|
583
599
|
## [0.8.0]
|
584
600
|
|
@@ -589,7 +605,6 @@ Note: These are changes w.r.t. Aruba version 0.14.1.
|
|
589
605
|
* Fixed checks for file content
|
590
606
|
* Fixed selectors for DebugProcess and InProcess to support sub-classes as well
|
591
607
|
|
592
|
-
|
593
608
|
## [0.8.0.pre3]
|
594
609
|
|
595
610
|
* Depend on cucumber 1.3.x for compatibility on ruby 1.8.7
|
@@ -606,7 +621,8 @@ Note: These are changes w.r.t. Aruba version 0.14.1.
|
|
606
621
|
* Added checks for version of `rspec-expectations` to support older `rspec`
|
607
622
|
versions like `2.11`
|
608
623
|
* Now each `path/to/dir` pushed to `aruba.current_directory` is `pop`ed as whole
|
609
|
-
* Make testing of `aruba.current_directory` easier by supporting `end_with?`
|
624
|
+
* Make testing of `aruba.current_directory` easier by supporting `end_with?`
|
625
|
+
and `start_with?`
|
610
626
|
|
611
627
|
## [0.8.0.pre2]
|
612
628
|
|
@@ -626,17 +642,21 @@ Note: These are changes w.r.t. Aruba version 0.14.1.
|
|
626
642
|
* Cleanup API by moving deprecated methods to separate class
|
627
643
|
* Cleanup Core API - reduced to `cd`, `expand_path`, `setup_aruba` and use
|
628
644
|
`expand_path` wherever possible ([#253])
|
629
|
-
* Better isolation for environment variable manipulation - really helpful from
|
645
|
+
* Better isolation for environment variable manipulation - really helpful from
|
646
|
+
1.0.0 on
|
630
647
|
* Move configuration files like `jruby.rb` to `aruba/config/`-directory
|
631
|
-
* Change default exit timeout to 15 seconds to work around long running
|
648
|
+
* Change default exit timeout to 15 seconds to work around long running
|
649
|
+
processes on travis
|
632
650
|
* Use of instance variables like `@aruba_timeout_seconds` or
|
633
651
|
`@aruba_io_wait_seconds` are deprecated.
|
634
652
|
Use `Aruba.configure do |config| config.exit_timeout = 10` etc. for this.
|
635
653
|
|
636
654
|
## [0.7.4]
|
655
|
+
|
637
656
|
* Really Fixed post install message
|
638
657
|
|
639
658
|
## [0.7.3]
|
659
|
+
|
640
660
|
* Fixed post install message
|
641
661
|
|
642
662
|
## [0.7.2]
|
@@ -651,7 +671,8 @@ Note: These are changes w.r.t. Aruba version 0.14.1.
|
|
651
671
|
|
652
672
|
* Introducing `root_directory` ([#232])
|
653
673
|
* Introducing fixtures directory ([#224])
|
654
|
-
* Make sure a file/directory does not exist + Cleanup named file/directory
|
674
|
+
* Make sure a file/directory does not exist + Cleanup named file/directory
|
675
|
+
steps ([#234])
|
655
676
|
* Make matcher `have_permisions` public and add documentation ([#239])
|
656
677
|
* Added matcher for file content ([#238])
|
657
678
|
* Add rspec integrator ([#244])
|
@@ -660,7 +681,8 @@ Note: These are changes w.r.t. Aruba version 0.14.1.
|
|
660
681
|
* Cleanup process management ([#257])
|
661
682
|
* Make path content available through matchers and api metchods ([#250])
|
662
683
|
* Refactor announcer to support user defined announce channels (fixes [#267])
|
663
|
-
* `InProcess` requires that the working directory is determined on runtime not
|
684
|
+
* `InProcess` requires that the working directory is determined on runtime not
|
685
|
+
no loadtime
|
664
686
|
|
665
687
|
## [0.6.2]
|
666
688
|
|
@@ -693,7 +715,8 @@ Note: These are changes w.r.t. Aruba version 0.14.1.
|
|
693
715
|
|
694
716
|
## [0.5.2]
|
695
717
|
|
696
|
-
* Plugin API for greater speed. Test Ruby CLI programs in a single Ruby process
|
718
|
+
* Plugin API for greater speed. Test Ruby CLI programs in a single Ruby process
|
719
|
+
([#148], [aslakhellesoy])
|
697
720
|
* Fix memory leak when several commands are executed in a single run ([#144], [y-higuchi])
|
698
721
|
|
699
722
|
## [0.5.1]
|
@@ -705,7 +728,8 @@ Note: These are changes w.r.t. Aruba version 0.14.1.
|
|
705
728
|
|
706
729
|
* Add `#with_file_content` to the DSL ([#110], [argent-smith])
|
707
730
|
* Make JRuby performance tweaks optional ([#102], [taylor], [#125], [alindeman])
|
708
|
-
* Add `assert_partial_output_interactive` so you can peek at the output from a
|
731
|
+
* Add `assert_partial_output_interactive` so you can peek at the output from a
|
732
|
+
running process ([#104], [taylor])
|
709
733
|
* Add `assert_not_matching_output` ([#111], [argent-smith])
|
710
734
|
* Add `remove_dir` ([#121], [LTe])
|
711
735
|
|
@@ -728,7 +752,8 @@ Note: These are changes w.r.t. Aruba version 0.14.1.
|
|
728
752
|
|
729
753
|
* Add `before_run` hook ([mattwynne])
|
730
754
|
* Add JRuby performance tweaks ([#93], [myronmarston], [mattwynne])
|
731
|
-
* Invalid/Corrupt spec file for 0.4.7 - undefined method call for nil:Nilclass
|
755
|
+
* Invalid/Corrupt spec file for 0.4.7 - undefined method call for nil:Nilclass
|
756
|
+
([#47], [aslakhellesoy])
|
732
757
|
|
733
758
|
## [0.4.7]
|
734
759
|
|
@@ -814,7 +839,8 @@ Note: These are changes w.r.t. Aruba version 0.14.1.
|
|
814
839
|
|
815
840
|
* Remove latency introduced in the 0.2.8 release ([#42], [msassak])
|
816
841
|
* New stepdef `Then /^the stdout should contain:$/ do |partial_output|` ([aslakhellesoy])
|
817
|
-
* Quotes (") and newline (\n) in step arguments no longer need to be
|
842
|
+
* Quotes (") and newline (\n) in step arguments no longer need to be
|
843
|
+
backslash-escaped. ([aslakhellesoy])
|
818
844
|
|
819
845
|
## [0.2.8]
|
820
846
|
|
@@ -867,11 +893,13 @@ Note: These are changes w.r.t. Aruba version 0.14.1.
|
|
867
893
|
|
868
894
|
* Added a @bin tag that sets up './bin' first on the path ([aslakhellesoy])
|
869
895
|
* Richer API making aruba easier to use from Ruby code. (Mark Nijhof, [aslakhellesoy])
|
870
|
-
* No more support for RVM. Use rvm 1.9.2,1.8.7 exec cucumber .... instead.
|
896
|
+
* No more support for RVM. Use rvm 1.9.2,1.8.7 exec cucumber .... instead.
|
897
|
+
(Mark Nijhof, [aslakhellesoy])
|
871
898
|
|
872
899
|
## [0.2.1]
|
873
900
|
|
874
|
-
* Always compare with RSpec should =~ instead of should match. This gives a
|
901
|
+
* Always compare with RSpec should =~ instead of should match. This gives a
|
902
|
+
diff when there is no match. ([aslakhellesoy])
|
875
903
|
|
876
904
|
## [0.2.0]
|
877
905
|
|
@@ -914,7 +942,7 @@ Note: These are changes w.r.t. Aruba version 0.14.1.
|
|
914
942
|
|
915
943
|
## [0.1.7]
|
916
944
|
|
917
|
-
* New
|
945
|
+
* New `@announce-stderr` tag ([robertwahler])
|
918
946
|
* New "I should see matching" steps using Regexp ([robertwahler])
|
919
947
|
|
920
948
|
## [0.1.6]
|
@@ -925,12 +953,14 @@ Note: These are changes w.r.t. Aruba version 0.14.1.
|
|
925
953
|
|
926
954
|
## [0.1.5]
|
927
955
|
|
928
|
-
* Added ability to map rvm versions to a specific version with
|
956
|
+
* Added ability to map rvm versions to a specific version with
|
957
|
+
config/aruba-rvm.yml. ([aslakhellesoy])
|
929
958
|
* Check for presence of files. ([aslakhellesoy])
|
930
959
|
* Allow specification of rvm gemsets. ([aslakhellesoy])
|
931
960
|
* Detect ruby commands and use current ruby when rvm is not explicitly used. ([aslakhellesoy])
|
932
961
|
* Added support for rvm, making it possible to choose Ruby interpreter. ([aslakhellesoy])
|
933
|
-
* Added
|
962
|
+
* Added `@announce-cmd`, `@announce-stdout` and `@announce` tags, useful for seeing
|
963
|
+
what's executed and outputted. ([aslakhellesoy])
|
934
964
|
|
935
965
|
## [0.1.4]
|
936
966
|
|
@@ -942,7 +972,8 @@ Note: These are changes w.r.t. Aruba version 0.14.1.
|
|
942
972
|
|
943
973
|
## [0.1.2]
|
944
974
|
|
945
|
-
* Separated API from Cucumber step definitions, makes this usable without
|
975
|
+
* Separated API from Cucumber step definitions, makes this usable without
|
976
|
+
Cucumber. ([aslakhellesoy])
|
946
977
|
|
947
978
|
## [0.1.1]
|
948
979
|
|
@@ -997,13 +1028,27 @@ Note: These are changes w.r.t. Aruba version 0.14.1.
|
|
997
1028
|
[scottj97]: https://github.com/scottj97
|
998
1029
|
[stamhankar999]: https://github.com/stamhankar999
|
999
1030
|
[taylor]: https://github.com/taylor
|
1000
|
-
[utkarsh2102]: https://github.com/utkarsh2102
|
1001
1031
|
[tdreyno]: https://github.com/tdreyno
|
1032
|
+
[utkarsh2102]: https://github.com/utkarsh2102
|
1002
1033
|
[xtrasimplicity]: https://github.com/xtrasimplicity
|
1003
1034
|
[y-higuchi]: https://github.com/y-higuchi
|
1004
1035
|
|
1036
|
+
<!-- bots -->
|
1037
|
+
|
1038
|
+
[renovate]: https://github.com/apps/renovate
|
1039
|
+
[dependabot]: https://github.com/apps/dependabot
|
1040
|
+
|
1005
1041
|
<!-- issues & pull requests -->
|
1006
1042
|
|
1043
|
+
[#904]: https://github.com/cucumber/aruba/pull/904
|
1044
|
+
[#895]: https://github.com/cucumber/aruba/pull/895
|
1045
|
+
[#892]: https://github.com/cucumber/aruba/pull/892
|
1046
|
+
[#891]: https://github.com/cucumber/aruba/pull/891
|
1047
|
+
[#883]: https://github.com/cucumber/aruba/pull/883
|
1048
|
+
[#882]: https://github.com/cucumber/aruba/pull/882
|
1049
|
+
[#836]: https://github.com/cucumber/aruba/pull/836
|
1050
|
+
|
1051
|
+
[#870]: https://github.com/cucumber/aruba/pull/870
|
1007
1052
|
[#867]: https://github.com/cucumber/aruba/pull/867
|
1008
1053
|
[#858]: https://github.com/cucumber/aruba/pull/858
|
1009
1054
|
[#856]: https://github.com/cucumber/aruba/pull/856
|
@@ -1312,7 +1357,9 @@ Note: These are changes w.r.t. Aruba version 0.14.1.
|
|
1312
1357
|
|
1313
1358
|
<!-- Releases -->
|
1314
1359
|
|
1315
|
-
[Unreleased]: https://github.com/cucumber/aruba/compare/v2.0
|
1360
|
+
[Unreleased]: https://github.com/cucumber/aruba/compare/v2.2.0...main
|
1361
|
+
[2.2.0]: https://github.com/cucumber/aruba/compare/v2.1.0...v2.2.0
|
1362
|
+
[2.1.0]: https://github.com/cucumber/aruba/compare/v2.0.1...v2.1.0
|
1316
1363
|
[2.0.1]: https://github.com/cucumber/aruba/compare/v2.0.0...v2.0.1
|
1317
1364
|
[2.0.0]: https://github.com/cucumber/aruba/compare/v1.1.2...v2.0.0
|
1318
1365
|
[1.1.2]: https://github.com/cucumber/aruba/compare/v1.1.1...v1.1.2
|
data/README.md
CHANGED
@@ -40,7 +40,8 @@ information about how to write feature files in Gherkin.
|
|
40
40
|
|
41
41
|
* **RSpec**:
|
42
42
|
|
43
|
-
If you want to use Aruba with RSpec and you need some information about how
|
43
|
+
If you want to use Aruba with RSpec and you need some information about how
|
44
|
+
to use RSpec, please visit [their website](http://rspec.info/documentation/).
|
44
45
|
|
45
46
|
* **minitest**:
|
46
47
|
|
@@ -76,12 +77,12 @@ bump.
|
|
76
77
|
|
77
78
|
## Supported Ruby versions
|
78
79
|
|
79
|
-
Aruba is supported on Ruby 2.
|
80
|
-
3.1
|
80
|
+
Aruba is supported on Ruby 2.7 and up, and tested against CRuby 2.7, 3.0,
|
81
|
+
3.1 and 3.2, and JRuby 9.4.
|
81
82
|
|
82
83
|
## Supported Cucumber versions
|
83
84
|
|
84
|
-
Aruba is supported on and tested with Cucumber versions
|
85
|
+
Aruba is supported on and tested with Cucumber versions 8 and 9.
|
85
86
|
|
86
87
|
## Supported operating systems
|
87
88
|
|
data/lib/aruba/api/core.rb
CHANGED
@@ -144,7 +144,7 @@ module Aruba
|
|
144
144
|
def expand_path(file_name, dir_string = nil)
|
145
145
|
unless file_name.is_a?(String) && !file_name.empty?
|
146
146
|
message = "Filename #{file_name} needs to be a string." \
|
147
|
-
" It cannot be nil or empty either."\
|
147
|
+
" It cannot be nil or empty either." \
|
148
148
|
" Please use `expand_path('.')` if you want" \
|
149
149
|
" the current directory to be expanded."
|
150
150
|
|
@@ -160,7 +160,7 @@ module Aruba
|
|
160
160
|
prefix = file_name[0]
|
161
161
|
|
162
162
|
if prefix == aruba.config.fixtures_path_prefix
|
163
|
-
rest = file_name[2
|
163
|
+
rest = file_name[2..]
|
164
164
|
path = File.join(*[aruba.fixtures_directory, rest].compact)
|
165
165
|
unless Aruba.platform.exist? path
|
166
166
|
aruba_fixture_candidates = aruba.config.fixtures_directories
|
@@ -195,8 +195,8 @@ module Aruba
|
|
195
195
|
"Aruba's `expand_path` method was called with an absolute path" \
|
196
196
|
" at #{caller_file_line}, which is not recommended." \
|
197
197
|
" The path passed was '#{file_name}'." \
|
198
|
-
" Change the call to pass a relative path or set
|
199
|
-
"`config.allow_absolute_paths = true` to silence this warning"
|
198
|
+
" Change the call to pass a relative path or set" \
|
199
|
+
" `config.allow_absolute_paths = true` to silence this warning"
|
200
200
|
raise UserError, message
|
201
201
|
end
|
202
202
|
file_name
|
data/lib/aruba/api/filesystem.rb
CHANGED
@@ -302,11 +302,7 @@ module Aruba
|
|
302
302
|
end
|
303
303
|
|
304
304
|
mode = args.shift
|
305
|
-
mode = if mode.is_a? String
|
306
|
-
mode.to_i(8)
|
307
|
-
else
|
308
|
-
mode
|
309
|
-
end
|
305
|
+
mode = mode.to_i(8) if mode.is_a? String
|
310
306
|
|
311
307
|
args.each { |path| raise "Expected #{path} to be present" unless exist?(path) }
|
312
308
|
paths = args.map { |path| expand_path(path) }
|
@@ -10,7 +10,7 @@ module Aruba
|
|
10
10
|
# Helpers for Resolvers
|
11
11
|
module ResolveHelpers
|
12
12
|
def camel_case(underscored_name)
|
13
|
-
underscored_name.to_s.split("_").map { |word| word.upcase[0] + word[1
|
13
|
+
underscored_name.to_s.split("_").map { |word| word.upcase[0] + word[1..] }.join
|
14
14
|
end
|
15
15
|
|
16
16
|
# Thanks ActiveSupport
|
@@ -15,17 +15,17 @@
|
|
15
15
|
# end
|
16
16
|
RSpec::Matchers.define :be_a_command_found_in_path do
|
17
17
|
match do |actual|
|
18
|
-
|
19
|
-
|
20
|
-
!which(@actual).nil?
|
18
|
+
!which(actual).nil?
|
21
19
|
end
|
22
20
|
|
23
21
|
failure_message do |actual|
|
24
|
-
format(%(expected that command "%s" can be found in PATH "
|
22
|
+
format(%(expected that command "%s" can be found in PATH "%s".),
|
23
|
+
actual, aruba.environment["PATH"])
|
25
24
|
end
|
26
25
|
|
27
26
|
failure_message_when_negated do |actual|
|
28
|
-
format(%(expected that command "%s" cannot be found in PATH "
|
27
|
+
format(%(expected that command "%s" cannot be found in PATH "%s".),
|
28
|
+
actual, aruba.environment["PATH"])
|
29
29
|
end
|
30
30
|
end
|
31
31
|
|
@@ -100,7 +100,7 @@ module Aruba
|
|
100
100
|
end
|
101
101
|
|
102
102
|
def require_matching_files(pattern, base)
|
103
|
-
::Dir.glob(::File.expand_path(pattern, base)).each { |f| require_relative f }
|
103
|
+
::Dir.glob(::File.expand_path(pattern, base)).sort.each { |f| require_relative f }
|
104
104
|
end
|
105
105
|
|
106
106
|
# Create directory and subdirectories
|
@@ -241,6 +241,10 @@ module Aruba
|
|
241
241
|
def builtin_shell_commands
|
242
242
|
[]
|
243
243
|
end
|
244
|
+
|
245
|
+
def term_signal_supported?
|
246
|
+
true
|
247
|
+
end
|
244
248
|
end
|
245
249
|
end
|
246
250
|
end
|
@@ -4,8 +4,6 @@ module Aruba
|
|
4
4
|
module Platforms
|
5
5
|
# This is a command which should be run
|
6
6
|
#
|
7
|
-
# This adds `cmd.exec` in front of commmand
|
8
|
-
#
|
9
7
|
# @private
|
10
8
|
class WindowsCommandString
|
11
9
|
def initialize(command, *arguments)
|
@@ -15,22 +13,7 @@ module Aruba
|
|
15
13
|
|
16
14
|
# Convert to array
|
17
15
|
def to_a
|
18
|
-
[
|
19
|
-
end
|
20
|
-
|
21
|
-
private
|
22
|
-
|
23
|
-
def escaped_arguments
|
24
|
-
@arguments.map { |arg| arg.gsub(/"/, '"""') }
|
25
|
-
.map { |arg| / /.match?(arg) ? "\"#{arg}\"" : arg }
|
26
|
-
end
|
27
|
-
|
28
|
-
def escaped_command
|
29
|
-
@command.gsub(/ /, '""" """')
|
30
|
-
end
|
31
|
-
|
32
|
-
def cmd_path
|
33
|
-
Aruba.platform.which("cmd.exe")
|
16
|
+
[@command, *@arguments]
|
34
17
|
end
|
35
18
|
end
|
36
19
|
end
|
@@ -1,4 +1,3 @@
|
|
1
|
-
require "childprocess"
|
2
1
|
require "tempfile"
|
3
2
|
require "shellwords"
|
4
3
|
|
@@ -10,6 +9,85 @@ require "aruba/platform"
|
|
10
9
|
module Aruba
|
11
10
|
# Platforms
|
12
11
|
module Processes
|
12
|
+
# Wrapper around Process.spawn that broadly follows the ChildProcess interface
|
13
|
+
# @private
|
14
|
+
class ProcessRunner
|
15
|
+
def initialize(command_array)
|
16
|
+
@command_array = command_array
|
17
|
+
@exit_status = nil
|
18
|
+
end
|
19
|
+
|
20
|
+
attr_accessor :stdout, :stderr, :cwd, :environment
|
21
|
+
attr_reader :command_array, :pid
|
22
|
+
|
23
|
+
def start
|
24
|
+
@stdin_r, @stdin_w = IO.pipe
|
25
|
+
@pid = Process.spawn(environment, *command_array,
|
26
|
+
unsetenv_others: true,
|
27
|
+
in: @stdin_r,
|
28
|
+
out: stdout.fileno,
|
29
|
+
err: stderr.fileno,
|
30
|
+
close_others: true,
|
31
|
+
chdir: cwd)
|
32
|
+
end
|
33
|
+
|
34
|
+
def stdin
|
35
|
+
@stdin_w
|
36
|
+
end
|
37
|
+
|
38
|
+
def stop
|
39
|
+
return if @exit_status
|
40
|
+
|
41
|
+
if Aruba.platform.term_signal_supported?
|
42
|
+
send_signal "TERM"
|
43
|
+
return if poll_for_exit(3)
|
44
|
+
end
|
45
|
+
|
46
|
+
send_signal "KILL"
|
47
|
+
wait
|
48
|
+
end
|
49
|
+
|
50
|
+
def wait
|
51
|
+
_, status = Process.waitpid2 @pid
|
52
|
+
@exit_status = status
|
53
|
+
end
|
54
|
+
|
55
|
+
def exited?
|
56
|
+
return true if @exit_status
|
57
|
+
|
58
|
+
pid, status = Process.waitpid2 @pid, Process::WNOHANG | Process::WUNTRACED
|
59
|
+
|
60
|
+
if pid
|
61
|
+
@exit_status = status
|
62
|
+
return true
|
63
|
+
end
|
64
|
+
|
65
|
+
false
|
66
|
+
end
|
67
|
+
|
68
|
+
def poll_for_exit(exit_timeout)
|
69
|
+
start = Time.now
|
70
|
+
wait_until = start + exit_timeout
|
71
|
+
loop do
|
72
|
+
return true if exited?
|
73
|
+
break if Time.now >= wait_until
|
74
|
+
|
75
|
+
sleep 0.1
|
76
|
+
end
|
77
|
+
false
|
78
|
+
end
|
79
|
+
|
80
|
+
def exit_code
|
81
|
+
@exit_status&.exitstatus
|
82
|
+
end
|
83
|
+
|
84
|
+
private
|
85
|
+
|
86
|
+
def send_signal(signal)
|
87
|
+
Process.kill signal, @pid
|
88
|
+
end
|
89
|
+
end
|
90
|
+
|
13
91
|
# Spawn a process for command
|
14
92
|
#
|
15
93
|
# `SpawnProcess` is not meant for direct use - `SpawnProcess.new` - by
|
@@ -74,7 +152,8 @@ module Aruba
|
|
74
152
|
|
75
153
|
@started = true
|
76
154
|
|
77
|
-
@process =
|
155
|
+
@process = ProcessRunner.new(command_string.to_a)
|
156
|
+
|
78
157
|
@stdout_file = Tempfile.new("aruba-stdout-")
|
79
158
|
@stderr_file = Tempfile.new("aruba-stderr-")
|
80
159
|
|
@@ -85,23 +164,19 @@ module Aruba
|
|
85
164
|
@stderr_file.set_encoding("ASCII-8BIT")
|
86
165
|
|
87
166
|
@exit_status = nil
|
88
|
-
@duplex = true
|
89
167
|
|
90
168
|
before_run
|
91
169
|
|
92
|
-
@process.
|
93
|
-
@process.
|
94
|
-
@process.
|
95
|
-
@process.cwd = @working_directory
|
170
|
+
@process.stdout = @stdout_file
|
171
|
+
@process.stderr = @stderr_file
|
172
|
+
@process.cwd = @working_directory
|
96
173
|
|
97
|
-
@process.environment
|
174
|
+
@process.environment = environment
|
98
175
|
|
99
176
|
begin
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
end
|
104
|
-
rescue ChildProcess::LaunchError => e
|
177
|
+
@process.start
|
178
|
+
sleep startup_wait_time
|
179
|
+
rescue SystemCallError => e
|
105
180
|
raise LaunchError, "It tried to start #{commandline}. " + e.message
|
106
181
|
end
|
107
182
|
|
@@ -131,7 +206,7 @@ module Aruba
|
|
131
206
|
return @stdout_cache if stopped?
|
132
207
|
|
133
208
|
wait_for_io opts.fetch(:wait_for_io, io_wait_timeout) do
|
134
|
-
@process.
|
209
|
+
@process.stdout.flush
|
135
210
|
open(@stdout_file.path).read
|
136
211
|
end
|
137
212
|
end
|
@@ -150,7 +225,7 @@ module Aruba
|
|
150
225
|
return @stderr_cache if stopped?
|
151
226
|
|
152
227
|
wait_for_io opts.fetch(:wait_for_io, io_wait_timeout) do
|
153
|
-
@process.
|
228
|
+
@process.stderr.flush
|
154
229
|
open(@stderr_file.path).read
|
155
230
|
end
|
156
231
|
end
|
@@ -158,8 +233,8 @@ module Aruba
|
|
158
233
|
def write(input)
|
159
234
|
return if stopped?
|
160
235
|
|
161
|
-
@process.
|
162
|
-
@process.
|
236
|
+
@process.stdin.write(input)
|
237
|
+
@process.stdin.flush
|
163
238
|
|
164
239
|
self
|
165
240
|
end
|
@@ -168,18 +243,14 @@ module Aruba
|
|
168
243
|
def close_io(name)
|
169
244
|
return if stopped?
|
170
245
|
|
171
|
-
@process.
|
246
|
+
@process.public_send(name.to_sym).close
|
172
247
|
end
|
173
248
|
|
174
249
|
# Stop command
|
175
250
|
def stop(*)
|
176
251
|
return @exit_status if stopped?
|
177
252
|
|
178
|
-
|
179
|
-
@process.poll_for_exit(@exit_timeout)
|
180
|
-
rescue ChildProcess::TimeoutError
|
181
|
-
@timed_out = true
|
182
|
-
end
|
253
|
+
@process.poll_for_exit(@exit_timeout) or @timed_out = true
|
183
254
|
|
184
255
|
terminate
|
185
256
|
end
|
data/lib/aruba/version.rb
CHANGED
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.0
|
4
|
+
version: 2.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Aslak Hellesøy, Matt Wynne and other Aruba Contributors
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-09-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: '
|
59
|
+
version: '8.0'
|
80
60
|
- - "<"
|
81
61
|
- !ruby/object:Gem::Version
|
82
|
-
version: '
|
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: '
|
69
|
+
version: '8.0'
|
90
70
|
- - "<"
|
91
71
|
- !ruby/object:Gem::Version
|
92
|
-
version: '
|
72
|
+
version: '10.0'
|
93
73
|
- !ruby/object:Gem::Dependency
|
94
74
|
name: rspec-expectations
|
95
75
|
requirement: !ruby/object:Gem::Requirement
|
@@ -194,20 +174,6 @@ dependencies:
|
|
194
174
|
- - "<"
|
195
175
|
- !ruby/object:Gem::Version
|
196
176
|
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
177
|
- !ruby/object:Gem::Dependency
|
212
178
|
name: rake
|
213
179
|
requirement: !ruby/object:Gem::Requirement
|
@@ -263,6 +229,9 @@ dependencies:
|
|
263
229
|
- - "~>"
|
264
230
|
- !ruby/object:Gem::Version
|
265
231
|
version: '1.28'
|
232
|
+
- - "!="
|
233
|
+
- !ruby/object:Gem::Version
|
234
|
+
version: 1.29.0
|
266
235
|
type: :development
|
267
236
|
prerelease: false
|
268
237
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -270,6 +239,9 @@ dependencies:
|
|
270
239
|
- - "~>"
|
271
240
|
- !ruby/object:Gem::Version
|
272
241
|
version: '1.28'
|
242
|
+
- - "!="
|
243
|
+
- !ruby/object:Gem::Version
|
244
|
+
version: 1.29.0
|
273
245
|
- !ruby/object:Gem::Dependency
|
274
246
|
name: rubocop-packaging
|
275
247
|
requirement: !ruby/object:Gem::Requirement
|
@@ -321,7 +293,7 @@ dependencies:
|
|
321
293
|
version: 0.18.0
|
322
294
|
- - "<"
|
323
295
|
- !ruby/object:Gem::Version
|
324
|
-
version: 0.
|
296
|
+
version: 0.23.0
|
325
297
|
type: :development
|
326
298
|
prerelease: false
|
327
299
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -331,21 +303,7 @@ dependencies:
|
|
331
303
|
version: 0.18.0
|
332
304
|
- - "<"
|
333
305
|
- !ruby/object:Gem::Version
|
334
|
-
version: 0.
|
335
|
-
- !ruby/object:Gem::Dependency
|
336
|
-
name: yard-junk
|
337
|
-
requirement: !ruby/object:Gem::Requirement
|
338
|
-
requirements:
|
339
|
-
- - "~>"
|
340
|
-
- !ruby/object:Gem::Version
|
341
|
-
version: 0.0.7
|
342
|
-
type: :development
|
343
|
-
prerelease: false
|
344
|
-
version_requirements: !ruby/object:Gem::Requirement
|
345
|
-
requirements:
|
346
|
-
- - "~>"
|
347
|
-
- !ruby/object:Gem::Version
|
348
|
-
version: 0.0.7
|
306
|
+
version: 0.23.0
|
349
307
|
description: |
|
350
308
|
Extension for popular TDD and BDD frameworks like "Cucumber", "RSpec" and "Minitest",
|
351
309
|
to make testing command line applications meaningful, easy and fun.
|
@@ -480,15 +438,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
480
438
|
requirements:
|
481
439
|
- - ">="
|
482
440
|
- !ruby/object:Gem::Version
|
483
|
-
version: '2.
|
441
|
+
version: '2.7'
|
484
442
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
485
443
|
requirements:
|
486
444
|
- - ">="
|
487
445
|
- !ruby/object:Gem::Version
|
488
446
|
version: '0'
|
489
447
|
requirements: []
|
490
|
-
rubygems_version: 3.
|
448
|
+
rubygems_version: 3.4.18
|
491
449
|
signing_key:
|
492
450
|
specification_version: 4
|
493
|
-
summary: aruba-2.0
|
451
|
+
summary: aruba-2.2.0
|
494
452
|
test_files: []
|