quality 36.1.0 → 38.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +3 -2
- data/lib/quality/command_output_processor.rb +1 -3
- data/lib/quality/quality_checker.rb +8 -15
- data/lib/quality/tools/bigfiles.rb +3 -3
- data/lib/quality/tools/cane.rb +1 -3
- data/lib/quality/tools/punchlist.rb +1 -3
- data/lib/quality/tools/rubocop.rb +2 -0
- data/lib/quality/version.rb +1 -1
- data/quality.gemspec +10 -7
- metadata +86 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 313add6992c8a1f267328a1806dd28365c4d1a9f5c6bd1c8647cab8ea0dcc13f
|
4
|
+
data.tar.gz: 239a065dbee555879d31febe98f182351899bbc4d60546f842eed7228a076d6d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: de7208c080d5b76b4315d1cb12ad1c8cb231c8a3e41de3fb4a969ae3111a90d69190d23bcdcf7a6f29eace8fb50b2dbcfb412bd93ba97b85ae3600bcb4a78143
|
7
|
+
data.tar.gz: f1e306ac0000e7687f098b8e30dfbc82fa58edccb040904ae979573c261c20068a2454a8e7bb62344d534de9a8aeb2374879e6db2df51ba2238d2c92156c9703
|
data/README.md
CHANGED
@@ -1,7 +1,6 @@
|
|
1
1
|
# Quality -- code quality ratchet for Ruby
|
2
2
|
|
3
3
|
[![Build Status](https://travis-ci.org/apiology/quality.png)](https://travis-ci.org/apiology/quality)
|
4
|
-
[![Coverage Status](https://coveralls.io/repos/apiology/quality/badge.png?branch=master)](https://coveralls.io/r/apiology/quality?branch=master)
|
5
4
|
|
6
5
|
## Overview
|
7
6
|
|
@@ -150,7 +149,9 @@ updates.
|
|
150
149
|
|
151
150
|
This includes RuboCop upgrades - the quality gem locks in a specific
|
152
151
|
minor version of RuboCop to avoid your metrics being bumped and
|
153
|
-
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.
|
154
155
|
|
155
156
|
Expect your build to break on major upgrades if you use RuboCop.
|
156
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
|
|
@@ -3,6 +3,7 @@
|
|
3
3
|
require_relative 'command_output_processor'
|
4
4
|
require_relative 'process'
|
5
5
|
require_relative 'ruby_spawn'
|
6
|
+
require 'high_water_mark/threshold'
|
6
7
|
|
7
8
|
module Quality
|
8
9
|
# Runs a quality-checking, command, checks it agaist the existing
|
@@ -28,7 +29,10 @@ module Quality
|
|
28
29
|
@command_options = command_options
|
29
30
|
@verbose = verbose
|
30
31
|
@count_dir.mkdir(output_dir) unless @count_file.exists?(output_dir)
|
31
|
-
@
|
32
|
+
@threshold = HighWaterMark::Threshold.new(cmd,
|
33
|
+
count_io: count_io,
|
34
|
+
count_file: count_file,
|
35
|
+
output_dir: output_dir)
|
32
36
|
@process_class = process_class
|
33
37
|
end
|
34
38
|
|
@@ -70,14 +74,7 @@ module Quality
|
|
70
74
|
MAX_VIOLATIONS = 9_999_999_999
|
71
75
|
|
72
76
|
def existing_violations
|
73
|
-
@existing_violations ||=
|
74
|
-
begin
|
75
|
-
if @count_file.exist?(@filename)
|
76
|
-
@count_io.read(@filename).to_i
|
77
|
-
else
|
78
|
-
MAX_VIOLATIONS
|
79
|
-
end
|
80
|
-
end
|
77
|
+
@existing_violations ||= (@threshold.threshold || MAX_VIOLATIONS)
|
81
78
|
end
|
82
79
|
|
83
80
|
def rendered_full_cmd
|
@@ -113,9 +110,7 @@ module Quality
|
|
113
110
|
end
|
114
111
|
|
115
112
|
def report_violations(existing)
|
116
|
-
if existing != MAX_VIOLATIONS
|
117
|
-
@logger.puts "Existing violations: #{existing}"
|
118
|
-
end
|
113
|
+
@logger.puts "Existing violations: #{existing}" if existing != MAX_VIOLATIONS
|
119
114
|
@logger.puts "Found #{@violations} #{@cmd} violations"
|
120
115
|
end
|
121
116
|
|
@@ -126,9 +121,7 @@ module Quality
|
|
126
121
|
end
|
127
122
|
|
128
123
|
def write_violations(new_violations)
|
129
|
-
@
|
130
|
-
file.write(new_violations.to_s + "\n")
|
131
|
-
end
|
124
|
+
@threshold.write_violations(new_violations)
|
132
125
|
end
|
133
126
|
end
|
134
127
|
end
|
@@ -1,14 +1,14 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require_relative '../tool'
|
4
|
+
|
3
5
|
module Quality
|
4
6
|
module Tools
|
5
7
|
# Adds 'bigfiles' tool support to quality gem
|
6
8
|
class Bigfiles < Tool
|
7
9
|
def bigfiles_args
|
8
10
|
args = ['--glob', "'#{source_and_doc_files_glob}'"]
|
9
|
-
unless source_files_exclude_glob == '{}'
|
10
|
-
args << ['--exclude-glob', "'#{source_files_exclude_glob}'"]
|
11
|
-
end
|
11
|
+
args << ['--exclude-glob', "'#{source_files_exclude_glob}'"] unless source_files_exclude_glob == '{}'
|
12
12
|
args.join(' ')
|
13
13
|
end
|
14
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
@@ -1,4 +1,3 @@
|
|
1
|
-
# -*- encoding: utf-8 -*-
|
2
1
|
# frozen_string_literal: true
|
3
2
|
|
4
3
|
# ; -*-Ruby-*-
|
@@ -43,12 +42,17 @@ Gem::Specification.new do |s|
|
|
43
42
|
#
|
44
43
|
# https://github.com/bbatsov/rubocop#installation
|
45
44
|
s.add_runtime_dependency('mdl')
|
46
|
-
s.add_runtime_dependency('rubocop', '~> 0.
|
47
|
-
#
|
48
|
-
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'])
|
49
48
|
s.add_runtime_dependency('brakeman')
|
49
|
+
s.add_runtime_dependency('high_water_mark')
|
50
50
|
s.add_runtime_dependency('punchlist', ['>= 1.1'])
|
51
51
|
s.add_runtime_dependency('rails_best_practices')
|
52
|
+
s.add_runtime_dependency('rubocop-minitest')
|
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'])
|
52
56
|
s.add_runtime_dependency('rubocop-rspec', ['>=1.19.0'])
|
53
57
|
|
54
58
|
# need above 3.2.2 to support Ruby 2.0 syntax
|
@@ -63,13 +67,12 @@ Gem::Specification.new do |s|
|
|
63
67
|
# Workaround for
|
64
68
|
# https://github.com/bundler/bundler/issues/3401
|
65
69
|
s.add_development_dependency('minitest', ['~> 5'])
|
66
|
-
# https://github.com/apiology/quality/issues/121
|
67
|
-
# https://github.com/freerange/mocha/issues/436
|
68
70
|
s.add_development_dependency('mocha')
|
69
71
|
s.add_development_dependency('pronto')
|
72
|
+
s.add_development_dependency('pronto-bigfiles')
|
70
73
|
s.add_development_dependency('pronto-flake8')
|
71
74
|
s.add_development_dependency('pronto-punchlist')
|
72
|
-
s.add_development_dependency('pronto-reek')
|
73
75
|
s.add_development_dependency('pronto-rubocop')
|
74
76
|
s.add_development_dependency('rake', ['!= 10.4.2'])
|
77
|
+
s.add_development_dependency('rspec')
|
75
78
|
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.0
|
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:
|
11
|
+
date: 2020-09-27 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
|
@@ -212,6 +232,48 @@ dependencies:
|
|
212
232
|
- - ">="
|
213
233
|
- !ruby/object:Gem::Version
|
214
234
|
version: '0'
|
235
|
+
- !ruby/object:Gem::Dependency
|
236
|
+
name: rubocop-minitest
|
237
|
+
requirement: !ruby/object:Gem::Requirement
|
238
|
+
requirements:
|
239
|
+
- - ">="
|
240
|
+
- !ruby/object:Gem::Version
|
241
|
+
version: '0'
|
242
|
+
type: :runtime
|
243
|
+
prerelease: false
|
244
|
+
version_requirements: !ruby/object:Gem::Requirement
|
245
|
+
requirements:
|
246
|
+
- - ">="
|
247
|
+
- !ruby/object:Gem::Version
|
248
|
+
version: '0'
|
249
|
+
- !ruby/object:Gem::Dependency
|
250
|
+
name: rubocop-rake
|
251
|
+
requirement: !ruby/object:Gem::Requirement
|
252
|
+
requirements:
|
253
|
+
- - ">="
|
254
|
+
- !ruby/object:Gem::Version
|
255
|
+
version: '0'
|
256
|
+
type: :runtime
|
257
|
+
prerelease: false
|
258
|
+
version_requirements: !ruby/object:Gem::Requirement
|
259
|
+
requirements:
|
260
|
+
- - ">="
|
261
|
+
- !ruby/object:Gem::Version
|
262
|
+
version: '0'
|
263
|
+
- !ruby/object:Gem::Dependency
|
264
|
+
name: faraday
|
265
|
+
requirement: !ruby/object:Gem::Requirement
|
266
|
+
requirements:
|
267
|
+
- - "~>"
|
268
|
+
- !ruby/object:Gem::Version
|
269
|
+
version: '1'
|
270
|
+
type: :runtime
|
271
|
+
prerelease: false
|
272
|
+
version_requirements: !ruby/object:Gem::Requirement
|
273
|
+
requirements:
|
274
|
+
- - "~>"
|
275
|
+
- !ruby/object:Gem::Version
|
276
|
+
version: '1'
|
215
277
|
- !ruby/object:Gem::Dependency
|
216
278
|
name: rubocop-rspec
|
217
279
|
requirement: !ruby/object:Gem::Requirement
|
@@ -317,7 +379,7 @@ dependencies:
|
|
317
379
|
- !ruby/object:Gem::Version
|
318
380
|
version: '0'
|
319
381
|
- !ruby/object:Gem::Dependency
|
320
|
-
name: pronto-
|
382
|
+
name: pronto-bigfiles
|
321
383
|
requirement: !ruby/object:Gem::Requirement
|
322
384
|
requirements:
|
323
385
|
- - ">="
|
@@ -331,7 +393,7 @@ dependencies:
|
|
331
393
|
- !ruby/object:Gem::Version
|
332
394
|
version: '0'
|
333
395
|
- !ruby/object:Gem::Dependency
|
334
|
-
name: pronto-
|
396
|
+
name: pronto-flake8
|
335
397
|
requirement: !ruby/object:Gem::Requirement
|
336
398
|
requirements:
|
337
399
|
- - ">="
|
@@ -345,7 +407,7 @@ dependencies:
|
|
345
407
|
- !ruby/object:Gem::Version
|
346
408
|
version: '0'
|
347
409
|
- !ruby/object:Gem::Dependency
|
348
|
-
name: pronto-
|
410
|
+
name: pronto-punchlist
|
349
411
|
requirement: !ruby/object:Gem::Requirement
|
350
412
|
requirements:
|
351
413
|
- - ">="
|
@@ -386,6 +448,20 @@ dependencies:
|
|
386
448
|
- - "!="
|
387
449
|
- !ruby/object:Gem::Version
|
388
450
|
version: 10.4.2
|
451
|
+
- !ruby/object:Gem::Dependency
|
452
|
+
name: rspec
|
453
|
+
requirement: !ruby/object:Gem::Requirement
|
454
|
+
requirements:
|
455
|
+
- - ">="
|
456
|
+
- !ruby/object:Gem::Version
|
457
|
+
version: '0'
|
458
|
+
type: :development
|
459
|
+
prerelease: false
|
460
|
+
version_requirements: !ruby/object:Gem::Requirement
|
461
|
+
requirements:
|
462
|
+
- - ">="
|
463
|
+
- !ruby/object:Gem::Version
|
464
|
+
version: '0'
|
389
465
|
description: Quality is a tool that runs quality checks on your code using community
|
390
466
|
tools, and makes sure your numbers don't get any worse over time. Just add 'rake
|
391
467
|
quality' as part of your Continuous Integration
|
@@ -431,7 +507,7 @@ homepage: http://github.com/apiology/quality
|
|
431
507
|
licenses:
|
432
508
|
- MIT
|
433
509
|
metadata: {}
|
434
|
-
post_install_message:
|
510
|
+
post_install_message:
|
435
511
|
rdoc_options: []
|
436
512
|
require_paths:
|
437
513
|
- lib
|
@@ -447,7 +523,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
447
523
|
version: '0'
|
448
524
|
requirements: []
|
449
525
|
rubygems_version: 3.0.3
|
450
|
-
signing_key:
|
526
|
+
signing_key:
|
451
527
|
specification_version: 4
|
452
528
|
summary: Code quality tools for Ruby
|
453
529
|
test_files: []
|