ree_spec 0.0.11 → 0.0.12

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: bbf9efa49b1320f24b5afec2f949c8c703d4dd6316bdff0d684e85cb6ea402af
4
- data.tar.gz: 8f19e36d25beab6b54efeb2892fa54445f3564d9af4916f15b70d7666e82f8d0
3
+ metadata.gz: 11848d77f1f0a07ecc8cf4f66d7bfd3a5e43067e2708e6fda3dd714956667f8a
4
+ data.tar.gz: d2c50674020d9a9470b61a39c2024b5313e67fd22b989c152d87b80b15b1849b
5
5
  SHA512:
6
- metadata.gz: 250830cd4e6c2cba22f09e14462e10a6122f9e733a70691fd99b36cd4412aac2ad39707364bb963fa24ce1ebe81d034353d5bdf2ea6b332e8e778b9e36e2d06d
7
- data.tar.gz: 9693667640ad84dac6dc63f38580349b0b7de2f2acc22f177af7656ea9c94b56ec0f08e7f826ecf1afebff06a2a92f6208c80814819269479e87a80fc57bf732
6
+ metadata.gz: e7a4d6658d9c056d9a9acad641032fdb9e76a9963de8d4876cca658b904f2588d15f22454d56cd89ab869f30693036f25aac300c792ebdd63925e0e3168beceb
7
+ data.tar.gz: a375aff804cddbdb0e8031e21aaa299011cb353f5101952964b730b8dd584ac787c21b670aee822ffdb48aa82cc577015f54c1f693cde50df8cae7068804c1db
data/.rubocop.yml CHANGED
@@ -1,5 +1,5 @@
1
1
  AllCops:
2
- TargetRubyVersion: 2.5
2
+ TargetRubyVersion: 4.0
3
3
 
4
4
  Style/StringLiterals:
5
5
  Enabled: true
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 3.4.1
1
+ 4.0.1
data/Gemfile.lock CHANGED
@@ -1,94 +1,110 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- ree_spec (0.0.11)
4
+ ree_spec (0.0.12)
5
5
  commander (~> 5.0.0)
6
+ logger
6
7
  ree
7
8
  ree_lib
8
9
 
9
10
  GEM
10
11
  remote: https://rubygems.org/
11
12
  specs:
12
- addressable (2.8.7)
13
- public_suffix (>= 2.0.2, < 7.0)
14
- bigdecimal (3.1.9)
15
- binding_of_caller (1.0.1)
13
+ addressable (2.8.8)
14
+ public_suffix (>= 2.0.2, < 8.0)
15
+ base64 (0.3.0)
16
+ bigdecimal (4.0.1)
17
+ binding_of_caller (2.0.0)
16
18
  debug_inspector (>= 1.2.0)
17
- bootsnap (1.18.4)
19
+ bootsnap (1.23.0)
18
20
  msgpack (~> 1.2)
19
21
  commander (5.0.0)
20
22
  highline (~> 3.0.0)
21
- concurrent-ruby (1.3.4)
22
- crack (1.0.0)
23
+ concurrent-ruby (1.3.6)
24
+ crack (1.0.1)
23
25
  bigdecimal
24
26
  rexml
25
27
  crass (1.0.6)
26
28
  debug_inspector (1.2.0)
27
- diff-lcs (1.5.1)
28
- hashdiff (1.1.1)
29
+ diff-lcs (1.6.2)
30
+ hashdiff (1.2.1)
29
31
  highline (3.0.1)
30
- i18n (1.14.7)
32
+ i18n (1.14.8)
31
33
  concurrent-ruby (~> 1.0)
32
- loofah (2.24.1)
34
+ logger (1.7.0)
35
+ loofah (2.25.0)
33
36
  crass (~> 1.0.2)
34
37
  nokogiri (>= 1.12.0)
35
- mini_portile2 (2.8.8)
36
- msgpack (1.7.2)
37
- nokogiri (1.16.7)
38
- mini_portile2 (~> 2.8.2)
38
+ msgpack (1.8.0)
39
+ nokogiri (1.19.1-aarch64-linux-gnu)
39
40
  racc (~> 1.4)
