rubycritic 4.3.3 → 4.5.2

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: 44375d4c40c08e4261e91751ffa2d5dec2128df68fb2f246316cb7934f1a4031
4
- data.tar.gz: 6e9354a069d577119f62cd836218dd2a102c04fb93cf17e38e32c703735a2bfd
3
+ metadata.gz: 652fcfc312c74fc2e3192e2ce98fb03055308ce5760d6697dd58d04eb59df508
4
+ data.tar.gz: b8c845a71d1277a0e569f2a43b477fb8b399f1800c0ff420893c2bf89f447dbd
5
5
  SHA512:
6
- metadata.gz: 68a71b2e8561a0ff52d05d2458ff8858f0127603d929190f57a8bbf390e00efb77a9181441760debe66cae88a74983606e235afd729e7a2730571d47c8360810
7
- data.tar.gz: 2e330e0a44b4aaf6aa1ab5f8bd3268303fb041346dfccf25ca0c2079c818a568cd9a77f5c5dad3e7ea9ece49c8c3deed7a1dcd13fcff7b81ee13e0e2c8e967d8
6
+ metadata.gz: fb084002ab283454294ae6a7d5e87824c5fff66b77d107f9f04fd22a10153cbc2b3ef56635371fc55037d4e8af9276f6563c39de6d3ab2c33d600d0def59b30c
7
+ data.tar.gz: 456aa8aaaa6115c8fcb72430ee7db5ae5f2f94cf5bd6fa5f5ee344f95cc46bd5544e6235138a43162810916a52f501695e3e51d9d6c510bb7ddd303a696d4831
@@ -1,4 +1,26 @@
1
- # master [(unreleased)](https://github.com/whitesmith/rubycritic/compare/v4.3.3...master)
1
+ # master [(unreleased)](https://github.com/whitesmith/rubycritic/compare/v4.5.1...master)
2
+
3
+ # v4.5.2 / 2020-08-20 [(commits)](https://github.com/whitesmith/rubycritic/compare/v4.5.1...v4.5.2)
4
+
5
+ * [BUGFIX] Handle simplecov v0.19 and install appraisal (by [@MZiserman][])
6
+
7
+ # v4.5.1 / 2020-06-29 [(commits)](https://github.com/whitesmith/rubycritic/compare/v4.5.0...v4.5.1)
8
+
9
+ * [BUGFIX] Handle git --name-status Copied (C) operation (by [@rizalmuthi][])
10
+
11
+ # v4.5.0 / 2020-05-14 [(commits)](https://github.com/whitesmith/rubycritic/compare/v4.4.1...v4.5.0)
12
+
13
+ * [CHANGE] Relax `launchy` version dependency requirement
14
+ * [CHANGE] Drop support for ruby 2.3 (by [@joshrpowell][])
15
+ * [CHANGE] Update Reek dependency to '~> 6.0', '< 7.0' (by [@joshrpowell][])
16
+
17
+ # v4.4.1 / 2020-02-20 [(commits)](https://github.com/whitesmith/rubycritic/compare/v4.4.0...v4.4.1)
18
+
19
+ * [CHANGE] Rewrite how churn is calculated to make it faster
20
+
21
+ # v4.4.0 / 2020-02-15 [(commits)](https://github.com/whitesmith/rubycritic/compare/v4.3.3...v4.4.0)
22
+
23
+ * [FEATURE] Take into account the `.flayignore` file (by [@Flink][])
2
24
 
3
25
  # v4.3.3 / 2020-01-31 [(commits)](https://github.com/whitesmith/rubycritic/compare/v4.3.2...v4.3.3)
4
26
 
@@ -325,3 +347,4 @@
325
347
  [@Adre]: https://github.com/Adre
326
348
  [@GeoffTidey]: https://github.com/GeoffTidey
327
349
  [@lloydwatkin]: https://github.com/lloydwatkin
350
+ [@Flink]: https://github.com/Flink
data/README.md CHANGED
@@ -216,10 +216,10 @@ See [formatters](docs/formatters.md)
216
216
 
217
217
  RubyCritic is supporting Ruby versions:
218
218
 
219
- * 2.3
220
219
  * 2.4
221
220
  * 2.5
222
221
  * 2.6
222
+ * 2.7
223
223
 
