puppet-lint-class_alignment-check 0.3.0 → 0.3.3
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
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3dc0a012b0d80156eaad90609fb62d8f32d580d6acbc5f28e6981d71137fc301
|
4
|
+
data.tar.gz: 72378622329307ce0c0631caebec4fef365fe137b89581bfd01bae1e8bad9537
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f7750b39ff5ef57ec5fca519a77e1aa0a1b0def9d906814c4c6b2cf096229a8cde51bc75d796e174c4f351e3fe17f4a5baeb79b3649d468e255f88433d3691a2
|
7
|
+
data.tar.gz: 79e3897e36b000f944ebe5d90bbdd671215e2fe94d4a6956a3ddd258fbced0ec4ecd5c8bee7e94b9a69fbc1df88fff411b87872f74babce420f870fc3ac84339
|
@@ -8,8 +8,21 @@ def a_param?(token)
|
|
8
8
|
false
|
9
9
|
elsif token&.prev_code_token&.type == :FARROW
|
10
10
|
false
|
11
|
-
elsif
|
12
|
-
|
11
|
+
elsif %i[DQPRE DQMID].include?(token&.prev_code_token&.type)
|
12
|
+
false
|
13
|
+
elsif token&.type == :VARIABLE
|
14
|
+
count = 0
|
15
|
+
while token&.prev_token
|
16
|
+
token = token.prev_token
|
17
|
+
if %i[LPAREN LBRACK LBRACE].include?(token.type)
|
18
|
+
count += 1
|
19
|
+
elsif %i[RPAREN RBRACK RBRACE].include?(token.type)
|
20
|
+
count -= 1
|
21
|
+
elsif %i[DEFINE CLASS].include?(token.type)
|
22
|
+
break
|
23
|
+
end
|
24
|
+
end
|
25
|
+
true if count == 1
|
13
26
|
end
|
14
27
|
end
|
15
28
|
|
@@ -10,27 +10,51 @@ PuppetLint.new_check(:class_params_newline) do
|
|
10
10
|
def check
|
11
11
|
(class_indexes + defined_type_indexes).each do |item|
|
12
12
|
tokens = item[:param_tokens]
|
13
|
+
next if tokens.nil?
|
13
14
|
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
next if
|
18
|
-
|
19
|
-
|
20
|
-
next if tokens[first_param] == tokens[last_param]
|
15
|
+
# Skip if line length < 80 chars
|
16
|
+
first_paren = tokens[0]&.prev_token_of(:LPAREN)
|
17
|
+
last_paren = tokens[-1]&.next_token_of(:RPAREN)
|
18
|
+
next if first_paren.nil?
|
19
|
+
next if last_paren.nil?
|
20
|
+
next if first_paren.line == last_paren.line && last_paren.column < 80
|
21
21
|
|
22
22
|
tokens.each do |token|
|
23
|
+
if token == tokens[-1]
|
24
|
+
rparen = token.next_token_of(:RPAREN)
|
25
|
+
|
26
|
+
last_code_token = token
|
27
|
+
while last_code_token&.prev_token
|
28
|
+
break unless %i[WHITESPACE INDENT NEWLINE].include?(last_code_token.type)
|
29
|
+
|
30
|
+
last_code_token = last_code_token.prev_token
|
31
|
+
end
|
32
|
+
|
33
|
+
next if rparen.line != last_code_token.line
|
34
|
+
|
35
|
+
notify(
|
36
|
+
:warning,
|
37
|
+
message: "`)` should be in a new line (expected in line #{token.line + 1}, but found it in line #{token.line})",
|
38
|
+
line: rparen.line,
|
39
|
+
column: rparen.column,
|
40
|
+
token: rparen,
|
41
|
+
newline: true,
|
42
|
+
newline_indent: item[:tokens][0].column - 1
|
43
|
+
)
|
44
|
+
end
|
45
|
+
|
23
46
|
next unless a_param?(token)
|
24
47
|
|
25
|
-
if token.prev_code_token == :LPAREN
|
48
|
+
if token.prev_code_token.type == :LPAREN
|
26
49
|
next if token.line != token.prev_code_token.line
|
27
50
|
elsif token.line != prev_param_token(token).line
|
28
51
|
next
|
29
52
|
end
|
30
53
|
|
54
|
+
# binding.break
|
31
55
|
notify(
|
32
56
|
:warning,
|
33
|
-
message: "
|
57
|
+
message: "`#{token.to_manifest}` should be in a new line (expected in line #{token.line + 1}, but found it in line #{token.line})",
|
34
58
|
line: token.line,
|
35
59
|
column: token.column,
|
36
60
|
token: token,
|
@@ -43,28 +67,46 @@ PuppetLint.new_check(:class_params_newline) do
|
|
43
67
|
|
44
68
|
def fix(problem)
|
45
69
|
token = problem[:token]
|
46
|
-
|
47
|
-
|
48
|
-
token
|
49
|
-
when :RBRACK
|
50
|
-
count = 0
|
51
|
-
while token&.prev_code_token
|
70
|
+
if token.type == :VARIABLE
|
71
|
+
# Integer $db_port
|
72
|
+
if token&.prev_code_token&.type == :TYPE
|
52
73
|
token = token.prev_code_token
|
53
|
-
case token.type
|
54
|
-
when :RBRACK
|
55
|
-
count += 1
|
56
|
-
when :LBRACK
|
57
|
-
count -= 1
|
58
|
-
end
|
59
74
|
|
60
|
-
|
75
|
+
# Variant[Undef, Enum['UNSET'], Stdlib::Port] $db_port
|
76
|
+
elsif token&.prev_code_token&.type == :RBRACK
|
77
|
+
count = 0
|
78
|
+
while token&.prev_code_token
|
79
|
+
token = token.prev_code_token
|
80
|
+
case token.type
|
81
|
+
when :RBRACK
|
82
|
+
count += 1
|
83
|
+
when :LBRACK
|
84
|
+
count -= 1
|
85
|
+
end
|
86
|
+
|
87
|
+
break if count.zero?
|
88
|
+
end
|
89
|
+
token = token.prev_code_token
|
61
90
|
end
|
62
|
-
token = token.prev_code_token
|
63
91
|
end
|
64
92
|
|
65
|
-
|
93
|
+
last_non_whitespace_token = token.prev_token
|
94
|
+
while last_non_whitespace_token&.prev_token
|
95
|
+
break unless %i[WHITESPACE INDENT NEWLINE].include?(last_non_whitespace_token.type)
|
96
|
+
|
97
|
+
last_non_whitespace_token = last_non_whitespace_token.prev_token
|
98
|
+
end
|
99
|
+
|
100
|
+
index = tokens.index(last_non_whitespace_token) + 1
|
66
101
|
tokens.insert(index, PuppetLint::Lexer::Token.new(:NEWLINE, "\n", 0, 0))
|
67
102
|
|
68
|
-
|
103
|
+
# When there's no space at the beginning of the param
|
104
|
+
# e.g. class foo($bar="aaa") {}
|
105
|
+
if token.prev_code_token.next_token == token
|
106
|
+
tokens.insert(index + 1, PuppetLint::Lexer::Token.new(:INDENT, ' ' * problem[:newline_indent], 0, 0))
|
107
|
+
|
108
|
+
elsif %i[WHITESPACE INDENT].include?(token.prev_token.type)
|
109
|
+
token.prev_token.value = ' ' * problem[:newline_indent]
|
110
|
+
end
|
69
111
|
end
|
70
112
|
end
|
@@ -1,7 +1,7 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe 'class_params_newline' do
|
4
|
-
let(:msg) { '
|
4
|
+
let(:msg) { '`%s` should be in a new line (expected in line %d, but found it in line %d)' }
|
5
5
|
|
6
6
|
context 'with fix disabled' do
|
7
7
|
context 'tidy code' do
|
@@ -90,5 +90,134 @@ describe 'class_params_newline' do
|
|
90
90
|
expect(manifest).to eq(fixed)
|
91
91
|
end
|
92
92
|
end
|
93
|
+
|
94
|
+
context 'in a single line' do
|
95
|
+
let(:code) do
|
96
|
+
<<-END
|
97
|
+
class foo ($foo = 1, $bar = $a) {}
|
98
|
+
class foo ($foo = 1, $bar = $a, $foo = 1, $bar = $a, $foo = 1, $bar = $a) {}
|
99
|
+
|
100
|
+
class bar ($foo = 1, $bar = $a,) {}
|
101
|
+
class bar ($foo = 1, $bar = $a, $foo = 1, $bar = $a, $foo = 1, $bar = $a,) {}
|
102
|
+
|
103
|
+
class aaa ( $foo = 1, $bar = $a,) {}
|
104
|
+
class aaa ( $foo = 1, $bar = $a, $foo = 1, $bar = $a, $foo = 1, $bar = $a,) {}
|
105
|
+
|
106
|
+
class bbb ( $foo = 1, $bar = $a, ) {}
|
107
|
+
class bbb ( $foo = 1, $bar = $a, $foo = 1, $bar = $a, $foo = 1, $bar = $a, ) {}
|
108
|
+
|
109
|
+
class ccc ($foo = 1) {}
|
110
|
+
|
111
|
+
class ddd {}
|
112
|
+
|
113
|
+
class eee (
|
114
|
+
$foo = 1,
|
115
|
+
$workers = max($::processorcount, 1),
|
116
|
+
$database_path = $aaa,) inherits sap_zabbix::params { }
|
117
|
+
{ }
|
118
|
+
|
119
|
+
class fff ($foo, $bar=[], $foo, $bar=[], $foo, $bar=[], $listen_ips = [$::ipaddress]) {}
|
120
|
+
|
121
|
+
define ggg ($foo, $bar=[]) {}
|
122
|
+
|
123
|
+
define long_ggg ($foo, $bar=[], $foo, $bar=[], $foo, $bar=[], $foo, $bar=[]) {}
|
124
|
+
|
125
|
+
define asdf ($prefix, $pattern, $expire, $port, $prefix, $pattern, $expire, $port) { }
|
126
|
+
END
|
127
|
+
end
|
128
|
+
|
129
|
+
let(:fixed) do
|
130
|
+
<<-END
|
131
|
+
class foo ($foo = 1, $bar = $a) {}
|
132
|
+
class foo (
|
133
|
+
$foo = 1,
|
134
|
+
$bar = $a,
|
135
|
+
$foo = 1,
|
136
|
+
$bar = $a,
|
137
|
+
$foo = 1,
|
138
|
+
$bar = $a
|
139
|
+
) {}
|
140
|
+
|
141
|
+
class bar ($foo = 1, $bar = $a,) {}
|
142
|
+
class bar (
|
143
|
+
$foo = 1,
|
144
|
+
$bar = $a,
|
145
|
+
$foo = 1,
|
146
|
+
$bar = $a,
|
147
|
+
$foo = 1,
|
148
|
+
$bar = $a,
|
149
|
+
) {}
|
150
|
+
|
151
|
+
class aaa ( $foo = 1, $bar = $a,) {}
|
152
|
+
class aaa (
|
153
|
+
$foo = 1,
|
154
|
+
$bar = $a,
|
155
|
+
$foo = 1,
|
156
|
+
$bar = $a,
|
157
|
+
$foo = 1,
|
158
|
+
$bar = $a,
|
159
|
+
) {}
|
160
|
+
|
161
|
+
class bbb ( $foo = 1, $bar = $a, ) {}
|
162
|
+
class bbb (
|
163
|
+
$foo = 1,
|
164
|
+
$bar = $a,
|
165
|
+
$foo = 1,
|
166
|
+
$bar = $a,
|
167
|
+
$foo = 1,
|
168
|
+
$bar = $a,
|
169
|
+
) {}
|
170
|
+
|
171
|
+
class ccc ($foo = 1) {}
|
172
|
+
|
173
|
+
class ddd {}
|
174
|
+
|
175
|
+
class eee (
|
176
|
+
$foo = 1,
|
177
|
+
$workers = max($::processorcount, 1),
|
178
|
+
$database_path = $aaa,
|
179
|
+
) inherits sap_zabbix::params { }
|
180
|
+
{ }
|
181
|
+
|
182
|
+
class fff (
|
183
|
+
$foo,
|
184
|
+
$bar=[],
|
185
|
+
$foo,
|
186
|
+
$bar=[],
|
187
|
+
$foo,
|
188
|
+
$bar=[],
|
189
|
+
$listen_ips = [$::ipaddress]
|
190
|
+
) {}
|
191
|
+
|
192
|
+
define ggg ($foo, $bar=[]) {}
|
193
|
+
|
194
|
+
define long_ggg (
|
195
|
+
$foo,
|
196
|
+
$bar=[],
|
197
|
+
$foo,
|
198
|
+
$bar=[],
|
199
|
+
$foo,
|
200
|
+
$bar=[],
|
201
|
+
$foo,
|
202
|
+
$bar=[]
|
203
|
+
) {}
|
204
|
+
|
205
|
+
define asdf (
|
206
|
+
$prefix,
|
207
|
+
$pattern,
|
208
|
+
$expire,
|
209
|
+
$port,
|
210
|
+
$prefix,
|
211
|
+
$pattern,
|
212
|
+
$expire,
|
213
|
+
$port
|
214
|
+
) { }
|
215
|
+
END
|
216
|
+
end
|
217
|
+
|
218
|
+
it 'should fix the problems' do
|
219
|
+
expect(manifest).to eq(fixed)
|
220
|
+
end
|
221
|
+
end
|
93
222
|
end
|
94
223
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: puppet-lint-class_alignment-check
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Anh Pham
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-05-
|
11
|
+
date: 2022-05-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: puppet-lint
|