debride 1.13.0 → 1.14.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 +0 -0
- data/History.rdoc +7 -0
- data/Rakefile +2 -2
- data/lib/debride.rb +26 -7
- data/test/test_debride.rb +5 -2
- data.tar.gz.sig +4 -2
- metadata +9 -9
- 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: 3a714288d6ecf460fcc966b8affc300f4bfe72da8e7d955e1345d757fbe389e9
|
|
4
|
+
data.tar.gz: '0608d18319513d0193482b503def7a86b7fc1544dfffb1048849d74b0b0d1728'
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: c7faa53a9d8aaa8e1f6bb5673ac7619a357a34d75636eaaab43fc017814cac33805dcb0904385d19a4e1d32b95ccc6a01877083a379ee74e6c91847b4713e278
|
|
7
|
+
data.tar.gz: ec449e3d4d5bdae20271e58d54da4dce6050866e56493d68f7ce236bb7829e51f342185576c5a772ee6e140e1855557598bd9062c5b9cc6f4d2112ea3fc16ed7
|
checksums.yaml.gz.sig
CHANGED
|
Binary file
|
data/History.rdoc
CHANGED
data/Rakefile
CHANGED
|
@@ -21,8 +21,8 @@ Hoe.spec "debride" do
|
|
|
21
21
|
license "MIT"
|
|
22
22
|
|
|
23
23
|
dependency "sexp_processor", "~> 4.17"
|
|
24
|
-
dependency "
|
|
25
|
-
dependency "path_expander", "~>
|
|
24
|
+
dependency "prism", "~> 1.5"
|
|
25
|
+
dependency "path_expander", "~> 2.0"
|
|
26
26
|
end
|
|
27
27
|
|
|
28
28
|
def run dir, whitelist
|
data/lib/debride.rb
CHANGED
|
@@ -4,15 +4,27 @@ require "optparse"
|
|
|
4
4
|
require "set"
|
|
5
5
|
require "stringio"
|
|
6
6
|
|
|
7
|
-
require "ruby_parser"
|
|
8
7
|
require "sexp_processor"
|
|
9
8
|
require "path_expander"
|
|
10
9
|
|
|
10
|
+
require "prism"
|
|
11
|
+
require "prism/translation/ruby_parser"
|
|
12
|
+
|
|
13
|
+
unless Prism::Translation::RubyParser.method_defined? :process then
|
|
14
|
+
class Prism::Translation::RubyParser # compatibility layer
|
|
15
|
+
def process(ruby, file, timeout=nil) =
|
|
16
|
+
Timeout.timeout(timeout) { parse ruby, file }
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
class NotRubyParser < Prism::Translation::RubyParser # compatibility layer
|
|
21
|
+
end
|
|
22
|
+
|
|
11
23
|
##
|
|
12
24
|
# A static code analyzer that points out possible dead methods.
|
|
13
25
|
|
|
14
26
|
class Debride < MethodBasedSexpProcessor
|
|
15
|
-
VERSION = "1.
|
|
27
|
+
VERSION = "1.14.0" # :nodoc:
|
|
16
28
|
PROJECT = "debride"
|
|
17
29
|
|
|
18
30
|
def self.load_plugins proj = PROJECT
|
|
@@ -47,14 +59,12 @@ class Debride < MethodBasedSexpProcessor
|
|
|
47
59
|
# Top level runner for bin/debride.
|
|
48
60
|
|
|
49
61
|
def self.run args
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
debride = Debride.new opt
|
|
62
|
+
debride = Debride.new parse_options args
|
|
53
63
|
|
|
54
64
|
extensions = self.file_extensions
|
|
55
65
|
glob = "**/*.{#{extensions.join(",")}}"
|
|
56
66
|
expander = PathExpander.new(args, glob)
|
|
57
|
-
files = expander.process
|
|
67
|
+
files = expander.process.to_a
|
|
58
68
|
excl = debride.option[:exclude]
|
|
59
69
|
excl.map! { |fd| File.directory?(fd) ? "#{fd}/**/*" : fd } if excl
|
|
60
70
|
|
|
@@ -97,7 +107,8 @@ class Debride < MethodBasedSexpProcessor
|
|
|
97
107
|
raise "Unhandled type: #{path_or_io.class}:#{path_or_io.inspect}"
|
|
98
108
|
end
|
|
99
109
|
|
|
100
|
-
|
|
110
|
+
parser = option[:parser].new
|
|
111
|
+
parser.process(file, path, option[:timeout])
|
|
101
112
|
rescue Racc::ParseError, RegexpError => e
|
|
102
113
|
warn "Parse Error parsing #{path}. Skipping."
|
|
103
114
|
warn " #{e.message}"
|
|
@@ -161,6 +172,11 @@ class Debride < MethodBasedSexpProcessor
|
|
|
161
172
|
options[:minimum] = n
|
|
162
173
|
end
|
|
163
174
|
|
|
175
|
+
opts.on "--legacy" "Use RubyParser for parsing." do
|
|
176
|
+
require "ruby_parser"
|
|
177
|
+
option[:parser] = RubyParser
|
|
178
|
+
end
|
|
179
|
+
|
|
164
180
|
opts.on("-v", "--verbose", "Verbose. Show progress processing files.") do
|
|
165
181
|
options[:verbose] = true
|
|
166
182
|
end
|
|
@@ -208,6 +224,9 @@ class Debride < MethodBasedSexpProcessor
|
|
|
208
224
|
self.option = { :whitelist => [] }.merge options
|
|
209
225
|
self.known = Hash.new { |h,k| h[k] = Set.new }
|
|
210
226
|
self.called = Set.new
|
|
227
|
+
|
|
228
|
+
option[:parser] ||= NotRubyParser
|
|
229
|
+
|
|
211
230
|
super()
|
|
212
231
|
end
|
|
213
232
|
|
data/test/test_debride.rb
CHANGED
|
@@ -342,8 +342,11 @@ class TestDebride < Minitest::Test
|
|
|
342
342
|
end
|
|
343
343
|
|
|
344
344
|
def test_block_pass_empty
|
|
345
|
-
ruby =
|
|
346
|
-
|
|
345
|
+
ruby = <<~RUBY
|
|
346
|
+
def g(&)
|
|
347
|
+
f(&) # block forwarding
|
|
348
|
+
end
|
|
349
|
+
g
|
|
347
350
|
RUBY
|
|
348
351
|
|
|
349
352
|
assert_process [], ruby
|
data.tar.gz.sig
CHANGED
|
@@ -1,2 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
��Y�=n���vRv�N�-4~����n�����Q6����R�;��Tځ̿��\�Q��Lը�E�Ÿ�<*�Ԑ�7JU�Q��kHc��ץ�\����*3��c�/�
|
|
2
|
+
��ݐmm2�}|61�����}-MC�g��`F��P*���
|
|
3
|
+
I��Fގ<� QK�E��L��nۗێ��m�ta���L�I:
|
|
4
|
+
-T���o���<��fRL�S�U�q�g��? T>�P~F���QD�Z|����lz�+�?�H�
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: debride
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.14.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Ryan Davis
|
|
@@ -45,33 +45,33 @@ dependencies:
|
|
|
45
45
|
- !ruby/object:Gem::Version
|
|
46
46
|
version: '4.17'
|
|
47
47
|
- !ruby/object:Gem::Dependency
|
|
48
|
-
name:
|
|
48
|
+
name: prism
|
|
49
49
|
requirement: !ruby/object:Gem::Requirement
|
|
50
50
|
requirements:
|
|
51
51
|
- - "~>"
|
|
52
52
|
- !ruby/object:Gem::Version
|
|
53
|
-
version: '
|
|
53
|
+
version: '1.5'
|
|
54
54
|
type: :runtime
|
|
55
55
|
prerelease: false
|
|
56
56
|
version_requirements: !ruby/object:Gem::Requirement
|
|
57
57
|
requirements:
|
|
58
58
|
- - "~>"
|
|
59
59
|
- !ruby/object:Gem::Version
|
|
60
|
-
version: '
|
|
60
|
+
version: '1.5'
|
|
61
61
|
- !ruby/object:Gem::Dependency
|
|
62
62
|
name: path_expander
|
|
63
63
|
requirement: !ruby/object:Gem::Requirement
|
|
64
64
|
requirements:
|
|
65
65
|
- - "~>"
|
|
66
66
|
- !ruby/object:Gem::Version
|
|
67
|
-
version: '
|
|
67
|
+
version: '2.0'
|
|
68
68
|
type: :runtime
|
|
69
69
|
prerelease: false
|
|
70
70
|
version_requirements: !ruby/object:Gem::Requirement
|
|
71
71
|
requirements:
|
|
72
72
|
- - "~>"
|
|
73
73
|
- !ruby/object:Gem::Version
|
|
74
|
-
version: '
|
|
74
|
+
version: '2.0'
|
|
75
75
|
- !ruby/object:Gem::Dependency
|
|
76
76
|
name: rdoc
|
|
77
77
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -112,14 +112,14 @@ dependencies:
|
|
|
112
112
|
requirements:
|
|
113
113
|
- - "~>"
|
|
114
114
|
- !ruby/object:Gem::Version
|
|
115
|
-
version: '4.
|
|
115
|
+
version: '4.3'
|
|
116
116
|
type: :development
|
|
117
117
|
prerelease: false
|
|
118
118
|
version_requirements: !ruby/object:Gem::Requirement
|
|
119
119
|
requirements:
|
|
120
120
|
- - "~>"
|
|
121
121
|
- !ruby/object:Gem::Version
|
|
122
|
-
version: '4.
|
|
122
|
+
version: '4.3'
|
|
123
123
|
description: Analyze code for potentially uncalled / dead methods, now with auto-removal.
|
|
124
124
|
email:
|
|
125
125
|
- ryand-ruby@zenspider.com
|
|
@@ -164,7 +164,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
164
164
|
- !ruby/object:Gem::Version
|
|
165
165
|
version: '0'
|
|
166
166
|
requirements: []
|
|
167
|
-
rubygems_version: 3.
|
|
167
|
+
rubygems_version: 3.7.2
|
|
168
168
|
specification_version: 4
|
|
169
169
|
summary: Analyze code for potentially uncalled / dead methods, now with auto-removal.
|
|
170
170
|
test_files: []
|
metadata.gz.sig
CHANGED
|
Binary file
|