40
- oj (3.16.10)
41
- bigdecimal (>= 3.0)
42
- ostruct (>= 0.2)
43
- ostruct (0.6.0)
44
- public_suffix (6.0.1)
41
+ nokogiri (1.19.1-aarch64-linux-musl)
42
+ racc (~> 1.4)
43
+ nokogiri (1.19.1-arm-linux-gnu)
44
+ racc (~> 1.4)
45
+ nokogiri (1.19.1-arm-linux-musl)
46
+ racc (~> 1.4)
47
+ nokogiri (1.19.1-arm64-darwin)
48
+ racc (~> 1.4)
49
+ nokogiri (1.19.1-x86_64-darwin)
50
+ racc (~> 1.4)
51
+ nokogiri (1.19.1-x86_64-linux-gnu)
52
+ racc (~> 1.4)
53
+ nokogiri (1.19.1-x86_64-linux-musl)
54
+ racc (~> 1.4)
55
+ ostruct (0.6.3)
56
+ public_suffix (7.0.2)
45
57
  racc (1.8.1)
46
58
  rainbow (3.1.1)
47
- rake (13.2.1)
48
- ree (1.1.0)
49
- commander (~> 5.0.0)
50
- ree_lib (1.2.0)
51
- bigdecimal (~> 3.1.9)
52
- binding_of_caller (~> 1.0.1)
53
- i18n (~> 1.14.7)
54
- loofah (~> 2.24.0)
55
- oj (~> 3.16.9)
56
- rainbow (~> 3.1.1)
57
- ree (~> 1.1.0)
58
- sequel (~> 5.88.0)
59
- tzinfo (~> 2.0.6)
60
- rexml (3.3.6)
61
- strscan
62
- rspec (3.13.0)
59
+ rake (13.3.1)
60
+ ree (1.3.0)
61
+ base64
62
+ commander
63
+ logger
64
+ ree_lib (1.3.6)
65
+ bigdecimal
66
+ binding_of_caller
67
+ i18n
68
+ loofah
69
+ rainbow
70
+ ree
71
+ sequel
72
+ tzinfo
73
+ rexml (3.4.4)
74
+ rspec (3.13.2)
63
75
  rspec-core (~> 3.13.0)
64
76
  rspec-expectations (~> 3.13.0)
65
77
  rspec-mocks (~> 3.13.0)
66
- rspec-core (3.13.0)
78
+ rspec-core (3.13.6)
67
79
  rspec-support (~> 3.13.0)
68
- rspec-expectations (3.13.2)
80
+ rspec-expectations (3.13.5)
69
81
  diff-lcs (>= 1.2.0, < 2.0)
70
82
  rspec-support (~> 3.13.0)
71
- rspec-mocks (3.13.1)
83
+ rspec-mocks (3.13.7)
72
84
  diff-lcs (>= 1.2.0, < 2.0)
73
85
  rspec-support (~> 3.13.0)
74
- rspec-support (3.13.1)
75
- ruby-prof (1.7.0)
76
- sequel (5.88.0)
86
+ rspec-support (3.13.7)
87
+ ruby-prof (2.0.2)
88
+ base64
89
+ ostruct
90
+ sequel (5.101.0)
77
91
  bigdecimal
78
- strscan (3.1.0)
79
92
  tzinfo (2.0.6)
80
93
  concurrent-ruby (~> 1.0)
81
- webmock (3.23.1)
94
+ webmock (3.26.1)
82
95
  addressable (>= 2.8.0)
83
96
  crack (>= 0.3.2)
84
97
  hashdiff (>= 0.4.0, < 2.0.0)
85
98
 
86
99
  PLATFORMS
87
- x86_64-darwin-19
88
- x86_64-darwin-21
89
- x86_64-darwin-22
90
- x86_64-darwin-23
91
- x86_64-linux
100
+ aarch64-linux-gnu
101
+ aarch64-linux-musl
102
+ arm-linux-gnu
103
+ arm-linux-musl
104
+ arm64-darwin
105
+ x86_64-darwin
106
+ x86_64-linux-gnu
107
+ x86_64-linux-musl
92
108
 
93
109
  DEPENDENCIES
94
110
  bootsnap
@@ -98,5 +114,50 @@ DEPENDENCIES
98
114
  ruby-prof
99
115
  webmock
100
116
 
