flog 4.6.5 → 4.7.0
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
- checksums.yaml.gz.sig +1 -1
- data/History.rdoc +19 -0
- data/Rakefile +4 -1
- data/lib/flog.rb +16 -21
- data/test/test_flog.rb +64 -32
- data/test/test_flog_cli.rb +2 -2
- data.tar.gz.sig +1 -1
- metadata +13 -13
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bde1a28d5e030ce021a8f20e9d7e877714e2c91e030b7560c3da7337a8a1e916
|
4
|
+
data.tar.gz: 6b4dffe1d2a47f688deb1665a0a31a4c9ef5b901add108aac37489c97cb8f7ee
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 56c6a3005252c00d8d61257f35f6eb9bf3d07b232acb316ebf5807dee9144c6bc76f24478ba64a000885677e1ba04d3d0af5ad8677934f90a5f8a965a2227f87
|
7
|
+
data.tar.gz: 876c48e4a05cf087fb924f5c10977870facdec0f07c3cabd09eccee03360fca82d19a3b5a708e2a9bd51cd57f109d525b29cc50d22399fac17df3062b0d3c272
|
checksums.yaml.gz.sig
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
-�2�\��*��&�+��)� ������C���fY�v��B��g `\5;K��M�'�O+������ �ns�{Je�.�dw�q{h����g� �~*������;����/�/ɄD�)X#�pz�o��δ(������\��w���$n��zG3>3_\f�$ǘ.y��ymaeȽɰ YGW���:�>.�r�k�yh�M�(���Y:�1�P��6�j��OP�/����i����~HS0L�
|
data/History.rdoc
CHANGED
@@ -1,3 +1,22 @@
|
|
1
|
+
=== 4.7.0 / 2023-07-18
|
2
|
+
|
3
|
+
* 3 minor enhancements:
|
4
|
+
|
5
|
+
* Extend flog to process complex numbers. (petergoldstein)
|
6
|
+
* Only penalize magic numbers if they're not assigned to a const (excludes 0/-1).
|
7
|
+
* Renamed :lit_fixnum to :magic_number.
|
8
|
+
|
9
|
+
=== 4.6.6 / 2022-07-03
|
10
|
+
|
11
|
+
* 1 minor enhancement:
|
12
|
+
|
13
|
+
* Added support for to_proc w/ hash(?!?). (t-kinoshita)
|
14
|
+
|
15
|
+
* 2 bug fixes:
|
16
|
+
|
17
|
+
* Removed to_proc_normal (eg &:sym/call) as benchmarks are much better.
|
18
|
+
* ruby3: Fixed anonymous block pass. (prtngn)
|
19
|
+
|
1
20
|
=== 4.6.5 / 2022-04-09
|
2
21
|
|
3
22
|
* 1 minor enhancement:
|
data/Rakefile
CHANGED
data/lib/flog.rb
CHANGED
@@ -11,7 +11,7 @@ class File
|
|
11
11
|
end
|
12
12
|
|
13
13
|
class Flog < MethodBasedSexpProcessor
|
14
|
-
VERSION = "4.
|
14
|
+
VERSION = "4.7.0" # :nodoc:
|
15
15
|
|
16
16
|
##
|
17
17
|
# Cut off point where the report should stop unless --all given.
|
@@ -40,21 +40,11 @@ class Flog < MethodBasedSexpProcessor
|
|
40
40
|
:block_pass => 1,
|
41
41
|
:block_call => 1,
|
42
42
|
:branch => 1,
|
43
|
-
:
|
43
|
+
:magic_number => 0.25,
|
44
44
|
:sclass => 5,
|
45
45
|
:super => 1,
|
46
46
|
:to_proc_icky! => 10,
|
47
47
|
:to_proc_lasgn => 15,
|
48
|
-
:to_proc_normal => case RUBY_VERSION
|
49
|
-
when /^1\.8\.7/ then
|
50
|
-
2
|
51
|
-
when /^1\.9/ then
|
52
|
-
1.5
|
53
|
-
when /^[23]\./ then
|
54
|
-
1
|
55
|
-
else
|
56
|
-
raise "Unhandled version #{RUBY_VERSION}"
|
57
|
-
end,
|
58
48
|
:yield => 1,
|
59
49
|
}
|
60
50
|
|
@@ -176,9 +166,9 @@ class Flog < MethodBasedSexpProcessor
|
|
176
166
|
|
177
167
|
def flog(*files)
|
178
168
|
files.each do |file|
|
179
|
-
next unless file ==
|
169
|
+
next unless file == "-" or File.readable? file
|
180
170
|
|
181
|
-
ruby = file ==
|
171
|
+
ruby = file == "-" ? $stdin.read : File.binread(file)
|
182
172
|
|
183
173
|
flog_ruby ruby, file
|
184
174
|
end
|
@@ -199,7 +189,7 @@ class Flog < MethodBasedSexpProcessor
|
|
199
189
|
q = option[:quiet]
|
200
190
|
if e.inspect =~ /<\%|%\>/ or ruby =~ /<\%|%\>/ then
|
201
191
|
return if q
|
202
|
-
warn "#{e.inspect} at #{e.backtrace.first(5).join(
|
192
|
+
warn "#{e.inspect} at #{e.backtrace.first(5).join(", ")}"
|
203
193
|
warn "\n...stupid lemmings and their bad erb templates... skipping"
|
204
194
|
else
|
205
195
|
warn "ERROR: parsing ruby file #{file}" unless q
|
@@ -365,18 +355,23 @@ class Flog < MethodBasedSexpProcessor
|
|
365
355
|
|
366
356
|
add_to_score :block_pass
|
367
357
|
|
358
|
+
return s() unless arg
|
359
|
+
|
368
360
|
case arg.sexp_type
|
369
361
|
when :lvar, :dvar, :ivar, :cvar, :self, :const, :colon2, :nil then # f(&b)
|
370
362
|
# do nothing
|
371
|
-
when :lit
|
372
|
-
|
363
|
+
when :lit then # f(&:b)
|
364
|
+
# do nothing -- this now costs about the same as a block
|
365
|
+
when :call then # f(&x.b)
|
366
|
+
# do nothing -- I don't like the indirection, but that's already scored
|
373
367
|
when :lasgn then # f(&l=b)
|
374
368
|
add_to_score :to_proc_lasgn
|
375
|
-
when :iter, :dsym, :dstr, *BRANCHING then
|
369
|
+
when :iter, :dsym, :dstr, :hash, *BRANCHING then # below
|
376
370
|
# f(&proc { ... })
|
377
371
|
# f(&"#{...}")
|
378
372
|
# f(&:"#{...}")
|
379
373
|
# f(&if ... then ... end") and all other branching forms
|
374
|
+
# f(&{ a: 42 }) WHY?!?
|
380
375
|
add_to_score :to_proc_icky!
|
381
376
|
else
|
382
377
|
raise({:block_pass_even_ickier! => arg}.inspect)
|
@@ -513,9 +508,9 @@ class Flog < MethodBasedSexpProcessor
|
|
513
508
|
when 0, -1 then
|
514
509
|
# ignore those because they're used as array indicies instead of
|
515
510
|
# first/last
|
516
|
-
when Integer, Rational then
|
517
|
-
add_to_score :
|
518
|
-
when
|
511
|
+
when Integer, Float, Rational, Complex then
|
512
|
+
add_to_score :magic_number unless context[1] == :cdecl
|
513
|
+
when Symbol, Regexp, Range then
|
519
514
|
# do nothing
|
520
515
|
else
|
521
516
|
raise "Unhandled lit: #{value.inspect}:#{value.class}"
|
data/test/test_flog.rb
CHANGED
@@ -44,7 +44,7 @@ class TestFlog < FlogTest
|
|
44
44
|
def test_flog
|
45
45
|
setup_flog
|
46
46
|
|
47
|
-
exp = { "main#none" => { :+ => 1.0, :
|
47
|
+
exp = { "main#none" => { :+ => 1.0, :magic_number => 0.6 } }
|
48
48
|
assert_equal exp, @flog.calls
|
49
49
|
|
50
50
|
assert_in_epsilon 1.6, @flog.total_score unless @flog.option[:methods]
|
@@ -58,7 +58,7 @@ class TestFlog < FlogTest
|
|
58
58
|
@flog.flog_ruby ruby, file
|
59
59
|
@flog.calculate_total_scores
|
60
60
|
|
61
|
-
exp = { "main#none" => { :+ => 1.0, :
|
61
|
+
exp = { "main#none" => { :+ => 1.0, :magic_number => 0.6 } }
|
62
62
|
assert_equal exp, @flog.calls
|
63
63
|
|
64
64
|
assert_in_epsilon 1.6, @flog.total_score unless @flog.option[:methods]
|
@@ -127,25 +127,24 @@ class TestFlog < FlogTest
|
|
127
127
|
assert_process sexp, 1.1, :branch => 1.1 # 10% penalty over process_and
|
128
128
|
end
|
129
129
|
|
130
|
-
def
|
130
|
+
def test_process_block_pass__call
|
131
131
|
sexp = s(:call, nil, :a,
|
132
132
|
s(:block_pass,
|
133
133
|
s(:call, nil, :b)))
|
134
134
|
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
end
|
135
|
+
assert_process(sexp, 3.4,
|
136
|
+
:a => 1.0,
|
137
|
+
:block_pass => 1.2,
|
138
|
+
:b => 1.2)
|
139
|
+
end
|
141
140
|
|
142
|
-
|
141
|
+
def test_process_block_pass__to_proc
|
142
|
+
sexp = s(:call, nil, :a,
|
143
|
+
s(:block_pass, s(:lit, :to_i)))
|
143
144
|
|
144
|
-
assert_process(sexp,
|
145
|
+
assert_process(sexp, 2.2,
|
145
146
|
:a => 1.0,
|
146
|
-
:block_pass => 1.2
|
147
|
-
:b => 1.2,
|
148
|
-
:to_proc_normal => 0.0 + bonus)
|
147
|
+
:block_pass => 1.2)
|
149
148
|
end
|
150
149
|
|
151
150
|
def test_process_block_pass_colon2
|
@@ -158,12 +157,23 @@ class TestFlog < FlogTest
|
|
158
157
|
:block_pass => 1.2)
|
159
158
|
end
|
160
159
|
|
160
|
+
def test_process_block_pass__hash_wtf
|
161
|
+
sexp = s(:call, nil, :a,
|
162
|
+
s(:block_pass,
|
163
|
+
s(:hash, s(:lit, :a), s(:lit, :b))))
|
164
|
+
|
165
|
+
assert_process(sexp, 14.2,
|
166
|
+
:a => 1.0,
|
167
|
+
:block_pass => 1.2,
|
168
|
+
:to_proc_icky! => 12.0)
|
169
|
+
end
|
170
|
+
|
161
171
|
def test_process_block_pass_iter
|
162
172
|
sexp = s(:block_pass,
|
163
173
|
s(:iter, s(:call, nil, :lambda), nil, s(:lit, 1)))
|
164
174
|
|
165
175
|
assert_process(sexp, 12.316,
|
166
|
-
:
|
176
|
+
:magic_number => 0.275,
|
167
177
|
:block_pass => 1.0,
|
168
178
|
:lambda => 1.0,
|
169
179
|
:block_call => 1.0,
|
@@ -177,7 +187,7 @@ class TestFlog < FlogTest
|
|
177
187
|
s(:iter, s(:call, nil, :lambda), nil, s(:lit, 1))))
|
178
188
|
|
179
189
|
assert_process(sexp, 17.333,
|
180
|
-
:
|
190
|
+
:magic_number => 0.275,
|
181
191
|
:block_pass => 1.0,
|
182
192
|
:lambda => 1.0,
|
183
193
|
:assignment => 1.0,
|
@@ -185,6 +195,13 @@ class TestFlog < FlogTest
|
|
185
195
|
:to_proc_lasgn => 15.0)
|
186
196
|
end
|
187
197
|
|
198
|
+
def test_process_block_pass__nil
|
199
|
+
sexp = s(:block_pass)
|
200
|
+
|
201
|
+
assert_process(sexp, 1.0,
|
202
|
+
:block_pass => 1.0)
|
203
|
+
end
|
204
|
+
|
188
205
|
def test_process_call
|
189
206
|
sexp = s(:call, nil, :a) # a
|
190
207
|
assert_process sexp, 1.0, :a => 1.0
|
@@ -233,7 +250,7 @@ class TestFlog < FlogTest
|
|
233
250
|
s(:colon2, s(:const, :X), :Y), nil,
|
234
251
|
s(:scope, s(:lit, 42)))
|
235
252
|
|
236
|
-
assert_process sexp, 0.25, :
|
253
|
+
assert_process sexp, 0.25, :magic_number => 0.25
|
237
254
|
end
|
238
255
|
|
239
256
|
# TODO:
|
@@ -258,7 +275,7 @@ class TestFlog < FlogTest
|
|
258
275
|
s(:block,
|
259
276
|
s(:lit, 42))))
|
260
277
|
|
261
|
-
assert_process sexp, 0.275, :
|
278
|
+
assert_process sexp, 0.275, :magic_number => 0.275
|
262
279
|
end
|
263
280
|
|
264
281
|
def test_process_defn_in_self
|
@@ -271,7 +288,7 @@ class TestFlog < FlogTest
|
|
271
288
|
@flog.process sexp
|
272
289
|
@flog.calculate_total_scores
|
273
290
|
|
274
|
-
exp = {'main::x' => {:
|
291
|
+
exp = {'main::x' => {:magic_number => 0.375}, 'main#none' => {:sclass => 5.0}}
|
275
292
|
assert_equal exp, @flog.calls
|
276
293
|
|
277
294
|
assert_in_delta 5.375, @flog.total_score
|
@@ -288,7 +305,7 @@ class TestFlog < FlogTest
|
|
288
305
|
@flog.process sexp
|
289
306
|
@flog.calculate_total_scores
|
290
307
|
|
291
|
-
exp = {'main::x' => {:
|
308
|
+
exp = {'main::x' => {:magic_number => 0.375}, 'main#none' => {:sclass => 12.5}}
|
292
309
|
assert_equal exp, @flog.calls
|
293
310
|
|
294
311
|
assert_in_delta 12.875, @flog.total_score
|
@@ -303,7 +320,7 @@ class TestFlog < FlogTest
|
|
303
320
|
s(:block,
|
304
321
|
s(:lit, 42))))
|
305
322
|
|
306
|
-
assert_process sexp, 0.275, :
|
323
|
+
assert_process sexp, 0.275, :magic_number => 0.275
|
307
324
|
end
|
308
325
|
|
309
326
|
# FIX: huh? over-refactored?
|
@@ -369,7 +386,7 @@ class TestFlog < FlogTest
|
|
369
386
|
|
370
387
|
@klass, @meth = "task", "#woot"
|
371
388
|
|
372
|
-
assert_process sexp, 2.3, :something => 1.0, :task => 1.0, :
|
389
|
+
assert_process sexp, 2.3, :something => 1.0, :task => 1.0, :magic_number => 0.3
|
373
390
|
end
|
374
391
|
|
375
392
|
def test_process_iter_dsl_hash_when_hash_empty
|
@@ -406,7 +423,7 @@ class TestFlog < FlogTest
|
|
406
423
|
hash = {
|
407
424
|
"namespace(blah)::task#woot" => {
|
408
425
|
:something => 1.0,
|
409
|
-
:
|
426
|
+
:magic_number => 0.3,
|
410
427
|
:task => 1.0,
|
411
428
|
},
|
412
429
|
"namespace#blah" => {
|
@@ -429,14 +446,29 @@ class TestFlog < FlogTest
|
|
429
446
|
|
430
447
|
def test_process_lit_int
|
431
448
|
sexp = s(:lit, 42)
|
432
|
-
assert_process sexp, 0.25, :
|
449
|
+
assert_process sexp, 0.25, :magic_number => 0.25
|
450
|
+
end
|
451
|
+
|
452
|
+
def test_process_lit_int__const
|
453
|
+
sexp = s(:cdecl, :X, s(:lit, 42))
|
454
|
+
assert_process sexp, 0.0
|
433
455
|
end
|
434
456
|
|
435
457
|
def test_process_lit_float # and other lits
|
436
|
-
sexp = s(:lit, 3.1415)
|
458
|
+
sexp = s(:lit, 3.1415)
|
459
|
+
assert_process sexp, 0.25, :magic_number => 0.25
|
460
|
+
end
|
461
|
+
|
462
|
+
def test_process_lit_float__const
|
463
|
+
sexp = s(:cdecl, :X, s(:lit, 3.1415))
|
437
464
|
assert_process sexp, 0.0
|
438
465
|
end
|
439
466
|
|
467
|
+
def test_process_lit_complex
|
468
|
+
sexp = s(:lit, (0+1i))
|
469
|
+
assert_process sexp, 0.25
|
470
|
+
end
|
471
|
+
|
440
472
|
def test_process_lit_bad
|
441
473
|
assert_raises RuntimeError do
|
442
474
|
@flog.process s(:lit, Object.new)
|
@@ -458,12 +490,12 @@ class TestFlog < FlogTest
|
|
458
490
|
s(:colon2, s(:const, :X), :Y),
|
459
491
|
s(:scope, s(:lit, 42)))
|
460
492
|
|
461
|
-
assert_process sexp, 0.25, :
|
493
|
+
assert_process sexp, 0.25, :magic_number => 0.25
|
462
494
|
end
|
463
495
|
|
464
496
|
def test_process_sclass
|
465
497
|
sexp = s(:sclass, s(:self), s(:scope, s(:lit, 42)))
|
466
|
-
assert_process sexp, 5.375, :sclass => 5.0, :
|
498
|
+
assert_process sexp, 5.375, :sclass => 5.0, :magic_number => 0.375
|
467
499
|
end
|
468
500
|
|
469
501
|
def test_process_super
|
@@ -471,7 +503,7 @@ class TestFlog < FlogTest
|
|
471
503
|
assert_process sexp, 1.0, :super => 1.0
|
472
504
|
|
473
505
|
sexp = s(:super, s(:lit, 42))
|
474
|
-
assert_process sexp, 1.25, :super => 1.0, :
|
506
|
+
assert_process sexp, 1.25, :super => 1.0, :magic_number => 0.25
|
475
507
|
end
|
476
508
|
|
477
509
|
def test_process_while
|
@@ -488,10 +520,10 @@ class TestFlog < FlogTest
|
|
488
520
|
assert_process sexp, 1.00, :yield => 1.0
|
489
521
|
|
490
522
|
sexp = s(:yield, s(:lit, 4))
|
491
|
-
assert_process sexp, 1.25, :yield => 1.0, :
|
523
|
+
assert_process sexp, 1.25, :yield => 1.0, :magic_number => 0.25
|
492
524
|
|
493
525
|
sexp = s(:yield, s(:lit, 42), s(:lit, 24))
|
494
|
-
assert_process sexp, 1.50, :yield => 1.0, :
|
526
|
+
assert_process sexp, 1.50, :yield => 1.0, :magic_number => 0.50
|
495
527
|
end
|
496
528
|
|
497
529
|
def test_score_method
|
@@ -600,7 +632,7 @@ class TestFlog < FlogTest
|
|
600
632
|
@flog.calculate_total_scores
|
601
633
|
@flog.calculate
|
602
634
|
|
603
|
-
assert_equal({ 'User#blah' => 'user.rb:3-
|
635
|
+
assert_equal({ 'User#blah' => 'user.rb:3-5' }, @flog.method_locations)
|
604
636
|
assert_equal({ "User#blah" => 2.2 }, @flog.totals)
|
605
637
|
assert_in_epsilon(2.2, @flog.total_score)
|
606
638
|
assert_in_epsilon(1.0, @flog.multiplier)
|
@@ -622,7 +654,7 @@ class TestFlog < FlogTest
|
|
622
654
|
@flog.calculate_total_scores
|
623
655
|
@flog.calculate
|
624
656
|
|
625
|
-
assert_equal({ 'Coder#happy?' => 'coder.rb:3-
|
657
|
+
assert_equal({ 'Coder#happy?' => 'coder.rb:3-5' }, @flog.method_locations)
|
626
658
|
assert_equal({ "Coder#happy?" => 1.0 }, @flog.totals)
|
627
659
|
assert_in_epsilon(1.0, @flog.total_score)
|
628
660
|
assert_in_epsilon(1.0, @flog.multiplier)
|
data/test/test_flog_cli.rb
CHANGED
@@ -135,7 +135,7 @@ class TestFlogCLI < FlogTest
|
|
135
135
|
|
136
136
|
expected = "\n 1.6: main#none
|
137
137
|
1.0: +
|
138
|
-
0.6:
|
138
|
+
0.6: magic_number
|
139
139
|
|
140
140
|
"
|
141
141
|
|
@@ -165,7 +165,7 @@ class TestFlogCLI < FlogTest
|
|
165
165
|
|
166
166
|
@flog.flog "-"
|
167
167
|
|
168
|
-
exp = { "main#none" => { :+ => 1.0, :
|
168
|
+
exp = { "main#none" => { :+ => 1.0, :magic_number => 0.6 } }
|
169
169
|
assert_equal exp, @flog.calls
|
170
170
|
|
171
171
|
@flog.option[:all] = true
|
data.tar.gz.sig
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
��k>`DQL�kߓO1�ߜ�=�2�w��ͺ�N�#���0${���CL�w6��w���{�$z{�pKOE�5a� ��pX֘)A<��} �'<�y���=\d՚.������ɡ@j+���m���<�TX�BW5#��4�RuG��W�hEN�T+�ۏ�>�����l���!5WUH�/�/�� �74̃)�&��1{[��L�+(`6AQ?��ZFP7�P~Rv��G�z�g�����1�#&�K�v1�ڔ��
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: flog
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.
|
4
|
+
version: 4.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryan Davis
|
@@ -10,9 +10,9 @@ bindir: bin
|
|
10
10
|
cert_chain:
|
11
11
|
- |
|
12
12
|
-----BEGIN CERTIFICATE-----
|
13
|
-
|
13
|
+
MIIDPjCCAiagAwIBAgIBBzANBgkqhkiG9w0BAQsFADBFMRMwEQYDVQQDDApyeWFu
|
14
14
|
ZC1ydWJ5MRkwFwYKCZImiZPyLGQBGRYJemVuc3BpZGVyMRMwEQYKCZImiZPyLGQB
|
15
|
-
|
15
|
+
GRYDY29tMB4XDTIzMDEwMTA3NTExN1oXDTI0MDEwMTA3NTExN1owRTETMBEGA1UE
|
16
16
|
AwwKcnlhbmQtcnVieTEZMBcGCgmSJomT8ixkARkWCXplbnNwaWRlcjETMBEGCgmS
|
17
17
|
JomT8ixkARkWA2NvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALda
|
18
18
|
b9DCgK+627gPJkB6XfjZ1itoOQvpqH1EXScSaba9/S2VF22VYQbXU1xQXL/WzCkx
|
@@ -22,14 +22,14 @@ cert_chain:
|
|
22
22
|
qhtV7HJxNKuPj/JFH0D2cswvzznE/a5FOYO68g+YCuFi5L8wZuuM8zzdwjrWHqSV
|
23
23
|
gBEfoTEGr7Zii72cx+sCAwEAAaM5MDcwCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAw
|
24
24
|
HQYDVR0OBBYEFEfFe9md/r/tj/Wmwpy+MI8d9k/hMA0GCSqGSIb3DQEBCwUAA4IB
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
25
|
+
AQAkg3y+PBnBAPWdxxITm5sPHqdWQgSyCpRA20o4LTuWr8BWhSXBkfQNa7cY6fOn
|
26
|
+
xyM34VPzBFbExv6XOGDfOMFBVaYTHuN9peC/5/umL7kLl+nflXzL2QA7K6LYj5Bg
|
27
|
+
sM574Onr0dZDM6Vn69bzQ7rBIFDfK/OhlPzqKZad4nsdcsVH8ODCiT+ATMIZyz5K
|
28
|
+
WCnNtqlyiWXI8tdTpahDgcUwfcN/oN7v4K8iU5IbLJX6HQ5DKgmKjfb6XyMth16k
|
29
|
+
ROfWo9Uyp8ba/j9eVG14KkYRaLydAY1MNQk2yd3R5CGfeOpD1kttxjoypoUJ2dOG
|
30
|
+
nsNBRuQJ1UfiCG97a6DNm+Fr
|
31
31
|
-----END CERTIFICATE-----
|
32
|
-
date:
|
32
|
+
date: 2023-07-18 00:00:00.000000000 Z
|
33
33
|
dependencies:
|
34
34
|
- !ruby/object:Gem::Dependency
|
35
35
|
name: sexp_processor
|
@@ -119,14 +119,14 @@ dependencies:
|
|
119
119
|
requirements:
|
120
120
|
- - "~>"
|
121
121
|
- !ruby/object:Gem::Version
|
122
|
-
version: '
|
122
|
+
version: '4.0'
|
123
123
|
type: :development
|
124
124
|
prerelease: false
|
125
125
|
version_requirements: !ruby/object:Gem::Requirement
|
126
126
|
requirements:
|
127
127
|
- - "~>"
|
128
128
|
- !ruby/object:Gem::Version
|
129
|
-
version: '
|
129
|
+
version: '4.0'
|
130
130
|
description: |-
|
131
131
|
Flog reports the most tortured code in an easy to read pain
|
132
132
|
report. The higher the score, the more pain the code is in.
|
@@ -175,7 +175,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
175
175
|
- !ruby/object:Gem::Version
|
176
176
|
version: '0'
|
177
177
|
requirements: []
|
178
|
-
rubygems_version: 3.
|
178
|
+
rubygems_version: 3.4.10
|
179
179
|
signing_key:
|
180
180
|
specification_version: 4
|
181
181
|
summary: Flog reports the most tortured code in an easy to read pain report
|
metadata.gz.sig
CHANGED
Binary file
|