puppet-lint-trailing_comma-check 0.2.1 → 0.3.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: efe5aee738e1475cc878f16a346cd865a65816d5
4
- data.tar.gz: c28c215aa8395c695d3a2110a3d80fb1094d5aec
3
+ metadata.gz: fa2a36ca4307710331baaa180b0791ee63dcd591
4
+ data.tar.gz: d3444472a003019d87de2945c84c9f96f5eb1769
5
5
  SHA512:
6
- metadata.gz: 90b31b52f716941fb3febcc736b8bc87b0f507d4355cd2bbe1205db5f843cf968b96b38b46b5c2e48b22bafb7a60edeca75bcdd5f2b168bbc259b6d924366c98
7
- data.tar.gz: 4b983edc4f6f5f6ddbb6f4943af3accd9754b1bf0119835772c588f49809d00cd83c82683531a96eb7a905a87be6b673c91e5f6ce0cc3e3a44612a9ec3a70e06
6
+ metadata.gz: d235a2f71f944e22639ff157ddd7faada07d2ec6c92de801cf6de610ee576e9f09112d113aabecf3bc5fbb3495fb61ba3ff47386a30ab425fcb630a20c7d2c49
7
+ data.tar.gz: 066b977847270a699e830fe1b0f656415cfcd6997c15c9f76f4ba8185c8fd1c59797ec835413b8b5c3ee1214fa8a927ba4f4494b662f168c87fd27b60bf28b74
@@ -1,44 +1,76 @@
1
1
  PuppetLint.new_check(:trailing_comma) do
2
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
3
+ @array_indexes ||= Proc.new do
4
+ arrays = []
5
+ tokens.each_with_index do |token, token_idx|
6
+ if token.type == :LBRACK
7
+ real_idx = 0
8
+ tokens[token_idx+1..-1].each_with_index do |cur_token, cur_token_idx|
9
+ real_idx = token_idx + 1 + cur_token_idx
10
+ break if cur_token.type == :RBRACK
11
+ end
12
+
13
+ arrays << {
14
+ :start => token_idx,
15
+ :end => real_idx,
16
+ :tokens => tokens[token_idx..real_idx],
17
+ }
10
18
  end
19
+ end
20
+ arrays
21
+ end.call
22
+ end
11
23
 
12
- results << {
13
- :start => token_idx,
14
- :end => real_idx,
15
- :tokens => tokens[token_idx..real_idx],
16
- }
24
+ def hash_indexes
25
+ @hash_indexes ||= Proc.new do
26
+ hashes = []
27
+ tokens.each_with_index do |token, token_idx|
28
+ next unless token.prev_code_token
29
+ next unless [:EQUALS, :ISEQUAL, :FARROW, :LPAREN].include? token.prev_code_token.type
30
+ if token.type == :LBRACE
31
+ level = 0
32
+ real_idx = 0
33
+ tokens[token_idx+1..-1].each_with_index do |cur_token, cur_token_idx|
34
+ real_idx = token_idx + 1 + cur_token_idx
35
+
36
+ level += 1 if cur_token.type == :LBRACE
37
+ level -= 1 if cur_token.type == :RBRACE
38
+ break if level < 0
39
+ end
40
+
41
+ hashes << {
42
+ :start => token_idx,
43
+ :end => real_idx,
44
+ :tokens => tokens[token_idx..real_idx],
45
+ }
46
+ end
17
47
  end
18
- end
19
- results
48
+ hashes
49
+ end.call
20
50
  end
21
51
 
22
52
  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
53
+ @defaults_indexes ||= Proc.new do
54
+ defaults = []
55
+ tokens.each_with_index do |token, token_idx|
56
+ if token.type == :CLASSREF && token.next_code_token && \
57
+ token.next_code_token.type == :LBRACE
58
+ real_idx = 0
28
59
 
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
60
+ tokens[token_idx+1..-1].each_with_index do |cur_token, cur_token_idx|
61
+ real_idx = token_idx + 1 + cur_token_idx
62
+ break if cur_token.type == :RBRACE
63
+ end
33
64
 
34
- results << {
35
- :start => token_idx,
36
- :end => real_idx,
37
- :tokens => tokens[token_idx..real_idx],
38
- }
65
+ defaults << {
66
+ :start => token_idx,
67
+ :end => real_idx,
68
+ :tokens => tokens[token_idx..real_idx],
69
+ }
70
+ end
39
71
  end
