test_bench-run 2.1.2.4 → 2.1.2.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 942112061007855a63dbdf4bab41ab7acc6333a855caa78ef9b3c04dc065ba5f
4
- data.tar.gz: d2feeca873eb87f6412ee4efbae351e0ab0b7ab92c89a5f43a92159e78e3b6fe
3
+ metadata.gz: f527694f8c16eb307c95b47766126e59d6865e2e489d32dceb0759afa2f70644
4
+ data.tar.gz: e8ca1e5277c8d5b46b50b79db15a25f09c216861e10d64da3d19bc8ba229043e
5
5
  SHA512:
6
- metadata.gz: e22a39a9ced792e8ae30fdb69a76b4f30ffd05863f3103433a260a68196b8059b6559e01c592b2e15b99b149420699e4a2064dcb087cb674da7a233ef52975eb
7
- data.tar.gz: c0bfb7db3777e12483e48a8d48ea12549bd833df8a5abc266e827bd507e4e945db60590a65d641a1fabc99f0b054efa83efa62b3e13255baeec913cb0a46dc48
6
+ metadata.gz: dff306356f87ef3cb7672ea39241e82cabdac3c9ca9faf47de765e834ba70d05308cd7ee5c7b9e442deaf032ee9c8ed8ad4b7bf2a0d0218c297c9b65e57bfec8
7
+ data.tar.gz: bf0d1b4671fbc59f1bd73d0f7c6c3082c6ecb9a5d98a45c08a6989a211ae49d0ebae3c073f5fc3556238c8fb9db1d2bf249ccc708014ac148b657fa2e0698898
@@ -9,10 +9,8 @@ module TestBench
9
9
  ::File.join(parent_directory, name)
10
10
  end
11
11
 
12
- def self.random(parent_directory: nil)
13
- name = Name.random
14
-
15
- example(name, parent_directory:)
12
+ def self.random
13
+ Random.example
16
14
  end
17
15
 
18
16
  def self.name
@@ -27,21 +25,39 @@ module TestBench
27
25
  File::Create.root_directory
28
26
  end
29
27
 
28
+ module Pattern
29
+ def self.example
30
+ 'some-directory*'
31
+ end
32
+ end
33
+
34
+ module Random
35
+ def self.example(basename: nil, parent_directory: nil)
36
+ name = Name::Random.example(basename)
37
+
38
+ Directory.example(name, parent_directory:)
39
+ end
40
+ end
41
+
30
42
  module Name
31
43
  def self.example
32
44
  "some-directory"
33
45
  end
34
46
 
35
- def self.random
36
- suffix = Random.string
47
+ module Random
48
+ def self.example(basename=nil)
49
+ basename ||= Name.example
50
+
51
+ suffix = Controls::Random.string
37
52
 
38
- "#{example}-#{suffix}"
53
+ "#{basename}-#{suffix}"
54
+ end
39
55
  end
40
56
  end
41
57
 
42
58
  module Create
43
- def self.call(parent_directory: nil)
44
- directory = Directory.random(parent_directory:)
59
+ def self.call(basename: nil, parent_directory: nil)
60
+ directory = Random.example(basename:, parent_directory:)
45
61
 
46
62
  ::Dir.mkdir(directory)
47
63
 
@@ -4,12 +4,16 @@ module TestBench
4
4
  module File
5
5
  module Pattern
6
6
  def self.example
7
- Any.example
7
+ File.example
8
8
  end
9
9
 
10
- module Any
10
+ def self.other_example
11
+ '*.rb'
12
+ end
13
+
14
+ module File
11
15
  def self.example
12
- '*'
16
+ 'some_file*.rb'
13
17
  end
14
18
  end
15
19
 
@@ -3,38 +3,38 @@ module TestBench
3
3
  class GetFiles
4
4
  FileError = Class.new(RuntimeError)
5
5
 
6
- def exclude_file_pattern
7
- @exclude_file_pattern ||= Defaults.exclude_file_pattern
6
+ attr_reader :exclude_patterns
7
+
8
+ def initialize(exclude_patterns)
9
+ @exclude_patterns = exclude_patterns
8
10
  end
9
- attr_writer :exclude_file_pattern
10
11
 
11
- def self.build(exclude_file_pattern: nil)
12
- instance = new
12
+ def self.build(exclude: nil)
13
+ exclude_patterns = exclude
14
+ exclude_patterns ||= Defaults.exclude_patterns
13
15
 
14
- if not exclude_file_pattern.nil?
15
- instance.exclude_file_pattern = exclude_file_pattern
16
+ if exclude_patterns.instance_of?(String)
17
+ exclude_patterns = exclude_patterns.split(',')
16
18
  end
17
19
 
18
- instance
20
+ new(exclude_patterns)
19
21
  end
20
22
 
21
- def self.call(path, *paths, exclude_file_pattern: nil, &block)
22
- instance = build(exclude_file_pattern:)
23
+ def self.call(path, *paths, exclude: nil, &block)
24
+ instance = build(exclude:)
23
25
  instance.(path, *paths, &block)
24
26
  end
25
27
 
