flay 2.12.1 → 2.13.3
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 +0 -0
- data/History.rdoc +29 -0
- data/Rakefile +1 -1
- data/lib/flay.rb +5 -14
- data/lib/flay_erb.rb +58 -15
- data/lib/flay_task.rb +1 -1
- data.tar.gz.sig +0 -0
- metadata +22 -20
- 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: f398ea8e7f796a1871faedb32dbee7d7377d30abcc91edd075f2015a6be95c74
|
4
|
+
data.tar.gz: cdb49c908285be2c5c40118a33e7d0227e4a32a4b31736b374aaf31a43e58ac6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9c7f5b54202e563702d21ee8006d24124dd7810bb3518ae307a1eba17966a042864af2c0b772df9deab11517a8a6268159e5503d6fe70845722ef3544b7b84a9
|
7
|
+
data.tar.gz: 301d1e56ecfd1c12e8d41e826e56c44899598712aec55daac4ba55f74df547e5421250c3ea8dace955edaeacacd0a513c4a3e888f83aa47fddcfe340fb49c9b2
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data/History.rdoc
CHANGED
@@ -1,3 +1,32 @@
|
|
1
|
+
=== 2.13.3 / 2024-05-21
|
2
|
+
|
3
|
+
* 2 bug fixes:
|
4
|
+
|
5
|
+
* Add secondary sort of score & files on output. (njhammond)
|
6
|
+
* Sort input files to make tracking progress easier.
|
7
|
+
|
8
|
+
=== 2.13.2 / 2024-02-05
|
9
|
+
|
10
|
+
* 1 bug fix:
|
11
|
+
|
12
|
+
* Pass dirs to Flay.run in FlayTask. (adam12)
|
13
|
+
|
14
|
+
=== 2.13.1 / 2023-07-20
|
15
|
+
|
16
|
+
* 1 minor enhancement:
|
17
|
+
|
18
|
+
* Brought in action_view erubi hacks to enable block calls w/ <%= forms.
|
19
|
+
|
20
|
+
=== 2.13.0 / 2022-04-09
|
21
|
+
|
22
|
+
* 1 minor enhancement:
|
23
|
+
|
24
|
+
* Switched from erubis to erubi for erb processing. (clive-devops)
|
25
|
+
|
26
|
+
* 1 bug fix:
|
27
|
+
|
28
|
+
* Minor cleanup and top-level error handling changes.
|
29
|
+
|
1
30
|
=== 2.12.1 / 2019-10-08
|
2
31
|
|
3
32
|
* 1 bug fix:
|
data/Rakefile
CHANGED
data/lib/flay.rb
CHANGED
@@ -1,23 +1,14 @@
|
|
1
1
|
#!/usr/bin/env ruby -w
|
2
2
|
|
3
3
|
require "optparse"
|
4
|
-
require "rubygems"
|
5
4
|
require "sexp_processor"
|
6
5
|
require "ruby_parser"
|
7
6
|
require "path_expander"
|
8
7
|
require "timeout"
|
9
8
|
require "zlib"
|
10
9
|
|
11
|
-
class File
|
12
|
-
RUBY19 = "<3".respond_to? :encoding unless defined? RUBY19 # :nodoc:
|
13
|
-
|
14
|
-
class << self
|
15
|
-
alias :binread :read unless RUBY19
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
10
|
class Flay
|
20
|
-
VERSION = "2.
|
11
|
+
VERSION = "2.13.3" # :nodoc:
|
21
12
|
|
22
13
|
class Item < Struct.new(:structural_hash, :name, :bonus, :mass, :locations)
|
23
14
|
alias identical? bonus
|
@@ -35,7 +26,7 @@ class Flay
|
|
35
26
|
files = expander.filter_files expander.process, DEFAULT_IGNORE
|
36
27
|
|
37
28
|
flay = Flay.new Flay.parse_options args
|
38
|
-
flay.process(*files)
|
29
|
+
flay.process(*files.sort)
|
39
30
|
flay
|
40
31
|
end
|
41
32
|
|
@@ -159,8 +150,8 @@ class Flay
|
|
159
150
|
end
|
160
151
|
end
|
161
152
|
@@plugins
|
162
|
-
rescue
|
163
|
-
#
|
153
|
+
rescue => e
|
154
|
+
warn "Error loading plugins: #{e}" if option[:verbose]
|
164
155
|
end
|
165
156
|
|
166
157
|
# :stopdoc:
|
@@ -493,7 +484,7 @@ class Flay
|
|
493
484
|
if option[:summary] then
|
494
485
|
io.puts
|
495
486
|
|
496
|
-
self.summary.sort_by { |
|
487
|
+
self.summary.sort_by { |f,v| [-v, f] }.each do |file, score|
|
497
488
|
io.puts "%8.2f: %s" % [score, file]
|
498
489
|
end
|
499
490
|
|
data/lib/flay_erb.rb
CHANGED
@@ -1,8 +1,5 @@
|
|
1
|
-
#!/usr/bin/ruby
|
2
|
-
|
3
|
-
require "rubygems"
|
4
1
|
require "flay"
|
5
|
-
require "
|
2
|
+
require "erubi"
|
6
3
|
|
7
4
|
class Flay
|
8
5
|
|
@@ -13,7 +10,8 @@ class Flay
|
|
13
10
|
def process_erb file
|
14
11
|
erb = File.read file
|
15
12
|
|
16
|
-
ruby =
|
13
|
+
ruby = Erubi.new(erb).src
|
14
|
+
|
17
15
|
begin
|
18
16
|
RubyParser.new.process(ruby, file)
|
19
17
|
rescue => e
|
@@ -22,22 +20,67 @@ class Flay
|
|
22
20
|
end
|
23
21
|
end
|
24
22
|
|
25
|
-
|
26
|
-
|
23
|
+
# stolen (and munged) from lib/action_view/template/handlers/erb/erubi.rb
|
24
|
+
# this is also in the debride-erb gem, update both!
|
25
|
+
class Erubi < ::Erubi::Engine
|
26
|
+
# :nodoc: all
|
27
|
+
def initialize(input, properties = {})
|
28
|
+
@newline_pending = 0
|
29
|
+
|
30
|
+
properties[:postamble] = "_buf.to_s"
|
31
|
+
properties[:bufvar] = "_buf"
|
32
|
+
properties[:freeze_template_literals] = false
|
33
|
+
|
34
|
+
super
|
35
|
+
end
|
36
|
+
|
37
|
+
def add_text(text)
|
38
|
+
return if text.empty?
|
27
39
|
|
28
|
-
|
29
|
-
|
30
|
-
src << '@output_buffer.append= ' << code
|
40
|
+
if text == "\n"
|
41
|
+
@newline_pending += 1
|
31
42
|
else
|
32
|
-
src <<
|
43
|
+
src << "_buf.safe_append='"
|
44
|
+
src << "\n" * @newline_pending if @newline_pending > 0
|
45
|
+
src << text.gsub(/['\\]/, '\\\\\&')
|
46
|
+
src << "';"
|
47
|
+
|
48
|
+
@newline_pending = 0
|
33
49
|
end
|
34
50
|
end
|
35
51
|
|
36
|
-
|
37
|
-
|
38
|
-
|
52
|
+
BLOCK_EXPR = /\s*((\s+|\))do|\{)(\s*\|[^|]*\|)?\s*\Z/
|
53
|
+
|
54
|
+
def add_expression(indicator, code)
|
55
|
+
flush_newline_if_pending(src)
|
56
|
+
|
57
|
+
if (indicator == "==") || @escape
|
58
|
+
src << "_buf.safe_expr_append="
|
39
59
|
else
|
40
|
-
src << "
|
60
|
+
src << "_buf.append="
|
61
|
+
end
|
62
|
+
|
63
|
+
if BLOCK_EXPR.match?(code)
|
64
|
+
src << " " << code
|
65
|
+
else
|
66
|
+
src << "(" << code << ");"
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
def add_code(code)
|
71
|
+
flush_newline_if_pending(src)
|
72
|
+
super
|
73
|
+
end
|
74
|
+
|
75
|
+
def add_postamble(_)
|
76
|
+
flush_newline_if_pending(src)
|
77
|
+
super
|
78
|
+
end
|
79
|
+
|
80
|
+
def flush_newline_if_pending(src)
|
81
|
+
if @newline_pending > 0
|
82
|
+
src << "_buf.safe_append='#{"\n" * @newline_pending}';"
|
83
|
+
@newline_pending = 0
|
41
84
|
end
|
42
85
|
end
|
43
86
|
end
|
data/lib/flay_task.rb
CHANGED
@@ -45,7 +45,7 @@ class FlayTask < Rake::TaskLib
|
|
45
45
|
desc "Analyze for code duplication in: #{dirs.join(", ")}"
|
46
46
|
task name do
|
47
47
|
require "flay"
|
48
|
-
flay = Flay.run
|
48
|
+
flay = Flay.run(dirs)
|
49
49
|
flay.report if verbose
|
50
50
|
|
51
51
|
raise "Flay total too high! #{flay.total} > #{threshold}" if
|
data.tar.gz.sig
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,18 +1,18 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: flay
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.13.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryan Davis
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain:
|
11
11
|
- |
|
12
12
|
-----BEGIN CERTIFICATE-----
|
13
|
-
|
13
|
+
MIIDPjCCAiagAwIBAgIBCDANBgkqhkiG9w0BAQsFADBFMRMwEQYDVQQDDApyeWFu
|
14
14
|
ZC1ydWJ5MRkwFwYKCZImiZPyLGQBGRYJemVuc3BpZGVyMRMwEQYKCZImiZPyLGQB
|
15
|
-
|
15
|
+
GRYDY29tMB4XDTI0MDEwMjIxMjEyM1oXDTI1MDEwMTIxMjEyM1owRTETMBEGA1UE
|
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
|
+
AQCygvpmncmkiSs9r/Kceo4bBPDszhTv6iBi4LwMReqnFrpNLMOWJw7xi8x+3eL2
|
26
|
+
XS09ZPNOt2zm70KmFouBMgOysnDY4k2dE8uF6B8JbZOO8QfalW+CoNBliefOTcn2
|
27
|
+
bg5IOP7UoGM5lC174/cbDJrJnRG9bzig5FAP0mvsgA8zgTRXQzIUAZEo92D5K7p4
|
28
|
+
B4/O998ho6BSOgYBI9Yk1ttdCtti6Y+8N9+fZESsjtWMykA+WXWeGUScHqiU+gH8
|
29
|
+
S7043fq9EbQdBr2AXdj92+CDwuTfHI6/Hj5FVBDULufrJaan4xUgL70Hvc6pTTeW
|
30
|
+
deKfBjgVAq7EYHu1AczzlUly
|
31
31
|
-----END CERTIFICATE-----
|
32
|
-
date:
|
32
|
+
date: 2024-05-22 00:00:00.000000000 Z
|
33
33
|
dependencies:
|
34
34
|
- !ruby/object:Gem::Dependency
|
35
35
|
name: sexp_processor
|
@@ -60,19 +60,19 @@ dependencies:
|
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '3.0'
|
62
62
|
- !ruby/object:Gem::Dependency
|
63
|
-
name:
|
63
|
+
name: erubi
|
64
64
|
requirement: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version:
|
68
|
+
version: '1.10'
|
69
69
|
type: :runtime
|
70
70
|
prerelease: false
|
71
71
|
version_requirements: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
73
|
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version:
|
75
|
+
version: '1.10'
|
76
76
|
- !ruby/object:Gem::Dependency
|
77
77
|
name: path_expander
|
78
78
|
requirement: !ruby/object:Gem::Requirement
|
@@ -141,14 +141,14 @@ dependencies:
|
|
141
141
|
requirements:
|
142
142
|
- - "~>"
|
143
143
|
- !ruby/object:Gem::Version
|
144
|
-
version: '
|
144
|
+
version: '4.2'
|
145
145
|
type: :development
|
146
146
|
prerelease: false
|
147
147
|
version_requirements: !ruby/object:Gem::Requirement
|
148
148
|
requirements:
|
149
149
|
- - "~>"
|
150
150
|
- !ruby/object:Gem::Version
|
151
|
-
version: '
|
151
|
+
version: '4.2'
|
152
152
|
description: |-
|
153
153
|
Flay analyzes code for structural similarities. Differences in literal
|
154
154
|
values, variable, class, method names, whitespace, programming style,
|
@@ -176,8 +176,10 @@ files:
|
|
176
176
|
homepage: http://ruby.sadi.st/
|
177
177
|
licenses:
|
178
178
|
- MIT
|
179
|
-
metadata:
|
180
|
-
|
179
|
+
metadata:
|
180
|
+
homepage_uri: http://ruby.sadi.st/
|
181
|
+
source_code_uri: https://github.com/seattlerb/flay
|
182
|
+
post_install_message:
|
181
183
|
rdoc_options:
|
182
184
|
- "--main"
|
183
185
|
- README.rdoc
|
@@ -194,8 +196,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
194
196
|
- !ruby/object:Gem::Version
|
195
197
|
version: '0'
|
196
198
|
requirements: []
|
197
|
-
rubygems_version: 3.
|
198
|
-
signing_key:
|
199
|
+
rubygems_version: 3.5.3
|
200
|
+
signing_key:
|
199
201
|
specification_version: 4
|
200
202
|
summary: Flay analyzes code for structural similarities
|
201
203
|
test_files: []
|
metadata.gz.sig
CHANGED
Binary file
|