flog 4.6.6 → 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 +8 -0
- data/lib/flog.rb +5 -5
- data/test/test_flog.rb +35 -20
- data/test/test_flog_cli.rb +2 -2
- data.tar.gz.sig +0 -0
- metadata +13 -13
- metadata.gz.sig +1 -2
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,11 @@
|
|
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
|
+
|
1
9
|
=== 4.6.6 / 2022-07-03
|
2
10
|
|
3
11
|
* 1 minor enhancement:
|
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,7 +40,7 @@ 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,
|
@@ -508,9 +508,9 @@ class Flog < MethodBasedSexpProcessor
|
|
508
508
|
when 0, -1 then
|
509
509
|
# ignore those because they're used as array indicies instead of
|
510
510
|
# first/last
|
511
|
-
when Integer, Rational then
|
512
|
-
add_to_score :
|
513
|
-
when
|
511
|
+
when Integer, Float, Rational, Complex then
|
512
|
+
add_to_score :magic_number unless context[1] == :cdecl
|
513
|
+
when Symbol, Regexp, Range then
|
514
514
|
# do nothing
|
515
515
|
else
|
516
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]
|
@@ -173,7 +173,7 @@ class TestFlog < FlogTest
|
|
173
173
|
s(:iter, s(:call, nil, :lambda), nil, s(:lit, 1)))
|
174
174
|
|
175
175
|
assert_process(sexp, 12.316,
|
176
|
-
:
|
176
|
+
:magic_number => 0.275,
|
177
177
|
:block_pass => 1.0,
|
178
178
|
:lambda => 1.0,
|
179
179
|
:block_call => 1.0,
|
@@ -187,7 +187,7 @@ class TestFlog < FlogTest
|
|
187
187
|
s(:iter, s(:call, nil, :lambda), nil, s(:lit, 1))))
|
188
188
|
|
189
189
|
assert_process(sexp, 17.333,
|
190
|
-
:
|
190
|
+
:magic_number => 0.275,
|
191
191
|
:block_pass => 1.0,
|
192
192
|
:lambda => 1.0,
|
193
193
|
:assignment => 1.0,
|
@@ -250,7 +250,7 @@ class TestFlog < FlogTest
|
|
250
250
|
s(:colon2, s(:const, :X), :Y), nil,
|
251
251
|
s(:scope, s(:lit, 42)))
|
252
252
|
|
253
|
-
assert_process sexp, 0.25, :
|
253
|
+
assert_process sexp, 0.25, :magic_number => 0.25
|
254
254
|
end
|
255
255
|
|
256
256
|
# TODO:
|
@@ -275,7 +275,7 @@ class TestFlog < FlogTest
|
|
275
275
|
s(:block,
|
276
276
|
s(:lit, 42))))
|
277
277
|
|
278
|
-
assert_process sexp, 0.275, :
|
278
|
+
assert_process sexp, 0.275, :magic_number => 0.275
|
279
279
|
end
|
280
280
|
|
281
281
|
def test_process_defn_in_self
|
@@ -288,7 +288,7 @@ class TestFlog < FlogTest
|
|
288
288
|
@flog.process sexp
|
289
289
|
@flog.calculate_total_scores
|
290
290
|
|
291
|
-
exp = {'main::x' => {:
|
291
|
+
exp = {'main::x' => {:magic_number => 0.375}, 'main#none' => {:sclass => 5.0}}
|
292
292
|
assert_equal exp, @flog.calls
|
293
293
|
|
294
294
|
assert_in_delta 5.375, @flog.total_score
|
@@ -305,7 +305,7 @@ class TestFlog < FlogTest
|
|
305
305
|
@flog.process sexp
|
306
306
|
@flog.calculate_total_scores
|
307
307
|
|
308
|
-
exp = {'main::x' => {:
|
308
|
+
exp = {'main::x' => {:magic_number => 0.375}, 'main#none' => {:sclass => 12.5}}
|
309
309
|
assert_equal exp, @flog.calls
|
310
310
|
|
311
311
|
assert_in_delta 12.875, @flog.total_score
|
@@ -320,7 +320,7 @@ class TestFlog < FlogTest
|
|
320
320
|
s(:block,
|
321
321
|
s(:lit, 42))))
|
322
322
|
|
323
|
-
assert_process sexp, 0.275, :
|
323
|
+
assert_process sexp, 0.275, :magic_number => 0.275
|
324
324
|
end
|
325
325
|
|
326
326
|
# FIX: huh? over-refactored?
|
@@ -386,7 +386,7 @@ class TestFlog < FlogTest
|
|
386
386
|
|
387
387
|
@klass, @meth = "task", "#woot"
|
388
388
|
|
389
|
-
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
|
390
390
|
end
|
391
391
|
|
392
392
|
def test_process_iter_dsl_hash_when_hash_empty
|
@@ -423,7 +423,7 @@ class TestFlog < FlogTest
|
|
423
423
|
hash = {
|
424
424
|
"namespace(blah)::task#woot" => {
|
425
425
|
:something => 1.0,
|
426
|
-
:
|
426
|
+
:magic_number => 0.3,
|
427
427
|
:task => 1.0,
|
428
428
|
},
|
429
429
|
"namespace#blah" => {
|
@@ -446,14 +446,29 @@ class TestFlog < FlogTest
|
|
446
446
|
|
447
447
|
def test_process_lit_int
|
448
448
|
sexp = s(:lit, 42)
|
449
|
-
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
|
450
455
|
end
|
451
456
|
|
452
457
|
def test_process_lit_float # and other lits
|
453
|
-
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))
|
454
464
|
assert_process sexp, 0.0
|
455
465
|
end
|
456
466
|
|
467
|
+
def test_process_lit_complex
|
468
|
+
sexp = s(:lit, (0+1i))
|
469
|
+
assert_process sexp, 0.25
|
470
|
+
end
|
471
|
+
|
457
472
|
def test_process_lit_bad
|
458
473
|
assert_raises RuntimeError do
|
459
474
|
@flog.process s(:lit, Object.new)
|
@@ -475,12 +490,12 @@ class TestFlog < FlogTest
|
|
475
490
|
s(:colon2, s(:const, :X), :Y),
|
476
491
|
s(:scope, s(:lit, 42)))
|
477
492
|
|
478
|
-
assert_process sexp, 0.25, :
|
493
|
+
assert_process sexp, 0.25, :magic_number => 0.25
|
479
494
|
end
|
480
495
|
|
481
496
|
def test_process_sclass
|
482
497
|
sexp = s(:sclass, s(:self), s(:scope, s(:lit, 42)))
|
483
|
-
assert_process sexp, 5.375, :sclass => 5.0, :
|
498
|
+
assert_process sexp, 5.375, :sclass => 5.0, :magic_number => 0.375
|
484
499
|
end
|
485
500
|
|
486
501
|
def test_process_super
|
@@ -488,7 +503,7 @@ class TestFlog < FlogTest
|
|
488
503
|
assert_process sexp, 1.0, :super => 1.0
|
489
504
|
|
490
505
|
sexp = s(:super, s(:lit, 42))
|
491
|
-
assert_process sexp, 1.25, :super => 1.0, :
|
506
|
+
assert_process sexp, 1.25, :super => 1.0, :magic_number => 0.25
|
492
507
|
end
|
493
508
|
|
494
509
|
def test_process_while
|
@@ -505,10 +520,10 @@ class TestFlog < FlogTest
|
|
505
520
|
assert_process sexp, 1.00, :yield => 1.0
|
506
521
|
|
507
522
|
sexp = s(:yield, s(:lit, 4))
|
508
|
-
assert_process sexp, 1.25, :yield => 1.0, :
|
523
|
+
assert_process sexp, 1.25, :yield => 1.0, :magic_number => 0.25
|
509
524
|
|
510
525
|
sexp = s(:yield, s(:lit, 42), s(:lit, 24))
|
511
|
-
assert_process sexp, 1.50, :yield => 1.0, :
|
526
|
+
assert_process sexp, 1.50, :yield => 1.0, :magic_number => 0.50
|
512
527
|
end
|
513
528
|
|
514
529
|
def test_score_method
|
@@ -617,7 +632,7 @@ class TestFlog < FlogTest
|
|
617
632
|
@flog.calculate_total_scores
|
618
633
|
@flog.calculate
|
619
634
|
|
620
|
-
assert_equal({ 'User#blah' => 'user.rb:3-
|
635
|
+
assert_equal({ 'User#blah' => 'user.rb:3-5' }, @flog.method_locations)
|
621
636
|
assert_equal({ "User#blah" => 2.2 }, @flog.totals)
|
622
637
|
assert_in_epsilon(2.2, @flog.total_score)
|
623
638
|
assert_in_epsilon(1.0, @flog.multiplier)
|
@@ -639,7 +654,7 @@ class TestFlog < FlogTest
|
|
639
654
|
@flog.calculate_total_scores
|
640
655
|
@flog.calculate
|
641
656
|
|
642
|
-
assert_equal({ 'Coder#happy?' => 'coder.rb:3-
|
657
|
+
assert_equal({ 'Coder#happy?' => 'coder.rb:3-5' }, @flog.method_locations)
|
643
658
|
assert_equal({ "Coder#happy?" => 1.0 }, @flog.totals)
|
644
659
|
assert_in_epsilon(1.0, @flog.total_score)
|
645
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
Binary file
|
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
@@ -1,2 +1 @@
|
|
1
|
-
|
2
|
-
�Y�<��.�qEN�c���j��&��������D��P�H��f�1ɤ I�[����t�B]����y�#��ؙMK�ӷl�J�>P�7�
|
1
|
+
a���M�˒zl�m�e��h��ᱣ�{(�8�C���m��lJ%(ߞ%��J�#�دW(�{u`B��ĩ�o7�<q�Nr��D���"�q
|