puppet-lint-class_alignment-check 0.3.2 → 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: d8c9035498fac5688a9587ff1b5eaaf15027974e85ac46c9745419b3cd309319
4
- data.tar.gz: c0d6f86ab41d272eb2f2e1883ebd2f9502888a1ba21d592523c8038d1f0dc5a4
3
+ metadata.gz: 3dc0a012b0d80156eaad90609fb62d8f32d580d6acbc5f28e6981d71137fc301
4
+ data.tar.gz: 72378622329307ce0c0631caebec4fef365fe137b89581bfd01bae1e8bad9537
5
5
  SHA512:
6
- metadata.gz: b1bd3766aa9650219858800d4374434fba8fca275fe905d1734917ddcfb17fe1ff64efb33ffdeaa98ca48ff85feff8242fe45127c2460f6cd752e854d5c18952
7
- data.tar.gz: 9d1e88aa315c31b44660589c183f6beca1399a84219a6f6f57ad741fb1eae633d4bd7c92e537c3b6b2c73767cbb0a3f70084040540cbb0681030272bdca5bee6
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 token&.type == :VARIABLE && !%i[DQPRE DQMID].include?(token.prev_code_token.type)
12
- true
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
 
@@ -12,21 +12,16 @@ PuppetLint.new_check(:class_params_newline) do
12
12
  tokens = item[:param_tokens]
13
13
  next if tokens.nil?
14
14
 
15
- first_param = tokens.index { |token| a_param?(token) }
16
- last_param = tokens.rindex { |token| a_param?(token) }
17
- next if first_param.nil?
18
- next if last_param.nil?
19
-
20
- # Skip if there's only 1 param
21
- 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
22
21
 
23
22
  tokens.each do |token|
24
23
  if token == tokens[-1]
25
- rparen = token
26
- while rparen&.next_token
27
- rparen = rparen.next_token
28
- break if rparen.type == :RPAREN
29
- end
24
+ rparen = token.next_token_of(:RPAREN)
30
25
 
31
26
  last_code_token = token
32
27
  while last_code_token&.prev_token
@@ -46,7 +41,6 @@ PuppetLint.new_check(:class_params_newline) do
46
41
  newline: true,
47
42
  newline_indent: item[:tokens][0].column - 1
48
43
  )
49
- break
50
44
  end
51
45
 
52
46
  next unless a_param?(token)
@@ -57,6 +51,7 @@ PuppetLint.new_check(:class_params_newline) do
57
51
  next
58
52
  end
59
53
 
54
+ # binding.break
60
55
  notify(
61
56
  :warning,
62
57
  message: "`#{token.to_manifest}` should be in a new line (expected in line #{token.line + 1}, but found it in line #{token.line})",
@@ -72,26 +67,37 @@ PuppetLint.new_check(:class_params_newline) do
72
67
 
73
68
  def fix(problem)
74
69
  token = problem[:token]
75
- case token&.prev_code_token&.type
76
- when :TYPE
77
- token = token.prev_code_token
78
- when :RBRACK
79
- count = 0
80
- while token&.prev_code_token
70
+ if token.type == :VARIABLE
71
+ # Integer $db_port
72
+ if token&.prev_code_token&.type == :TYPE
81
73
  token = token.prev_code_token
82
- case token.type
83
- when :RBRACK
84
- count += 1
85
- when :LBRACK
86
- count -= 1
87
- end
88
74
 
89
- break if count.zero?
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
90
90
  end
91
- token = token.prev_code_token
92
91
  end
93
92
 
94
- index = tokens.index(token.prev_code_token.next_token)
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
95
101
  tokens.insert(index, PuppetLint::Lexer::Token.new(:NEWLINE, "\n", 0, 0))
96
102
 
97
103
  # When there's no space at the beginning of the param
@@ -95,44 +95,123 @@ describe 'class_params_newline' do
95
95
  let(:code) do
96
96
  <<-END
97
97
  class foo ($foo = 1, $bar = $a) {}
98
+ class foo ($foo = 1, $bar = $a, $foo = 1, $bar = $a, $foo = 1, $bar = $a) {}
98
99
 
99
100
  class bar ($foo = 1, $bar = $a,) {}
101
+ class bar ($foo = 1, $bar = $a, $foo = 1, $bar = $a, $foo = 1, $bar = $a,) {}
100
102
 
101
103
  class aaa ( $foo = 1, $bar = $a,) {}
104
+ class aaa ( $foo = 1, $bar = $a, $foo = 1, $bar = $a, $foo = 1, $bar = $a,) {}
102
105
 
103
106
  class bbb ( $foo = 1, $bar = $a, ) {}
107
+ class bbb ( $foo = 1, $bar = $a, $foo = 1, $bar = $a, $foo = 1, $bar = $a, ) {}
104
108
 
105
109
  class ccc ($foo = 1) {}
106
110
 
107
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) { }
108
126
  END
109
127
  end
110
128
 
111
129
  let(:fixed) do
112
130
  <<-END
131
+ class foo ($foo = 1, $bar = $a) {}
113
132
  class foo (
133
+ $foo = 1,
134
+ $bar = $a,
135
+ $foo = 1,
136
+ $bar = $a,
114
137
  $foo = 1,
115
138
  $bar = $a
116
139
  ) {}
117
140
 
141
+ class bar ($foo = 1, $bar = $a,) {}
118
142
  class bar (
119
143
  $foo = 1,
120
144
  $bar = $a,
145
+ $foo = 1,
146
+ $bar = $a,
147
+ $foo = 1,
148
+ $bar = $a,
121
149
  ) {}
122
150
 
151
+ class aaa ( $foo = 1, $bar = $a,) {}
123
152
  class aaa (
124
153
  $foo = 1,
125
154
  $bar = $a,
155
+ $foo = 1,
156
+ $bar = $a,
157
+ $foo = 1,
158
+ $bar = $a,
126
159
  ) {}
127
160
 
161
+ class bbb ( $foo = 1, $bar = $a, ) {}
128
162
  class bbb (
129
163
  $foo = 1,
130
164
  $bar = $a,
165
+ $foo = 1,
166
+ $bar = $a,
167
+ $foo = 1,
168
+ $bar = $a,
131
169
  ) {}
132
170
 
133
171
  class ccc ($foo = 1) {}
134
172
 
135
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
+ ) { }
136
215
  END
137
216
  end
138
217
 
metadata CHANGED
@@ -1,7 +1,7 @@
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.2
4
+ version: 0.3.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Anh Pham