224
224
  ## Improving RubyCritic
225
225
 
@@ -107,11 +107,15 @@ module RubyCritic
107
107
  # All results that are above the SimpleCov.merge_timeout will be
108
108
  # dropped. Returns an array of SimpleCov::Result items.
109
109
  def results
110
- array = []
111
- resultset.each do |command_name, data|
112
- array << ::SimpleCov::Result.from_hash(command_name => data)
110
+ if Gem.loaded_specs['simplecov'].version >= Gem::Version.new('0.19')
111
+ ::SimpleCov::Result.from_hash(resultset)
112
+ else
113
+ array = []
114
+ resultset.each do |command_name, data|
115
+ array << ::SimpleCov::Result.from_hash(command_name => data)
116
+ end
117
+ array
113
118
  end
114
- array
115
119
  end
116
120
  end
117
121
  end
@@ -6,6 +6,7 @@ module RubyCritic
6
6
  class Flay < ::Flay
7
7
  def initialize(paths)
8
8
  super()
9
+ paths = PathExpander.new([], '').filter_files(paths, DEFAULT_IGNORE)
9
10
  process(*paths)
10
11
  analyze
11
12
  end
@@ -221,7 +221,7 @@ header {
221
221
  }
222
222
  .sidebar-nav li a:hover {color:#9B111D;}
223
223
  .sidebar-nav li a i,.sidebar-nav li a img {font-size:18px;display:block;margin:0 auto;}
224
- /*End of Layout Stlyes*/
224
+ /*End of Layout Styles*/
225
225
 
226
226
  .fadeIn {-webkit-animation: fadein 2s; /* Safari, Chrome and Opera > 12.1 */
227
227
  -moz-animation: fadein 2s; /* Firefox < 16 */
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'tty/which'
4
+ require 'rubycritic/source_control_systems/git/churn'
4
5
 
5
6
  module RubyCritic
6
7
  module SourceControlSystem
@@ -28,12 +29,16 @@ module RubyCritic
28
29
  'Git'
29
30
  end
30
31
 
32
+ def churn
33
+ @churn ||= Churn.new
34
+ end
35
+
31
36
  def revisions_count(path)
32
- git("log --follow --format=%h #{path.shellescape}").count("\n")
37
+ churn.revisions_count(path)
33
38
  end
34
39
 
35
40
  def date_of_last_commit(path)
36
- git("log -1 --date=iso --format=%ad #{path.shellescape}").chomp!
41
+ churn.date_of_last_commit(path)
37
42
  end
38
43
 
39
44
  def revision?
@@ -0,0 +1,87 @@
1
+ # frozen_string_literal: true
2
+
3
+ module RubyCritic
4
+ module SourceControlSystem
5
+ class Git < Base
6
+ Stats = Struct.new(:count, :date)
7
+
8
+ class Renames
9
+ def initialize
10
+ @data = {}
11
+ end
12
+
13
+ def renamed(from, to)
14
+ current = current(to)
15
+ @data[from] = current
16
+ end
17
+
18
+ def current(name)
19
+ @data.fetch(name, name)
20
+ end
21
+ end
22
+
23
+ class Churn
24
+ def initialize
25
+ @renames = Renames.new
26
+ @date = nil
27
+ @stats = {}
28
+
29
+ call
30
+ end
31
+
32
+ def revisions_count(path)
33
+ stats(path).count
34
+ end
35
+
36
+ def date_of_last_commit(path)
37
+ stats(path).date
38
+ end
39
+
40
+ private
41
+
42
+ def call
43
+ Git
44
+ .git("log --all --date=iso --follow --format='format:date:%x09%ad' --name-status .")
45
+ .split("\n")
46
+ .reject(&:empty?)
47
+ .each { |line| process_line(line) }
48
+ end
49
+
50
+ def process_line(line)
51
+ operation, *rest = line.split("\t")
52
+
53
+ case operation
54
+ when /^date:/
55
+ process_date(*rest)
56
+ when /^[RC]/
57
+ process_rename(*rest)
58
+ else
59
+ process_file(*rest)
60
+ end
61
+ end
62
+
63
+ def process_date(date)
64
+ @date = date
65
+ end
66
+
67
+ def process_rename(from, to)
68
+ @renames.renamed(from, to)
69
+ process_file(to)
70
+ end
71
+
72
+ def process_file(filename)
73
+ record_commit(@renames.current(filename), @date)
74
+ end
75
+
76
+ def record_commit(filename, date)
77
+ stats = @stats[filename] ||= Stats.new(0, date)
78
+ stats.count += 1
79
+ end
80
+
81
+ def stats(path)
82
+ @stats.fetch(path, Stats.new(0))
83
+ end
84
+ end
85
+ end
86
+ end
87
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RubyCritic
4
- VERSION = '4.3.3'.freeze
4
+ VERSION = '4.5.2'.freeze
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubycritic
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.3.3
4
+ version: 4.5.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Guilherme Simoes
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-01-31 00:00:00.000000000 Z
11
+ date: 2020-09-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: flay
@@ -42,16 +42,16 @@ dependencies:
42
42
  name: launchy
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - '='
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
- version: 2.4.3
47
+ version: 2.0.0
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - '='
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
- version: 2.4.3
54
+ version: 2.0.0
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: parser
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -86,20 +86,20 @@ dependencies:
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: '5.0'
89
+ version: '6.0'
90
90
  - - "<"
91
91
  - !ruby/object:Gem::Version
92
- version: '6.0'
92
+ version: '7.0'
93
93
  type: :runtime
94
94
  prerelease: false
95
95
  version_requirements: !ruby/object:Gem::Requirement
96
96
  requirements:
97
97
  - - "~>"
98
98
  - !ruby/object:Gem::Version
99
- version: '5.0'
99
+ version: '6.0'
100
100
  - - "<"
101
101
  - !ruby/object:Gem::Version
102
- version: '6.0'
102
+ version: '7.0'
103
103
  - !ruby/object:Gem::Dependency
104
104
  name: ruby_parser
105
105
  requirement: !ruby/object:Gem::Requirement
@@ -157,85 +157,99 @@ dependencies:
157
157
  - !ruby/object:Gem::Version
158
158
  version: '1.0'
159
159
  - !ruby/object:Gem::Dependency
160
- name: aruba
160
+ name: appraisal
161
161
  requirement: !ruby/object:Gem::Requirement
162
162
  requirements:
163
163
  - - ">="
164
164
  - !ruby/object:Gem::Version
165
- version: 0.12.0
166
- - - "~>"
167
- - !ruby/object:Gem::Version
168
- version: '0.12'
165
+ version: '0'
169
166
  type: :development
170
167
  prerelease: false
171
168
  version_requirements: !ruby/object:Gem::Requirement
172
169
  requirements:
170
+ - - ">="
171
+ - !ruby/object:Gem::Version
172
+ version: '0'
173
+ - !ruby/object:Gem::Dependency
174
+ name: aruba
175
+ requirement: !ruby/object:Gem::Requirement
176
+ requirements:
177
+ - - "~>"
178
+ - !ruby/object:Gem::Version
179
+ version: '0.12'
173
180
  - - ">="
174
181
  - !ruby/object:Gem::Version
175
182
  version: 0.12.0
183
+ type: :development
184
+ prerelease: false
185
+ version_requirements: !ruby/object:Gem::Requirement
186
+ requirements:
176
187
  - - "~>"
177
188
  - !ruby/object:Gem::Version
178
189
  version: '0.12'
190
+ - - ">="
191
+ - !ruby/object:Gem::Version
192
+ version: 0.12.0
179
193
  - !ruby/object:Gem::Dependency
180
194
  name: bundler
181
195
  requirement: !ruby/object:Gem::Requirement
182
196
  requirements:
183
- - - ">="
184
- - !ruby/object:Gem::Version
185
- version: 2.0.0
186
197
  - - "~>"
187
198
  - !ruby/object:Gem::Version
188
199
  version: '2.0'
200
+ - - ">="
201
+ - !ruby/object:Gem::Version
202
+ version: 2.0.0
189
203
  type: :development
190
204
  prerelease: false
191
205
  version_requirements: !ruby/object:Gem::Requirement
192
206
  requirements:
193
- - - ">="
194
- - !ruby/object:Gem::Version
195
- version: 2.0.0
196
207
  - - "~>"
197
208
  - !ruby/object:Gem::Version
198
209
  version: '2.0'
210
+ - - ">="
211
+ - !ruby/object:Gem::Version
212
+ version: 2.0.0
199
213
  - !ruby/object:Gem::Dependency
200
214
  name: byebug
201
215
  requirement: !ruby/object:Gem::Requirement
202
216
  requirements:
203
- - - ">="
204
- - !ruby/object:Gem::Version
205
- version: '10.0'
206
217
  - - "~>"
207
218
  - !ruby/object:Gem::Version
208
219
  version: '11.0'
220
+ - - ">="
221
+ - !ruby/object:Gem::Version
222
+ version: '10.0'
209
223
  type: :development
210
224
  prerelease: false
211
225
  version_requirements: !ruby/object:Gem::Requirement
212
226
  requirements:
213
- - - ">="
214
- - !ruby/object:Gem::Version
215
- version: '10.0'
216
227
  - - "~>"
217
228
  - !ruby/object:Gem::Version
218
229
  version: '11.0'
230
+ - - ">="
231
+ - !ruby/object:Gem::Version
232
+ version: '10.0'
219
233
  - !ruby/object:Gem::Dependency
220
234
  name: cucumber
221
235
  requirement: !ruby/object:Gem::Requirement
222
236
  requirements:
223
- - - ">="
224
- - !ruby/object:Gem::Version
225
- version: 2.2.0
226
237
  - - "~>"
227
238
  - !ruby/object:Gem::Version
228
239
  version: '3.0'
240
+ - - ">="
241
+ - !ruby/object:Gem::Version
242
+ version: 2.2.0
229
243
  type: :development
230
244
  prerelease: false
231
245
  version_requirements: !ruby/object:Gem::Requirement
232
246
  requirements:
233
- - - ">="
234
- - !ruby/object:Gem::Version
235
- version: 2.2.0
236
247
  - - "~>"
237
248
  - !ruby/object:Gem::Version
238
249
  version: '3.0'
250
+ - - ">="
251
+ - !ruby/object:Gem::Version
252
+ version: 2.2.0
239
253
  - !ruby/object:Gem::Dependency
240
254
  name: diff-lcs
241
255
  requirement: !ruby/object:Gem::Requirement
@@ -254,22 +268,22 @@ dependencies:
254
268
  name: fakefs
255
269
  requirement: !ruby/object:Gem::Requirement
256
270
  requirements:
257
- - - ">="
258
- - !ruby/object:Gem::Version
259
- version: 0.10.0
260
271
  - - "~>"
261
272
  - !ruby/object:Gem::Version
262
273
  version: '0.10'
274
+ - - ">="
275
+ - !ruby/object:Gem::Version
276
+ version: 0.10.0
263
277
  type: :development
264
278
  prerelease: false
265
279
  version_requirements: !ruby/object:Gem::Requirement
266
280
  requirements:
267
- - - ">="
268
- - !ruby/object:Gem::Version
269
- version: 0.10.0
270
281
  - - "~>"
271
282
  - !ruby/object:Gem::Version
272
283
  version: '0.10'
284
+ - - ">="
285
+ - !ruby/object:Gem::Version
286
+ version: 0.10.0
273
287
  - !ruby/object:Gem::Dependency
274
288
  name: mdl
275
289
  requirement: !ruby/object:Gem::Requirement
@@ -288,82 +302,82 @@ dependencies:
288
302
  name: minitest
289
303
  requirement: !ruby/object:Gem::Requirement
290
304
  requirements:
291
- - - ">="
292
- - !ruby/object:Gem::Version
293
- version: 5.3.0
294
305
  - - "~>"
295
306
  - !ruby/object:Gem::Version
296
307
  version: '5.3'
308
+ - - ">="
309
+ - !ruby/object:Gem::Version
310
+ version: 5.3.0
297
311
  type: :development
298
312
  prerelease: false
299
313
  version_requirements: !ruby/object:Gem::Requirement
300
314
  requirements:
301
- - - ">="
302
- - !ruby/object:Gem::Version
303
- version: 5.3.0
304
315
  - - "~>"
305
316
  - !ruby/object:Gem::Version
306
317
  version: '5.3'
318
+ - - ">="
319
+ - !ruby/object:Gem::Version
320
+ version: 5.3.0
307
321
  - !ruby/object:Gem::Dependency
308
322
  name: minitest-around
309
323
  requirement: !ruby/object:Gem::Requirement
310
324
  requirements:
311
- - - ">="
312
- - !ruby/object:Gem::Version
313
- version: 0.4.0
314
325
  - - "~>"
315
326
  - !ruby/object:Gem::Version
316
327
  version: 0.5.0
328
+ - - ">="
329
+ - !ruby/object:Gem::Version
330
+ version: 0.4.0
317
331
  type: :development
318
332
  prerelease: false
319
333
  version_requirements: !ruby/object:Gem::Requirement
320
334
  requirements:
321
- - - ">="
322
- - !ruby/object:Gem::Version
323
- version: 0.4.0
324
335
  - - "~>"
325
336
  - !ruby/object:Gem::Version
326
337
  version: 0.5.0
338
+ - - ">="
339
+ - !ruby/object:Gem::Version
340
+ version: 0.4.0
327
341
  - !ruby/object:Gem::Dependency
328
342
  name: mocha
329
343
  requirement: !ruby/object:Gem::Requirement
330
344
  requirements:
331
- - - ">="
332
- - !ruby/object:Gem::Version
333
- version: 1.1.0
334
345
  - - "~>"
335
346
  - !ruby/object:Gem::Version
336
347
  version: '1.1'
348
+ - - ">="
349
+ - !ruby/object:Gem::Version
350
+ version: 1.1.0
337
351
  type: :development
338
352
  prerelease: false
339
353
  version_requirements: !ruby/object:Gem::Requirement
340
354
  requirements:
341
- - - ">="
342
- - !ruby/object:Gem::Version
343
- version: 1.1.0
344
355
  - - "~>"
345
356
  - !ruby/object:Gem::Version
346
357
  version: '1.1'
358
+ - - ">="
359
+ - !ruby/object:Gem::Version
360
+ version: 1.1.0
347
361
  - !ruby/object:Gem::Dependency
348
362
  name: rake
349
363
  requirement: !ruby/object:Gem::Requirement
350
364
  requirements:
351
- - - ">="
352
- - !ruby/object:Gem::Version
353
- version: 11.0.0
354
365
  - - "~>"
355
366
  - !ruby/object:Gem::Version
356
367
  version: '12.0'
368
+ - - ">="
369
+ - !ruby/object:Gem::Version
370
+ version: 11.0.0
357
371
  type: :development
358
372
  prerelease: false
359
373
  version_requirements: !ruby/object:Gem::Requirement
360
374
  requirements:
361
- - - ">="
362
- - !ruby/object:Gem::Version
363
- version: 11.0.0
364
375
  - - "~>"
365
376
  - !ruby/object:Gem::Version
366
377
  version: '12.0'
378
+ - - ">="
379
+ - !ruby/object:Gem::Version
380
+ version: 11.0.0
367
381
  - !ruby/object:Gem::Dependency
368
382
  name: rubocop
369
383
  requirement: !ruby/object:Gem::Requirement
@@ -496,6 +510,7 @@ files:
496
510
  - lib/rubycritic/source_control_systems/base.rb
497
511
  - lib/rubycritic/source_control_systems/double.rb
498
512
  - lib/rubycritic/source_control_systems/git.rb
513
+ - lib/rubycritic/source_control_systems/git/churn.rb
499
514
  - lib/rubycritic/source_control_systems/mercurial.rb
500
515
  - lib/rubycritic/source_control_systems/perforce.rb
501
516
  - lib/rubycritic/source_locator.rb
@@ -512,14 +527,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
512
527
  requirements:
513
528
  - - ">="
514
529
  - !ruby/object:Gem::Version
515
- version: 2.3.0
530
+ version: 2.4.0
516
531
  required_rubygems_version: !ruby/object:Gem::Requirement
517
532
  requirements:
518
533
  - - ">="
519
534
  - !ruby/object:Gem::Version
520
535
  version: '0'
521
536
  requirements: []
522
- rubygems_version: 3.0.3
537
+ rubygems_version: 3.1.3
523
538
  signing_key:
524
539
  specification_version: 4
525
540
  summary: RubyCritic is a Ruby code quality reporter