puppet-lint-trailing_comma-check 0.1.3 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7d68ac60631084104f565a115f14a8492d2e41d8
|
4
|
+
data.tar.gz: cfa1c09748146e3cd158cd08f58e705c685e07a8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 23415bfa426889069025182ef393b769a0eb9926f0115466d6aebae0ea7e81ce244f517bea03e9557d4066343017855291064f5ba2babed3bf06c36236d0d782
|
7
|
+
data.tar.gz: ae3f3b49374e58d5a5b4453f8b47db53e795c6f2c307f54aa2aaedf49119dd30c425461487e28f6b9892c2635de9cfe18d4f4aa78578fba0ea43580ec4d644a0
|
@@ -1,19 +1,75 @@
|
|
1
1
|
PuppetLint.new_check(:trailing_comma) do
|
2
|
+
def array_indexes
|
3
|
+
results = []
|
4
|
+
tokens.each_with_index do |token, token_idx|
|
5
|
+
if token.type == :LBRACK
|
6
|
+
real_idx = 0
|
7
|
+
tokens[token_idx+1..-1].each_with_index do |cur_token, cur_token_idx|
|
8
|
+
real_idx = token_idx + 1 + cur_token_idx
|
9
|
+
break if cur_token.type == :RBRACK
|
10
|
+
end
|
11
|
+
|
12
|
+
results << {
|
13
|
+
:start => token_idx,
|
14
|
+
:end => real_idx,
|
15
|
+
:tokens => tokens[token_idx..real_idx],
|
16
|
+
}
|
17
|
+
end
|
18
|
+
end
|
19
|
+
results
|
20
|
+
end
|
21
|
+
|
22
|
+
def defaults_indexes
|
23
|
+
results = []
|
24
|
+
tokens.each_with_index do |token, token_idx|
|
25
|
+
if token.type == :CLASSREF && token.next_code_token && \
|
26
|
+
token.next_code_token.type == :LBRACE
|
27
|
+
real_idx = 0
|
28
|
+
|
29
|
+
tokens[token_idx+1..-1].each_with_index do |cur_token, cur_token_idx|
|
30
|
+
real_idx = token_idx + 1 + cur_token_idx
|
31
|
+
break if cur_token.type == :RBRACE
|
32
|
+
end
|
33
|
+
|
34
|
+
results << {
|
35
|
+
:start => token_idx,
|
36
|
+
:end => real_idx,
|
37
|
+
:tokens => tokens[token_idx..real_idx],
|
38
|
+
}
|
39
|
+
end
|
40
|
+
end
|
41
|
+
results
|
42
|
+
end
|
43
|
+
|
44
|
+
def check_elem(elem)
|
45
|
+
lbo_token = elem[:tokens][-1].prev_code_token
|
46
|
+
if lbo_token && lbo_token.type != :COLON && \
|
47
|
+
elem[:tokens][-1].type != :SEMIC && \
|
48
|
+
lbo_token.type != :COMMA && \
|
49
|
+
lbo_token.next_token.type == :NEWLINE
|
50
|
+
notify :warning, {
|
51
|
+
:message => 'missing trailing comma after last element',
|
52
|
+
:line => lbo_token.next_token.line,
|
53
|
+
:column => lbo_token.next_token.column,
|
54
|
+
:token => lbo_token.next_token,
|
55
|
+
}
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
2
59
|
def check
|
3
60
|
# Resource and class declarations
|
4
61
|
resource_indexes.each do |resource|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
end
|
62
|
+
check_elem(resource)
|
63
|
+
end
|
64
|
+
|
65
|
+
# Arrays
|
66
|
+
array_indexes.each do |array|
|
67
|
+
check_elem(array)
|
68
|
+
end
|
69
|
+
|
70
|
+
# Defaults
|
71
|
+
defaults_indexes.each do |defaults|
|
72
|
+
check_elem(defaults)
|
17
73
|
end
|
18
74
|
end
|
19
75
|
|
@@ -1,7 +1,7 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe 'trailing_comma' do
|
4
|
-
let (:msg) { 'missing trailing comma after last
|
4
|
+
let (:msg) { 'missing trailing comma after last element' }
|
5
5
|
|
6
6
|
context 'with fix disabled' do
|
7
7
|
context 'trailing comma present' do
|
@@ -26,6 +26,19 @@ describe 'trailing_comma' do
|
|
26
26
|
}
|
27
27
|
|
28
28
|
resources { 'sshkey': purge => true }
|
29
|
+
|
30
|
+
user { 'elmo':
|
31
|
+
groups => [
|
32
|
+
'foo',
|
33
|
+
'bar',
|
34
|
+
],
|
35
|
+
groupss => ['baz', 'qux'],
|
36
|
+
}
|
37
|
+
|
38
|
+
File {
|
39
|
+
owner => root,
|
40
|
+
group => '0',
|
41
|
+
}
|
29
42
|
EOS
|
30
43
|
}
|
31
44
|
|
@@ -56,16 +69,31 @@ describe 'trailing_comma' do
|
|
56
69
|
}
|
57
70
|
|
58
71
|
resources { 'sshkey': purge => true }
|
72
|
+
|
73
|
+
user { 'elmo':
|
74
|
+
groups => [
|
75
|
+
'foo',
|
76
|
+
'bar'
|
77
|
+
],
|
78
|
+
groupss => ['baz', 'qux'],
|
79
|
+
}
|
80
|
+
|
81
|
+
File {
|
82
|
+
owner => root,
|
83
|
+
group => '0'
|
84
|
+
}
|
59
85
|
EOS
|
60
86
|
}
|
61
87
|
|
62
|
-
it 'should detect
|
63
|
-
expect(problems).to have(
|
88
|
+
it 'should detect 4 problems' do
|
89
|
+
expect(problems).to have(4).problems
|
64
90
|
end
|
65
91
|
|
66
|
-
it 'should create
|
92
|
+
it 'should create warnings' do
|
67
93
|
expect(problems).to contain_warning(msg).on_line(3).in_column(32)
|
68
94
|
expect(problems).to contain_warning(msg).on_line(10).in_column(27)
|
95
|
+
expect(problems).to contain_warning(msg).on_line(24).in_column(18)
|
96
|
+
expect(problems).to contain_warning(msg).on_line(31).in_column(23)
|
69
97
|
end
|
70
98
|
end
|
71
99
|
end
|
@@ -101,6 +129,19 @@ describe 'trailing_comma' do
|
|
101
129
|
}
|
102
130
|
|
103
131
|
resources { 'sshkey': purge => true }
|
132
|
+
|
133
|
+
user { 'elmo':
|
134
|
+
groups => [
|
135
|
+
'foo',
|
136
|
+
'bar',
|
137
|
+
],
|
138
|
+
groupss => ['baz', 'qux'],
|
139
|
+
}
|
140
|
+
|
141
|
+
File {
|
142
|
+
owner => root,
|
143
|
+
group => '0',
|
144
|
+
}
|
104
145
|
EOS
|
105
146
|
}
|
106
147
|
|
@@ -135,16 +176,31 @@ describe 'trailing_comma' do
|
|
135
176
|
}
|
136
177
|
|
137
178
|
resources { 'sshkey': purge => true }
|
179
|
+
|
180
|
+
user { 'elmo':
|
181
|
+
groups => [
|
182
|
+
'foo',
|
183
|
+
'bar'
|
184
|
+
],
|
185
|
+
groupss => ['baz', 'qux'],
|
186
|
+
}
|
187
|
+
|
188
|
+
File {
|
189
|
+
owner => root,
|
190
|
+
group => '0'
|
191
|
+
}
|
138
192
|
EOS
|
139
193
|
}
|
140
194
|
|
141
|
-
it 'should detect
|
142
|
-
expect(problems).to have(
|
195
|
+
it 'should detect 4 problems' do
|
196
|
+
expect(problems).to have(4).problems
|
143
197
|
end
|
144
198
|
|
145
199
|
it 'should create a warning' do
|
146
200
|
expect(problems).to contain_fixed(msg).on_line(3).in_column(32)
|
147
201
|
expect(problems).to contain_fixed(msg).on_line(10).in_column(27)
|
202
|
+
expect(problems).to contain_fixed(msg).on_line(24).in_column(18)
|
203
|
+
expect(problems).to contain_fixed(msg).on_line(31).in_column(23)
|
148
204
|
end
|
149
205
|
|
150
206
|
it 'should add trailing commas' do
|
@@ -169,6 +225,19 @@ describe 'trailing_comma' do
|
|
169
225
|
}
|
170
226
|
|
171
227
|
resources { 'sshkey': purge => true }
|
228
|
+
|
229
|
+
user { 'elmo':
|
230
|
+
groups => [
|
231
|
+
'foo',
|
232
|
+
'bar',
|
233
|
+
],
|
234
|
+
groupss => ['baz', 'qux'],
|
235
|
+
}
|
236
|
+
|
237
|
+
File {
|
238
|
+
owner => root,
|
239
|
+
group => '0',
|
240
|
+
}
|
172
241
|
EOS
|
173
242
|
)
|
174
243
|
end
|