40
- end
41
- results
72
+ defaults
73
+ end.call
42
74
  end
43
75
 
44
76
  def check_elem(elem, except_type)
@@ -67,6 +99,11 @@ PuppetLint.new_check(:trailing_comma) do
67
99
  check_elem(array, :LBRACK)
68
100
  end
69
101
 
102
+ # Hashes
103
+ hash_indexes.each do |hash|
104
+ check_elem(hash, :LBRACE)
105
+ end
106
+
70
107
  # Defaults
71
108
  defaults_indexes.each do |defaults|
72
109
  check_elem(defaults, :LBRACE)
@@ -41,6 +41,14 @@ describe 'trailing_comma' do
41
41
  owner => root,
42
42
  group => '0',
43
43
  }
44
+
45
+ $foo = {
46
+ 'bar' => {
47
+ baz => 'abc',
48
+ bazz => 'def',
49
+ },
50
+ 'qux' => 'ghi',
51
+ }
44
52
  EOS
45
53
  }
46
54
 
@@ -86,11 +94,19 @@ describe 'trailing_comma' do
86
94
  owner => root,
87
95
  group => '0'
88
96
  }
97
+
98
+ $foo = {
99
+ 'bar' => {
100
+ baz => 'abc',
101
+ bazz => 'def'
102
+ },
103
+ 'qux' => 'ghi'
104
+ }
89
105
  EOS
90
106
  }
91
107
 
92
- it 'should detect 4 problems' do
93
- expect(problems).to have(4).problems
108
+ it 'should detect 6 problems' do
109
+ expect(problems).to have(6).problems
94
110
  end
95
111
 
96
112
  it 'should create warnings' do
@@ -98,6 +114,8 @@ describe 'trailing_comma' do
98
114
  expect(problems).to contain_warning(msg).on_line(10).in_column(27)
99
115
  expect(problems).to contain_warning(msg).on_line(24).in_column(18)
100
116
  expect(problems).to contain_warning(msg).on_line(33).in_column(23)
117
+ expect(problems).to contain_warning(msg).on_line(39).in_column(26)
118
+ expect(problems).to contain_warning(msg).on_line(41).in_column(25)
101
119
  end
102
120
  end
103
121
  end
@@ -148,6 +166,14 @@ describe 'trailing_comma' do
148
166
  owner => root,
149
167
  group => '0',
150
168
  }
169
+
170
+ $foo = {
171
+ 'bar' => {
172
+ baz => 'abc',
173
+ bazz => 'def',
174
+ },
175
+ 'qux' => 'ghi',
176
+ }
151
177
  EOS
152
178
  }
153
179
 
@@ -197,11 +223,19 @@ describe 'trailing_comma' do
197
223
  owner => root,
198
224
  group => '0'
199
225
  }
226
+
227
+ $foo = {
228
+ 'bar' => {
229
+ baz => 'abc',
230
+ bazz => 'def'
231
+ },
232
+ 'qux' => 'ghi'
233
+ }
200
234
  EOS
201
235
  }
202
236
 
203
- it 'should detect 4 problems' do
204
- expect(problems).to have(4).problems
237
+ it 'should detect 6 problems' do
238
+ expect(problems).to have(6).problems
205
239
  end
206
240
 
207
241
  it 'should create a warning' do
@@ -209,6 +243,8 @@ describe 'trailing_comma' do
209
243
  expect(problems).to contain_fixed(msg).on_line(10).in_column(27)
210
244
  expect(problems).to contain_fixed(msg).on_line(24).in_column(18)
211
245
  expect(problems).to contain_fixed(msg).on_line(33).in_column(23)
246
+ expect(problems).to contain_fixed(msg).on_line(39).in_column(26)
247
+ expect(problems).to contain_fixed(msg).on_line(41).in_column(25)
212
248
  end
213
249
 
214
250
  it 'should add trailing commas' do
@@ -248,6 +284,14 @@ describe 'trailing_comma' do
248
284
  owner => root,
249
285
  group => '0',
250
286
  }
287
+
288
+ $foo = {
289
+ 'bar' => {
290
+ baz => 'abc',
291
+ bazz => 'def',
292
+ },
293
+ 'qux' => 'ghi',
294
+ }
251
295
  EOS
252
296
  )
253
297
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: puppet-lint-trailing_comma-check
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Camptocamp