quality 37.0.0 → 38.0.1
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 +4 -4
- data/README.md +3 -1
- data/lib/quality/command_output_processor.rb +1 -3
- data/lib/quality/directory_of_classes.rb +8 -0
- data/lib/quality/quality_checker.rb +6 -8
- data/lib/quality/tools/bigfiles.rb +1 -3
- data/lib/quality/tools/cane.rb +1 -3
- data/lib/quality/tools/punchlist.rb +1 -3
- data/lib/quality/version.rb +1 -1
- data/quality.gemspec +9 -10
- metadata +55 -22
- data/lib/quality/threshold.rb +0 -28
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 48e5a658826a5173325eff4e5619770ea522511d7abfbcaab02aa34c56bd7ae6
|
4
|
+
data.tar.gz: 4e8e75ced5fa378412558485e865e5d0a0713ce4a549db77a235d0a6bf575fdc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bad91c1209954febba291e7d91a86624ed722f7c51475c2a2bd284ec7814c6963bd3ca157a5967535ac611a01d76112f64d029381404be97c7f563d1e5dfac22
|
7
|
+
data.tar.gz: 5b155a764d1387c64faceb9998fc7539e9753cb7bc2c7fd2c79ec90feeebf4db257e7060c629b3fbd8c1717d89fee2401a4bc2a93860b1efc4b62cf5ceb56f96
|
data/README.md
CHANGED
@@ -149,7 +149,9 @@ updates.
|
|
149
149
|
|
150
150
|
This includes RuboCop upgrades - the quality gem locks in a specific
|
151
151
|
minor version of RuboCop to avoid your metrics being bumped and
|
152
|
-
breaking your build.
|
152
|
+
breaking your build. This lock affects both the Docker-based quality
|
153
|
+
gem (helping to ensure build stability for floating major versions) as
|
154
|
+
well as the gem when included directly in your project's gems.
|
153
155
|
|
154
156
|
Expect your build to break on major upgrades if you use RuboCop.
|
155
157
|
|
@@ -23,9 +23,7 @@ module Quality
|
|
23
23
|
|
24
24
|
def process_file(file, &count_violations_on_line)
|
25
25
|
out = ''
|
26
|
-
while (@current_line = file.gets)
|
27
|
-
out += process_line(&count_violations_on_line)
|
28
|
-
end
|
26
|
+
out += process_line(&count_violations_on_line) while (@current_line = file.gets)
|
29
27
|
out
|
30
28
|
end
|
31
29
|
|
@@ -1,5 +1,13 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
# this 'time' require statement is needed as of active_support, which
|
4
|
+
# tries to remap the xmlschema method. Turns out there are two 'Time'
|
5
|
+
# classes - methods get added when you "require 'time'".
|
6
|
+
#
|
7
|
+
# https://github.com/rails/rails/pull/40859
|
8
|
+
#
|
9
|
+
# https://app.circleci.com/pipelines/github/apiology/checkoff/46/workflows/27702e5f-ce86-4960-8b5e-f5277ddf159e/jobs/124
|
10
|
+
require 'time'
|
3
11
|
require 'active_support'
|
4
12
|
require 'active_support/core_ext'
|
5
13
|
|
@@ -3,7 +3,7 @@
|
|
3
3
|
require_relative 'command_output_processor'
|
4
4
|
require_relative 'process'
|
5
5
|
require_relative 'ruby_spawn'
|
6
|
-
|
6
|
+
require 'high_water_mark/threshold'
|
7
7
|
|
8
8
|
module Quality
|
9
9
|
# Runs a quality-checking, command, checks it agaist the existing
|
@@ -29,10 +29,10 @@ module Quality
|
|
29
29
|
@command_options = command_options
|
30
30
|
@verbose = verbose
|
31
31
|
@count_dir.mkdir(output_dir) unless @count_file.exists?(output_dir)
|
32
|
-
@threshold =
|
33
|
-
|
34
|
-
|
35
|
-
|
32
|
+
@threshold = HighWaterMark::Threshold.new(cmd,
|
33
|
+
count_io: count_io,
|
34
|
+
count_file: count_file,
|
35
|
+
output_dir: output_dir)
|
36
36
|
@process_class = process_class
|
37
37
|
end
|
38
38
|
|
@@ -110,9 +110,7 @@ module Quality
|
|
110
110
|
end
|
111
111
|
|
112
112
|
def report_violations(existing)
|
113
|
-
if existing != MAX_VIOLATIONS
|
114
|
-
@logger.puts "Existing violations: #{existing}"
|
115
|
-
end
|
113
|
+
@logger.puts "Existing violations: #{existing}" if existing != MAX_VIOLATIONS
|
116
114
|
@logger.puts "Found #{@violations} #{@cmd} violations"
|
117
115
|
end
|
118
116
|
|
@@ -8,9 +8,7 @@ module Quality
|
|
8
8
|
class Bigfiles < Tool
|
9
9
|
def bigfiles_args
|
10
10
|
args = ['--glob', "'#{source_and_doc_files_glob}'"]
|
11
|
-
unless source_files_exclude_glob == '{}'
|
12
|
-
args << ['--exclude-glob', "'#{source_files_exclude_glob}'"]
|
13
|
-
end
|
11
|
+
args << ['--exclude-glob', "'#{source_files_exclude_glob}'"] unless source_files_exclude_glob == '{}'
|
14
12
|
args.join(' ')
|
15
13
|
end
|
16
14
|
|
data/lib/quality/tools/cane.rb
CHANGED
@@ -20,9 +20,7 @@ module Quality
|
|
20
20
|
args = [
|
21
21
|
"-f '#{ruby_files_glob}'",
|
22
22
|
]
|
23
|
-
unless exclude_files.nil? || exclude_files.empty?
|
24
|
-
args += cane_exclude_args
|
25
|
-
end
|
23
|
+
args += cane_exclude_args unless exclude_files.nil? || exclude_files.empty?
|
26
24
|
args.join(' ')
|
27
25
|
end
|
28
26
|
|
@@ -7,9 +7,7 @@ module Quality
|
|
7
7
|
def punchlist_args
|
8
8
|
glob = "--glob '#{source_and_doc_files_glob}'"
|
9
9
|
regexp = " --regexp '#{punchlist_regexp}'" if punchlist_regexp
|
10
|
-
unless source_files_exclude_glob == '{}'
|
11
|
-
exclude = " --exclude-glob '#{source_files_exclude_glob}'"
|
12
|
-
end
|
10
|
+
exclude = " --exclude-glob '#{source_files_exclude_glob}'" unless source_files_exclude_glob == '{}'
|
13
11
|
|
14
12
|
args = glob
|
15
13
|
args += regexp if regexp
|
data/lib/quality/version.rb
CHANGED
data/quality.gemspec
CHANGED
@@ -42,21 +42,18 @@ Gem::Specification.new do |s|
|
|
42
42
|
#
|
43
43
|
# https://github.com/bbatsov/rubocop#installation
|
44
44
|
s.add_runtime_dependency('mdl')
|
45
|
-
s.add_runtime_dependency('rubocop', '~> 0.
|
46
|
-
#
|
47
|
-
s.add_runtime_dependency('bigfiles', ['>= 0.1'])
|
45
|
+
s.add_runtime_dependency('rubocop', '~> 0.92.0')
|
46
|
+
# 0.2.0 had a fatal bug
|
47
|
+
s.add_runtime_dependency('bigfiles', ['>= 0.1', '!= 0.2.0'])
|
48
48
|
s.add_runtime_dependency('brakeman')
|
49
|
+
s.add_runtime_dependency('high_water_mark')
|
49
50
|
s.add_runtime_dependency('punchlist', ['>= 1.1'])
|
50
51
|
s.add_runtime_dependency('rails_best_practices')
|
51
52
|
s.add_runtime_dependency('rubocop-minitest')
|
52
53
|
s.add_runtime_dependency('rubocop-rake')
|
54
|
+
# 1.19.0 was a RuboCop 0.51.0 compatibility release
|
55
|
+
s.add_runtime_dependency('faraday', ['~>1'])
|
53
56
|
s.add_runtime_dependency('rubocop-rspec', ['>=1.19.0'])
|
54
|
-
# not directly required - this is to workaround this issue:
|
55
|
-
# https://github.com/octokit/octokit.rb/issues/1177
|
56
|
-
#
|
57
|
-
# This causes:
|
58
|
-
# "uninitialized constant Faraday::Error::ClientError (NameError)"
|
59
|
-
s.add_runtime_dependency('faraday', ['<1'])
|
60
57
|
|
61
58
|
# need above 3.2.2 to support Ruby 2.0 syntax
|
62
59
|
#
|
@@ -72,9 +69,11 @@ Gem::Specification.new do |s|
|
|
72
69
|
s.add_development_dependency('minitest', ['~> 5'])
|
73
70
|
s.add_development_dependency('mocha')
|
74
71
|
s.add_development_dependency('pronto')
|
72
|
+
s.add_development_dependency('pronto-bigfiles')
|
75
73
|
s.add_development_dependency('pronto-flake8')
|
76
74
|
s.add_development_dependency('pronto-punchlist')
|
77
75
|
s.add_development_dependency('pronto-rubocop')
|
78
|
-
|
76
|
+
# https://github.com/advisories/GHSA-jppv-gw3r-w3q8
|
77
|
+
s.add_development_dependency('rake', ['>= 12.3.3'])
|
79
78
|
s.add_development_dependency('rspec')
|
80
79
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: quality
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 38.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Vince Broz
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-12-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -148,14 +148,14 @@ dependencies:
|
|
148
148
|
requirements:
|
149
149
|
- - "~>"
|
150
150
|
- !ruby/object:Gem::Version
|
151
|
-
version: 0.
|
151
|
+
version: 0.92.0
|
152
152
|
type: :runtime
|
153
153
|
prerelease: false
|
154
154
|
version_requirements: !ruby/object:Gem::Requirement
|
155
155
|
requirements:
|
156
156
|
- - "~>"
|
157
157
|
- !ruby/object:Gem::Version
|
158
|
-
version: 0.
|
158
|
+
version: 0.92.0
|
159
159
|
- !ruby/object:Gem::Dependency
|
160
160
|
name: bigfiles
|
161
161
|
requirement: !ruby/object:Gem::Requirement
|
@@ -163,6 +163,9 @@ dependencies:
|
|
163
163
|
- - ">="
|
164
164
|
- !ruby/object:Gem::Version
|
165
165
|
version: '0.1'
|
166
|
+
- - "!="
|
167
|
+
- !ruby/object:Gem::Version
|
168
|
+
version: 0.2.0
|
166
169
|
type: :runtime
|
167
170
|
prerelease: false
|
168
171
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -170,6 +173,9 @@ dependencies:
|
|
170
173
|
- - ">="
|
171
174
|
- !ruby/object:Gem::Version
|
172
175
|
version: '0.1'
|
176
|
+
- - "!="
|
177
|
+
- !ruby/object:Gem::Version
|
178
|
+
version: 0.2.0
|
173
179
|
- !ruby/object:Gem::Dependency
|
174
180
|
name: brakeman
|
175
181
|
requirement: !ruby/object:Gem::Requirement
|
@@ -184,6 +190,20 @@ dependencies:
|
|
184
190
|
- - ">="
|
185
191
|
- !ruby/object:Gem::Version
|
186
192
|
version: '0'
|
193
|
+
- !ruby/object:Gem::Dependency
|
194
|
+
name: high_water_mark
|
195
|
+
requirement: !ruby/object:Gem::Requirement
|
196
|
+
requirements:
|
197
|
+
- - ">="
|
198
|
+
- !ruby/object:Gem::Version
|
199
|
+
version: '0'
|
200
|
+
type: :runtime
|
201
|
+
prerelease: false
|
202
|
+
version_requirements: !ruby/object:Gem::Requirement
|
203
|
+
requirements:
|
204
|
+
- - ">="
|
205
|
+
- !ruby/object:Gem::Version
|
206
|
+
version: '0'
|
187
207
|
- !ruby/object:Gem::Dependency
|
188
208
|
name: punchlist
|
189
209
|
requirement: !ruby/object:Gem::Requirement
|
@@ -241,33 +261,33 @@ dependencies:
|
|
241
261
|
- !ruby/object:Gem::Version
|
242
262
|
version: '0'
|
243
263
|
- !ruby/object:Gem::Dependency
|
244
|
-
name:
|
264
|
+
name: faraday
|
245
265
|
requirement: !ruby/object:Gem::Requirement
|
246
266
|
requirements:
|
247
|
-
- - "
|
267
|
+
- - "~>"
|
248
268
|
- !ruby/object:Gem::Version
|
249
|
-
version: 1
|
269
|
+
version: '1'
|
250
270
|
type: :runtime
|
251
271
|
prerelease: false
|
252
272
|
version_requirements: !ruby/object:Gem::Requirement
|
253
273
|
requirements:
|
254
|
-
- - "
|
274
|
+
- - "~>"
|
255
275
|
- !ruby/object:Gem::Version
|
256
|
-
version: 1
|
276
|
+
version: '1'
|
257
277
|
- !ruby/object:Gem::Dependency
|
258
|
-
name:
|
278
|
+
name: rubocop-rspec
|
259
279
|
requirement: !ruby/object:Gem::Requirement
|
260
280
|
requirements:
|
261
|
-
- - "
|
281
|
+
- - ">="
|
262
282
|
- !ruby/object:Gem::Version
|
263
|
-
version:
|
283
|
+
version: 1.19.0
|
264
284
|
type: :runtime
|
265
285
|
prerelease: false
|
266
286
|
version_requirements: !ruby/object:Gem::Requirement
|
267
287
|
requirements:
|
268
|
-
- - "
|
288
|
+
- - ">="
|
269
289
|
- !ruby/object:Gem::Version
|
270
|
-
version:
|
290
|
+
version: 1.19.0
|
271
291
|
- !ruby/object:Gem::Dependency
|
272
292
|
name: ruby_parser
|
273
293
|
requirement: !ruby/object:Gem::Requirement
|
@@ -358,6 +378,20 @@ dependencies:
|
|
358
378
|
- - ">="
|
359
379
|
- !ruby/object:Gem::Version
|
360
380
|
version: '0'
|
381
|
+
- !ruby/object:Gem::Dependency
|
382
|
+
name: pronto-bigfiles
|
383
|
+
requirement: !ruby/object:Gem::Requirement
|
384
|
+
requirements:
|
385
|
+
- - ">="
|
386
|
+
- !ruby/object:Gem::Version
|
387
|
+
version: '0'
|
388
|
+
type: :development
|
389
|
+
prerelease: false
|
390
|
+
version_requirements: !ruby/object:Gem::Requirement
|
391
|
+
requirements:
|
392
|
+
- - ">="
|
393
|
+
- !ruby/object:Gem::Version
|
394
|
+
version: '0'
|
361
395
|
- !ruby/object:Gem::Dependency
|
362
396
|
name: pronto-flake8
|
363
397
|
requirement: !ruby/object:Gem::Requirement
|
@@ -404,16 +438,16 @@ dependencies:
|
|
404
438
|
name: rake
|
405
439
|
requirement: !ruby/object:Gem::Requirement
|
406
440
|
requirements:
|
407
|
-
- - "
|
441
|
+
- - ">="
|
408
442
|
- !ruby/object:Gem::Version
|
409
|
-
version:
|
443
|
+
version: 12.3.3
|
410
444
|
type: :development
|
411
445
|
prerelease: false
|
412
446
|
version_requirements: !ruby/object:Gem::Requirement
|
413
447
|
requirements:
|
414
|
-
- - "
|
448
|
+
- - ">="
|
415
449
|
- !ruby/object:Gem::Version
|
416
|
-
version:
|
450
|
+
version: 12.3.3
|
417
451
|
- !ruby/object:Gem::Dependency
|
418
452
|
name: rspec
|
419
453
|
requirement: !ruby/object:Gem::Requirement
|
@@ -448,7 +482,6 @@ files:
|
|
448
482
|
- lib/quality/rake/task.rb
|
449
483
|
- lib/quality/ruby_spawn.rb
|
450
484
|
- lib/quality/runner.rb
|
451
|
-
- lib/quality/threshold.rb
|
452
485
|
- lib/quality/tool.rb
|
453
486
|
- lib/quality/tools/bigfiles.rb
|
454
487
|
- lib/quality/tools/brakeman.rb
|
@@ -474,7 +507,7 @@ homepage: http://github.com/apiology/quality
|
|
474
507
|
licenses:
|
475
508
|
- MIT
|
476
509
|
metadata: {}
|
477
|
-
post_install_message:
|
510
|
+
post_install_message:
|
478
511
|
rdoc_options: []
|
479
512
|
require_paths:
|
480
513
|
- lib
|
@@ -490,7 +523,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
490
523
|
version: '0'
|
491
524
|
requirements: []
|
492
525
|
rubygems_version: 3.0.3
|
493
|
-
signing_key:
|
526
|
+
signing_key:
|
494
527
|
specification_version: 4
|
495
528
|
summary: Code quality tools for Ruby
|
496
529
|
test_files: []
|
data/lib/quality/threshold.rb
DELETED
@@ -1,28 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Quality
|
4
|
-
# Calculate threshold for quality gem tool
|
5
|
-
class Threshold
|
6
|
-
attr_reader :tool_name
|
7
|
-
|
8
|
-
def initialize(tool_name,
|
9
|
-
count_file: File,
|
10
|
-
count_io: IO,
|
11
|
-
output_dir: 'metrics')
|
12
|
-
@tool_name = tool_name
|
13
|
-
@count_file = count_file
|
14
|
-
@count_io = count_io
|
15
|
-
@filename = File.join(output_dir, "#{tool_name}_high_water_mark")
|
16
|
-
end
|
17
|
-
|
18
|
-
def threshold
|
19
|
-
return @count_io.read(@filename).to_i if @count_file.exist?(@filename)
|
20
|
-
end
|
21
|
-
|
22
|
-
def write_violations(new_violations)
|
23
|
-
@count_file.open(@filename, 'w') do |file|
|
24
|
-
file.write(new_violations.to_s + "\n")
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|