mutant-rspec 0.11.18 → 0.11.19

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ee7e283800c6ec5ee0dd6eed156e5f76a8be072bb4d0a98c9f04572a3ba5fb36
4
- data.tar.gz: fe7e9d9f7d38be67672d030421f7233d5317ce594bf4fb8d1842352fe47d6ff4
3
+ metadata.gz: 60683463467e9eefb7c27c66be0c4d5c4b8d8bb4c4abd3f0cb6cb2d949eee8ce
4
+ data.tar.gz: 502997639e13b64c8ab480248c7449e1e0217695ad97c05614b37e7a3d054dc8
5
5
  SHA512:
6
- metadata.gz: 65ad928e0d0ab1dc168637548e598f291c577c4aa5fdcb5ac4ab7fdf7835f8c4e3359e7d04e96f07cff4aa848afe3d916996f65c4b5cfb37f43f591067a5e0c0
7
- data.tar.gz: 2a248342c48adb07bb1836f75ab4186c8ba159fd15e1ee92ad5a2220c1ba430d5b01ff1ae42428115819e411f9c98aa3334a42090de10926fd752ac2b91f1283
6
+ metadata.gz: bb186bb30ac6367d26b9e446ce8fbc0c4801c3840d8f180876917fb716e80b71a66e341f063e44808d0a2b47210dba354d2c81c82ceddef70936a4e178a368d4
7
+ data.tar.gz: 77892be63bb91f3e77fab10108d2494d2fdb79eaf05b9ca400b3c081b199058809ad8108a7550fbd6a0785ae1ac279d213bed2a10fac4bf1375a5b5324e55d26
@@ -43,6 +43,8 @@ module Mutant
43
43
  # @return [self]
44
44
  def setup
45
45
  @runner.setup($stderr, $stdout)
46
+ example_group_map
47
+ reset_examples
46
48
  self
47
49
  end
48
50
  memoize :setup
@@ -53,8 +55,7 @@ module Mutant
53
55
  #
54
56
  # @return [Result::Test]
55
57
  def call(tests)
56
- examples = tests.map(&all_tests_index)
57
- filter_examples(&examples.public_method(:include?))
58
+ setup_examples(tests.map(&all_tests_index))
58
59
  start = timer.now
59
60
  passed = @runner.run_specs(@rspec_world.ordered_example_groups).equal?(EXIT_SUCCESS)
60
61
  Result::Test.new(
@@ -73,6 +74,16 @@ module Mutant
73
74
 
74
75
  private
75
76
 
77
+ def reset_examples
78
+ @rspec_world.filtered_examples.each_value(&:clear)
79
+ end
80
+
81
+ def setup_examples(examples)
82
+ examples.each do |example|
83
+ @rspec_world.filtered_examples.fetch(example_group_map.fetch(example)) << example
84
+ end
85
+ end
86
+
76
87
  def all_tests_index
77
88
  all_examples.each_with_index.with_object({}) do |(example, example_index), index|
78
89
  index[parse_example(example, example_index)] = example
@@ -95,6 +106,15 @@ module Mutant
95
106
  )
96
107
  end
97
108
 
109
+ def example_group_map
110
+ @rspec_world.example_groups.flat_map(&:descendants).each_with_object({}) do |example_group, map|
111
+ example_group.examples.each do |example|
112
+ map[example] = example_group
113
+ end
114
+ end
115
+ end
116
+ memoize :example_group_map
117
+
98
118
  def parse_metadata(metadata)
99
119
  if metadata.key?(:mutant_expression)
100
120
  expression = metadata.fetch(:mutant_expression)
@@ -119,12 +139,6 @@ module Mutant
119
139
  end
120
140
  end
121
141
 
122
- def filter_examples(&predicate)
123
- @rspec_world.filtered_examples.each_value do |examples|
124
- examples.keep_if(&predicate)
125
- end
126
- end
127
-
128
142
  end # Rspec
129
143
  end # Integration
130
144
  end # Mutant
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mutant-rspec
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.11.18
4
+ version: 0.11.19
5
5
  platform: ruby
6
6
  authors:
7
7
  - Markus Schirp
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-01-08 00:00:00.000000000 Z
11
+ date: 2023-05-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: mutant
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 0.11.18
19
+ version: 0.11.19
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - '='
25
25
  - !ruby/object:Gem::Version
26
- version: 0.11.18
26
+ version: 0.11.19
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rspec-core
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -74,7 +74,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
74
74
  - !ruby/object:Gem::Version
75
75
  version: '0'
76
76
  requirements: []
77
- rubygems_version: 3.3.26
77
+ rubygems_version: 3.4.10
78
78
  signing_key:
79
79
  specification_version: 4
80
80
  summary: Rspec integration for mutant