26
- def self.configure(receiver, exclude_file_pattern: nil, attr_name: nil)
28
+ def self.configure(receiver, exclude: nil, attr_name: nil)
27
29
  attr_name ||= :get_files
28
30
 
29
- instance = build(exclude_file_pattern:)
31
+ instance = build(exclude:)
30
32
  receiver.public_send(:"#{attr_name}=", instance)
31
33
  end
32
34
 
33
35
  def call(path, *paths, &block)
34
36
  paths = [path, *paths]
35
37
 
36
- exclude_file_pattern = ::File.join('*/', self.exclude_file_pattern)
37
-
38
38
  paths.each do |path|
39
39
  if ::File.extname(path).empty?
40
40
  pattern = ::File.join(path, '**/*.rb')
@@ -45,7 +45,13 @@ module TestBench
45
45
  assure_extant(path)
46
46
 
47
47
  Dir.glob(pattern).each do |file|
48
- if ::File.fnmatch?(exclude_file_pattern, file, ::File::FNM_EXTGLOB)
48
+ excluded = exclude_patterns.any? do |exclude_pattern|
49
+ exclude_pattern = ::File.join('*', exclude_pattern)
50
+
51
+ ::File.fnmatch?(exclude_pattern, file, ::File::FNM_EXTGLOB)
52
+ end
53
+
54
+ if excluded
49
55
  next
50
56
  end
51
57
 
@@ -61,7 +67,7 @@ module TestBench
61
67
  end
62
68
 
63
69
  module Defaults
64
- def self.exclude_file_pattern
70
+ def self.exclude_patterns
65
71
  ENV.fetch('TEST_BENCH_EXCLUDE_FILE_PATTERN', '*_init.rb')
66
72
  end
67
73
  end
@@ -37,7 +37,7 @@ module TestBench
37
37
  def self.build(exclude: nil)
38
38
  instance = new
39
39
 
40
- GetFiles.configure(instance, exclude_file_pattern: exclude)
40
+ GetFiles.configure(instance, exclude:)
41
41
 
42
42
  Executor::Serial.configure(instance)
43
43
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: test_bench-run
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.2.4
4
+ version: 2.1.2.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nathan Ladd
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-07-27 00:00:00.000000000 Z
11
+ date:
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: test_bench-fixture
@@ -44,10 +44,12 @@ executables: []
44
44
  extensions: []
45
45
  extra_rdoc_files: []
46
46
  files:
47
- - lib/test_bench/run.rb
48
- - lib/test_bench/run/controls.rb
47
+ - lib/test_bench
48
+ - lib/test_bench/run
49
+ - lib/test_bench/run/controls
49
50
  - lib/test_bench/run/controls/directory.rb
50
51
  - lib/test_bench/run/controls/event_data.rb
52
+ - lib/test_bench/run/controls/events
51
53
  - lib/test_bench/run/controls/events/event_data.rb
52
54
  - lib/test_bench/run/controls/events/file_crashed.rb
53
55
  - lib/test_bench/run/controls/events/file_finished.rb
@@ -57,25 +59,32 @@ files:
57
59
  - lib/test_bench/run/controls/events/started.rb
58
60
  - lib/test_bench/run/controls/exception.rb
59
61
  - lib/test_bench/run/controls/executor.rb
60
- - lib/test_bench/run/controls/file.rb
62
+ - lib/test_bench/run/controls/file
61
63
  - lib/test_bench/run/controls/file/create.rb
62
64
  - lib/test_bench/run/controls/file/pattern.rb
65
+ - lib/test_bench/run/controls/file.rb
63
66
  - lib/test_bench/run/controls/path.rb
64
67
  - lib/test_bench/run/controls/process_id.rb
65
68
  - lib/test_bench/run/controls/random.rb
66
69
  - lib/test_bench/run/controls/result.rb
67
70
  - lib/test_bench/run/controls/time.rb
71
+ - lib/test_bench/run/controls.rb
68
72
  - lib/test_bench/run/events.rb
69
- - lib/test_bench/run/executor.rb
73
+ - lib/test_bench/run/executor
70
74
  - lib/test_bench/run/executor/serial.rb
71
75
  - lib/test_bench/run/executor/substitute.rb
76
+ - lib/test_bench/run/executor.rb
72
77
  - lib/test_bench/run/file.rb
73
- - lib/test_bench/run/get_files.rb
78
+ - lib/test_bench/run/get_files
74
79
  - lib/test_bench/run/get_files/substitute.rb
80
+ - lib/test_bench/run/get_files.rb
81
+ - lib/test_bench/run/output
75
82
  - lib/test_bench/run/output/file.rb
76
- - lib/test_bench/run/output/summary.rb
83
+ - lib/test_bench/run/output/summary
77
84
  - lib/test_bench/run/output/summary/error.rb
85
+ - lib/test_bench/run/output/summary.rb
78
86
  - lib/test_bench/run/run.rb
87
+ - lib/test_bench/run.rb
79
88
  homepage: https://github.com/test-bench/test-bench-run
80
89
  licenses:
81
90
  - MIT