117
+ CHECKSUMS
118
+ addressable (2.8.8) sha256=7c13b8f9536cf6364c03b9d417c19986019e28f7c00ac8132da4eb0fe393b057
119
+ base64 (0.3.0) sha256=27337aeabad6ffae05c265c450490628ef3ebd4b67be58257393227588f5a97b
120
+ bigdecimal (4.0.1) sha256=8b07d3d065a9f921c80ceaea7c9d4ae596697295b584c296fe599dd0ad01c4a7
121
+ binding_of_caller (2.0.0) sha256=e53eebf8428a85587aede7b43a83e7419eb85b8b690938a96aa330d03052d517
122
+ bootsnap (1.23.0) sha256=c1254f458d58558b58be0f8eb8f6eec2821456785b7cdd1e16248e2020d3f214
123
+ commander (5.0.0) sha256=22ca42866ce5ed1a7f3e9a9c831a23d03b75b3743c7ad0302c3cbcd9eb5f257d
124
+ concurrent-ruby (1.3.6) sha256=6b56837e1e7e5292f9864f34b69c5a2cbc75c0cf5338f1ce9903d10fa762d5ab
125
+ crack (1.0.1) sha256=ff4a10390cd31d66440b7524eb1841874db86201d5b70032028553130b6d4c7e
126
+ crass (1.0.6) sha256=dc516022a56e7b3b156099abc81b6d2b08ea1ed12676ac7a5657617f012bd45d
127
+ debug_inspector (1.2.0) sha256=9bdfa02eebc3da163833e6a89b154084232f5766087e59573b70521c77ea68a2
128
+ diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962
129
+ hashdiff (1.2.1) sha256=9c079dbc513dfc8833ab59c0c2d8f230fa28499cc5efb4b8dd276cf931457cd1
130
+ highline (3.0.1) sha256=ca18b218fd581b1fae832f89bfeaf2b34d3a93429c44fd4411042ffce286f009
131
+ i18n (1.14.8) sha256=285778639134865c5e0f6269e0b818256017e8cde89993fdfcbfb64d088824a5
132
+ logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203
133
+ loofah (2.25.0) sha256=df5ed7ac3bac6a4ec802df3877ee5cc86d027299f8952e6243b3dac446b060e6
134
+ msgpack (1.8.0) sha256=e64ce0212000d016809f5048b48eb3a65ffb169db22238fb4b72472fecb2d732
135
+ nokogiri (1.19.1-aarch64-linux-gnu) sha256=cfdb0eafd9a554a88f12ebcc688d2b9005f9fce42b00b970e3dc199587b27f32
136
+ nokogiri (1.19.1-aarch64-linux-musl) sha256=1e2150ab43c3b373aba76cd1190af7b9e92103564063e48c474f7600923620b5
137
+ nokogiri (1.19.1-arm-linux-gnu) sha256=0a39ed59abe3bf279fab9dd4c6db6fe8af01af0608f6e1f08b8ffa4e5d407fa3
138
+ nokogiri (1.19.1-arm-linux-musl) sha256=3a18e559ee499b064aac6562d98daab3d39ba6cbb4074a1542781b2f556db47d
139
+ nokogiri (1.19.1-arm64-darwin) sha256=dfe2d337e6700eac47290407c289d56bcf85805d128c1b5a6434ddb79731cb9e
140
+ nokogiri (1.19.1-x86_64-darwin) sha256=7093896778cc03efb74b85f915a775862730e887f2e58d6921e3fa3d981e68bf
141
+ nokogiri (1.19.1-x86_64-linux-gnu) sha256=1a4902842a186b4f901078e692d12257678e6133858d0566152fe29cdb98456a
142
+ nokogiri (1.19.1-x86_64-linux-musl) sha256=4267f38ad4fc7e52a2e7ee28ed494e8f9d8eb4f4b3320901d55981c7b995fc23
143
+ ostruct (0.6.3) sha256=95a2ed4a4bd1d190784e666b47b2d3f078e4a9efda2fccf18f84ddc6538ed912
144
+ public_suffix (7.0.2) sha256=9114090c8e4e7135c1fd0e7acfea33afaab38101884320c65aaa0ffb8e26a857
145
+ racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f
146
+ rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a
147
+ rake (13.3.1) sha256=8c9e89d09f66a26a01264e7e3480ec0607f0c497a861ef16063604b1b08eb19c
148
+ ree (1.3.0) sha256=31f2d05b5cbed0bc0f1c0143ad080a089c2d691694be09713044f769e576ba90
149
+ ree_lib (1.3.6) sha256=2b56107a04641f151b5c614fd71995cbe47b79e835373bd1bbe7c379f2a1135d
150
+ ree_spec (0.0.12)
151
+ rexml (3.4.4) sha256=19e0a2c3425dfbf2d4fc1189747bdb2f849b6c5e74180401b15734bc97b5d142
152
+ rspec (3.13.2) sha256=206284a08ad798e61f86d7ca3e376718d52c0bc944626b2349266f239f820587
153
+ rspec-core (3.13.6) sha256=a8823c6411667b60a8bca135364351dda34cd55e44ff94c4be4633b37d828b2d
154
+ rspec-expectations (3.13.5) sha256=33a4d3a1d95060aea4c94e9f237030a8f9eae5615e9bd85718fe3a09e4b58836
155
+ rspec-mocks (3.13.7) sha256=0979034e64b1d7a838aaaddf12bf065ea4dc40ef3d4c39f01f93ae2c66c62b1c
156
+ rspec-support (3.13.7) sha256=0640e5570872aafefd79867901deeeeb40b0c9875a36b983d85f54fb7381c47c
157
+ ruby-prof (2.0.2) sha256=c489dbf8b029d3107ff4b74db6c01939f71427f985f6bb449e1170ed24073d0e
158
+ sequel (5.101.0) sha256=d2ae3fd997a7c4572e8357918e777869faf90dc19310fcd6332747122aed2b29
159
+ tzinfo (2.0.6) sha256=8daf828cc77bcf7d63b0e3bdb6caa47e2272dcfaf4fbfe46f8c3a9df087a829b
160
+ webmock (3.26.1) sha256=4f696fb57c90a827c20aadb2d4f9058bbff10f7f043bd0d4c3f58791143b1cd7
161
+
101
162
  BUNDLED WITH
