rubycritic 4.3.3 → 4.5.2

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: 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