flog 4.6.5 → 4.6.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +1 -1
- data/History.rdoc +11 -0
- data/Rakefile +4 -1
- data/lib/flog.rb +12 -17
- data/test/test_flog.rb +29 -12
- data.tar.gz.sig +0 -0
- metadata +5 -5
- 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: a6889c4ee131417e7461cd689e54af4a037d36ee3a854e037c9e453e7a19dee0
|
4
|
+
data.tar.gz: ee5fc40d4423a82b4b48db87b9bd02fac8006f4b5ac6e6f4701005a82412b451
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a6b0a38246e5869182caf800b6e1bacb4bd442c06746d8aac8c4223528d58bf8c588909689f5424f05de6cfbe1ed97f12d89025fe2d3a2b195ea6508326d8691
|
7
|
+
data.tar.gz: 485e289aec33bf39a30b8361d42eaec662de13bbca5c72b3058a9f0e31375ce1b55cacb270b00551b671e59f031f9b861af50b03abeb155af4d079d0f325dbbf
|
checksums.yaml.gz.sig
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
��c��A﷿PMt���w���?��胠�ov_:O4�kDM�����1��2 ����e��(��˙�������D���l�=!ڡ��\G�_����veÙ��3��|����L�\�P�U�̪;z���RoUI9�l{�E۳I���6�l���#>�7��r��h�`�/2Ё�;@�2O�}N�@3Q����.-Ԡ�n~j�k;[`�Wp���/İ`�T�1����,4e$�t��0�z'��fGHL"�
|
data/History.rdoc
CHANGED
@@ -1,3 +1,14 @@
|
|
1
|
+
=== 4.6.6 / 2022-07-03
|
2
|
+
|
3
|
+
* 1 minor enhancement:
|
4
|
+
|
5
|
+
* Added support for to_proc w/ hash(?!?). (t-kinoshita)
|
6
|
+
|
7
|
+
* 2 bug fixes:
|
8
|
+
|
9
|
+
* Removed to_proc_normal (eg &:sym/call) as benchmarks are much better.
|
10
|
+
* ruby3: Fixed anonymous block pass. (prtngn)
|
11
|
+
|
1
12
|
=== 4.6.5 / 2022-04-09
|
2
13
|
|
3
14
|
* 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.6.
|
14
|
+
VERSION = "4.6.6" # :nodoc:
|
15
15
|
|
16
16
|
##
|
17
17
|
# Cut off point where the report should stop unless --all given.
|
@@ -45,16 +45,6 @@ class Flog < MethodBasedSexpProcessor
|
|
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)
|
data/test/test_flog.rb
CHANGED
@@ -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,6 +157,17 @@ 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)))
|
@@ -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
|
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.6.
|
4
|
+
version: 4.6.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryan Davis
|
@@ -29,7 +29,7 @@ cert_chain:
|
|
29
29
|
JFmxn4h9YO/pVdB962BdBNNDia0kgIjI3ENnkLq0dKpYU3+F3KhEuTksLO0L6X/V
|
30
30
|
YsuyUzsMz6GQA4khyaMgKNSD
|
31
31
|
-----END CERTIFICATE-----
|
32
|
-
date: 2022-04
|
32
|
+
date: 2022-07-04 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: '3.
|
122
|
+
version: '3.24'
|
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: '3.
|
129
|
+
version: '3.24'
|
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.3.
|
178
|
+
rubygems_version: 3.3.12
|
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
|