102
- 2.5.4
163
+ 4.0.6
@@ -26,7 +26,7 @@ class ReeSpecCli::CommandBuilder
26
26
  c.option "--parallel PROCESS_COUNT", String, "Run specs in parallel processes (e.g. --parallel 15, 15 processes)"
27
27
  c.option "--only-failed", "Run only failed specs from previous run"
28
28
 
29
- c.option "-f SPEC_FILE", "--fule SPEC_FILE", String, "List of spec files" do |f|
29
+ c.option "-f SPEC_FILE", "--file SPEC_FILE", String, "List of spec files" do |f|
30
30
  files ||= []
31
31
  files << f
32
32
  end
@@ -58,8 +58,9 @@ class ReeSpecCli::CommandBuilder
58
58
  process_count = Integer(options.parallel)
59
59
  end
60
60
 
61
- if package_names.size > 1
62
- files = []
61
+ if package_names.any? && files.any?
62
+ puts "Error: -p/--package and -f/--file cannot be used together"
63
+ exit 1
63
64
  end
64
65
 
65
66
  project_path = options.project_path || File.expand_path(Dir.pwd)
@@ -17,9 +17,13 @@ class ReeSpecCli::RunSpecs
17
17
  def call(package_names, spec_matcher, tag, files, only_failed, project_path, process_count)
18
18
  init_ree_project(project_path)
19
19
 
20
- run_all = package_names.empty?
21
- packages = filter_packages_to_run(package_names, tag, run_all)
22
- jobs, meta_index = get_jobs(packages, spec_matcher, files, only_failed)
20
+ if files.any?
21
+ jobs, meta_index = get_jobs_from_files(files, only_failed)
22
+ else
23
+ run_all = package_names.empty?
24
+ packages = filter_packages_to_run(package_names, tag, run_all)
25
+ jobs, meta_index = get_jobs(packages, spec_matcher, only_failed)
26
+ end
23
27
  processes = build_processes(process_count)
24
28
  error_files = []
25
29
  success_files = []
@@ -157,20 +161,70 @@ class ReeSpecCli::RunSpecs
157
161
  end
158
162
  end
159
163
 
