puppet-lint-class_parameter-check 0.1.0 → 0.1.1

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: 6c5361e935c4344c4564501bec96dcadf862bc2e
4
- data.tar.gz: 204b0beec1bee3ce66024ebe875c5dd667bf2d49
3
+ metadata.gz: 8d4ff8ab903779758a54fac337183a597a64ecf2
4
+ data.tar.gz: 13672cb4c1c29d1f461b8c573bff36b172bcbd3c
5
5
  SHA512:
6
- metadata.gz: 4cbced68e79a4d40abd5c346f94026cccae7587a422313e1cb53496502d3eba3626b21a57e3dd81c1cf4886353ee39171a4f0d992173f326e1bd3b958726ca22
7
- data.tar.gz: e5f3c4cfeac458dd3a10003ff6656c6abd2564952af1d3c8a30b8255a32ae09738540f264541dd80ea6ba535a13f54f4652f314c48dd0ec36395cddd71e8ebeb
6
+ metadata.gz: fe4e9065152745426c4f8ad70c9c8b0606ed9612313e862e9294eea4a7b7a89ce6ee402d58e23c7829e205d5c22653652be3ad2d54c0475ebb3e572f134aa171
7
+ data.tar.gz: 52fa35443e2dee2370ec19c32f7121543df9923abc4904cfa321548b468faf4d51e1d427bb021aa942d33f0d28d168bc9c7721c0426ca277e81038ae95a2d15e
@@ -45,9 +45,16 @@ class ClassParameterList
45
45
  private
46
46
  def parameters
47
47
  parameter = ClassParameter.new
48
+ stack = []
48
49
 
49
50
  @tokens.inject([]) do |memo, token|
50
- if (token.type == :COMMA || token == @tokens.last) && parameter.tokens.any?
51
+ if token.type == :LBRACK
52
+ stack.push(true)
53
+ elsif token.type == :RBRACK
54
+ stack.pop
55
+ end
56
+
57
+ if (token.type == :COMMA || token == @tokens.last) && stack.empty? && parameter.tokens.any?
51
58
  # always add a comma and a newline token at the end of each parameter
52
59
  parameter.add(PuppetLint::Lexer::Token.new(:COMMA, ",", 0,0))
53
60
  parameter.add(PuppetLint::Lexer::Token.new(:NEWLINE, "\n", 0,0))
@@ -26,31 +26,20 @@ describe 'class_parameter' do
26
26
  it 'has no problems' do
27
27
  expect(problems).to have(0).problems
28
28
  end
29
- end
30
-
31
- context 'class with only optional parameters' do
32
- let(:code) { <<-EOF
33
- class puppet_module(
34
- String $alphabetical = default
35
- ) { }
36
- EOF
37
- }
38
-
39
- it 'has no problems' do
40
- expect(problems).to have(0).problems
41
- end
42
29
 
43
- context 'optional parameter from inherited class' do
30
+ context 'with hash parameters' do
44
31
  let(:code) { <<-EOF
45
32
  class puppet_module(
46
- String $alphabetical = $puppet_module::params::alphabetical
47
- ) inherits puppet_module::params { }
33
+ Hash [String, String] $alphabetical,
34
+ String $non_alphabetical
35
+ ) { }
48
36
  EOF
49
37
  }
50
38
 
51
39
  it 'has no problems' do
52
40
  expect(problems).to have(0).problems
53
41
  end
42
+
54
43
  end
55
44
  end
56
45
 
@@ -69,6 +58,32 @@ describe 'class_parameter' do
69
58
  end
70
59
  end
71
60
 
61
+ context 'class with only optional parameters' do
62
+ let(:code) { <<-EOF
63
+ class puppet_module(
64
+ String $alphabetical = default
65
+ ) { }
66
+ EOF
67
+ }
68
+
69
+ it 'has no problems' do
70
+ expect(problems).to have(0).problems
71
+ end
72
+
73
+ context 'optional parameter from inherited class' do
74
+ let(:code) { <<-EOF
75
+ class puppet_module(
76
+ String $alphabetical = $puppet_module::params::alphabetical
77
+ ) inherits puppet_module::params { }
78
+ EOF
79
+ }
80
+
81
+ it 'has no problems' do
82
+ expect(problems).to have(0).problems
83
+ end
84
+ end
85
+ end
86
+
72
87
  context 'class with required and optional parameters' do
73
88
  context 'sorted alphabetically per group' do
74
89
  let(:code) { <<-EOF
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: puppet-lint-class_parameter-check
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Roelof Reitsma