160
- def get_jobs(package_names, spec_matcher, files, only_failed)
164
+ def get_jobs_from_files(files, only_failed)
165
+ prev_scan_meta = read_prev_scan_metadata
166
+ scan_index = index_by(prev_scan_meta) { _1.abs_path }
167
+ packages_index = index_by(all_packages) { Ree::PathHelper.abs_package_dir(_1) }
168
+ result = []
169
+
170
+ files.each do |file|
171
+ abs_path, line_number = parse_file_with_line_number(file)
172
+
173
+ if !File.exist?(abs_path)
174
+ puts "File not found: #{file}"
175
+ next
176
+ end
177
+
178
+ package = find_package_for_file(abs_path, packages_index)
179
+
180
+ if package.nil?
181
+ puts "Could not determine package for: #{file}"
182
+ next
183
+ end
184
+
185
+ job_path = line_number ? "#{abs_path}:#{line_number}" : abs_path
186
+ result << Job.new(package: package, abs_path: job_path)
187
+ end
188
+
189
+ apply_sorting_and_filtering(result, scan_index, only_failed, prev_scan_meta)
190
+ end
191
+
192
+ def parse_file_with_line_number(file)
193
+ expanded = File.expand_path(file)
194
+
195
+ if expanded =~ /^(.+\.rb):(\d+)$/
196
+ [$1, $2]
197
+ else
198
+ [expanded, nil]
199
+ end
200
+ end
201
+
202
+ def find_package_for_file(abs_path, packages_index)
203
+ packages_index.each do |package_dir, package|
204
+ return package if abs_path.start_with?(package_dir)
205
+ end
206
+
207
+ nil
208
+ end
209
+
210
+ def get_jobs(package_names, spec_matcher, only_failed)
161
211
  prev_scan_meta = read_prev_scan_metadata
162
212
  result = []
163
213
  packages = package_names.map { packages_facade.get_package(_1) }
164
214
  scan_index = index_by(prev_scan_meta) { _1.abs_path }
165
215
 
166
216
  packages.each do |package|
167
- spec_files = get_spec_files(package, spec_matcher, files)
217
+ spec_files = get_spec_files(package, spec_matcher)
168
218
 
169
219
  spec_files.each do |abs_path|
170
220
  result << Job.new(package:, abs_path:)
171
221
  end
172
222
  end
173
223
 
224
+ apply_sorting_and_filtering(result, scan_index, only_failed, prev_scan_meta)
225
+ end
226
+
227
+ def apply_sorting_and_filtering(result, scan_index, only_failed, prev_scan_meta)
174
228
  if only_failed
175
229
  result = result.select do |item|
176
230
  if scan_index[item.abs_path]
@@ -197,7 +251,7 @@ class ReeSpecCli::RunSpecs
197
251
  [result, scan_index]
198
252
  end
199
253
 
200
- def get_spec_files(package, spec_matcher, files)
254
+ def get_spec_files(package, spec_matcher)
201
255
  package_dir = Ree::PathHelper.abs_package_dir(package)
202
256
  all_specs = Dir["#{package_dir}/spec/**/*_spec.rb"]
203
257
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ReeSpec
4
- VERSION = "0.0.11"
4
+ VERSION = "0.0.12"
5
5
  end
metadata CHANGED
@@ -1,14 +1,28 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ree_spec
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.11
4
+ version: 0.0.12
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ruslan Gatiyatov
8
8
  bindir: exe
9
9
  cert_chain: []
10
- date: 2025-06-16 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
11
  dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: logger
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - ">="
17
+ - !ruby/object:Gem::Version
18
+ version: '0'
19
+ type: :runtime
20
+ prerelease: false
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - ">="
24
+ - !ruby/object:Gem::Version
25
+ version: '0'
12
26
  - !ruby/object:Gem::Dependency
13
27
  name: ree
14
28
  requirement: !ruby/object:Gem::Requirement
@@ -112,14 +126,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
112
126
  requirements:
113
127
  - - ">="
114
128
  - !ruby/object:Gem::Version
115
- version: '3.1'
129
+ version: '3.4'
116
130
  required_rubygems_version: !ruby/object:Gem::Requirement
117
131
  requirements:
118
132
  - - ">="
119
133
  - !ruby/object:Gem::Version
120
134
  version: '0'
121
135
  requirements: []
122
- rubygems_version: 3.6.2
136
+ rubygems_version: 4.0.3
123
137
  specification_version: 4
124
138
  summary: Ree extensions for Rspec framework
125
139
  test_files: []