puppet-lint 0.2.1 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile CHANGED
@@ -1,10 +1,7 @@
1
1
  source :rubygems
2
2
 
3
- puppetversion = ENV.key?('PUPPET_VERSION') ? "= #{ENV['PUPPET_VERSION']}" : ['>= 2.7']
4
-
5
3
  gem 'rake'
6
4
  gem 'rspec'
7
5
  gem 'rdoc'
8
6
  gem 'ruby-prof'
9
- gem 'puppet', puppetversion
10
7
  gem 'rcov', :platform => :ruby_18
data/README.md CHANGED
@@ -237,10 +237,10 @@ wanted to skip the 80 character check, you would run
237
237
  puppet-lint --no-80chars-check /path/to/my/manifest.pp
238
238
  ```
239
239
 
240
- puppet-lint will also check for a `.puppet-lintrc` file in the current
240
+ puppet-lint will also check for a `.puppet-lint.rc` file in the current
241
241
  directory and your home directory and read in flags from there, so if you
242
242
  wanted to always skip the hard tab character check, you could create
243
- `~./puppet-lintrc` containing
243
+ `~./puppet-lint.rc` containing
244
244
 
245
245
  ```
246
246
  --no-hard_tabs-check
@@ -4,4 +4,4 @@ $:.unshift File.join(File.dirname(__FILE__), *%w[.. lib])
4
4
 
5
5
  require 'puppet-lint'
6
6
 
7
- PuppetLint::Bin.new(ARGV).run
7
+ exit PuppetLint::Bin.new(ARGV).run
@@ -114,7 +114,17 @@ class PuppetLint
114
114
  puts format % message
115
115
  end
116
116
 
117
- def report(problems)
117
+ def print_context(message, linter)
118
+ # XXX: I don't really like the way this has been implemented (passing the
119
+ # linter object down through layers of functions. Refactor me!
120
+ return if message[:check] == 'documentation'
121
+ line = linter.manifest_lines[message[:linenumber] - 1]
122
+ offset = line.index(/\S/)
123
+ puts "\n #{line.strip}"
124
+ printf "%#{message[:column] + 2 - offset}s\n\n", '^'
125
+ end
126
+
127
+ def report(problems, linter)
118
128
  problems.each do |message|
119
129
  @statistics[message[:kind]] += 1
120
130
  ## Add some default attributes.
@@ -123,6 +133,7 @@ class PuppetLint
123
133
 
124
134
  if configuration.error_level == message[:kind] or configuration.error_level == :all
125
135
  format_message message
136
+ print_context(message, linter) if configuration.with_context
126
137
  end
127
138
  end
128
139
  end
@@ -140,7 +151,9 @@ class PuppetLint
140
151
  raise PuppetLint::NoCodeError
141
152
  end
142
153
 
143
- report PuppetLint::Checks.new.run(@fileinfo, @data)
154
+ linter = PuppetLint::Checks.new
155
+ problems = linter.run(@fileinfo, @data)
156
+ report problems, linter
144
157
  end
145
158
  end
146
159
 
@@ -25,6 +25,10 @@ class PuppetLint::Bin
25
25
  return 0
26
26
  end
27
27
 
28
+ opts.on('--with-context', 'Show where in the manifest the problem is') do
29
+ PuppetLint.configuration.with_context = true
30
+ end
31
+
28
32
  opts.on("--with-filename", "Display the filename before the warning") do
29
33
  PuppetLint.configuration.with_filename = true
30
34
  end
@@ -61,6 +61,7 @@ class PuppetLint
61
61
  self.fail_on_warnings = false
62
62
  self.error_level = :all
63
63
  self.log_format = ''
64
+ self.with_context = false
64
65
  end
65
66
  end
66
67
  end
@@ -126,12 +126,12 @@ class PuppetLint
126
126
  i += var_name.size + 1
127
127
 
128
128
  elsif chunk.match(/\A'(.*?)'/m)
129
- str_content = StringScanner.new(code[i+1..-1]).scan_until(/(\A|[^\\])'/m)
129
+ str_content = StringScanner.new(code[i+1..-1]).scan_until(/(\A|\\\\|[^\\])'/m)
130
130
  tokens << new_token(:SSTRING, str_content[0..-2], :chunk => code[0..i])
131
131
  i += str_content.size + 1
132
132
 
133
133
  elsif chunk.match(/\A"/)
134
- str_contents = StringScanner.new(code[i+1..-1]).scan_until(/(\A|[^\\])"/m)
134
+ str_contents = StringScanner.new(code[i+1..-1]).scan_until(/(\A|\\\\|[^\\])"/m)
135
135
  _ = code[0..i].split("\n")
136
136
  interpolate_string(str_contents, _.count, _.last.length)
137
137
  i += str_contents.size + 1
@@ -159,7 +159,7 @@ class PuppetLint
159
159
  i += mlcomment_size
160
160
 
161
161
  elsif chunk.match(/\A\/.*?\//) && possible_regex?
162
- str_content = StringScanner.new(code[i+1..-1]).scan_until(/(\A|[^\\])\//m)
162
+ str_content = StringScanner.new(code[i+1..-1]).scan_until(/(\A|\\\\|[^\\])\//m)
163
163
  tokens << new_token(:REGEX, str_content[0..-2], :chunk => code[0..i])
164
164
  i += str_content.size + 1
165
165
 
@@ -1,5 +1,6 @@
1
1
  class PuppetLint::Checks
2
2
  attr_reader :problems
3
+ attr_reader :manifest_lines
3
4
 
4
5
  def initialize
5
6
  @problems = []
@@ -67,7 +67,24 @@ class PuppetLint::Plugins::CheckClasses < PuppetLint::CheckPlugin
67
67
  end
68
68
  end
69
69
 
70
- check 'parameterised_classes' do
70
+ check 'class_inherits_from_params_class' do
71
+ class_indexes.each do |class_idx|
72
+ class_tokens = tokens[class_idx[:start]..class_idx[:end]]
73
+ inherits_idx = class_tokens.index { |r| r.type == :INHERITS }
74
+ unless inherits_idx.nil?
75
+ inherited_class_token = tokens[inherits_idx].next_code_token
76
+ if inherited_class_token.value.end_with? '::params'
77
+ notify :warning, {
78
+ :message => 'class inheriting from params class',
79
+ :linenumber => inherited_class_token.line,
80
+ :column => inherited_class_token.column,
81
+ }
82
+ end
83
+ end
84
+ end
85
+ end
86
+
87
+ check 'class_parameter_defaults' do
71
88
  class_indexes.each do |class_idx|
72
89
  token_idx = class_idx[:start]
73
90
  depth = 0
@@ -91,21 +108,6 @@ class PuppetLint::Plugins::CheckClasses < PuppetLint::CheckPlugin
91
108
  end
92
109
  end
93
110
 
94
- class_tokens = tokens[class_idx[:start]..class_idx[:end]].reject { |r|
95
- formatting_tokens.include? r.type
96
- }
97
- inherits_idx = class_tokens.index { |r| r.type == :INHERITS }
98
- unless inherits_idx.nil?
99
- inherited_class_token = class_tokens[inherits_idx + 1]
100
- if inherited_class_token.value.end_with? '::params'
101
- notify :warning, {
102
- :message => 'class inheriting from params class',
103
- :linenumber => inherited_class_token.line,
104
- :column => inherited_class_token.column,
105
- }
106
- end
107
- end
108
-
109
111
  unless lparen_idx.nil? or rparen_idx.nil?
110
112
  param_tokens = tokens[lparen_idx+1..rparen_idx-1].reject { |r|
111
113
  formatting_tokens.include? r.type
@@ -137,7 +139,8 @@ class PuppetLint::Plugins::CheckClasses < PuppetLint::CheckPlugin
137
139
  end
138
140
  end
139
141
  end
140
- end end
142
+ end
143
+ end
141
144
 
142
145
  # Public: Test the manifest tokens for any parameterised classes or defined
143
146
  # types that take parameters and record a warning if there are any optional
@@ -215,10 +218,12 @@ class PuppetLint::Plugins::CheckClasses < PuppetLint::CheckPlugin
215
218
 
216
219
  if inherits_token.type == :INHERITS
217
220
  inherited_class_token = inherits_token.next_code_token
221
+ inherited_module_name = inherited_class_token.value.split('::').reject { |r| r.empty? }.first
222
+ class_module_name = class_name_token.value.split('::').reject { |r| r.empty? }.first
218
223
 
219
- unless class_name_token.value =~ /^#{inherited_class_token.value}::/
224
+ unless class_module_name == inherited_module_name
220
225
  notify :warning, {
221
- :message => "class inherits across namespaces",
226
+ :message => "class inherits across module namespaces",
222
227
  :linenumber => inherited_class_token.line,
223
228
  :column => inherited_class_token.column,
224
229
  }
@@ -51,18 +51,30 @@ class PuppetLint::Plugins::CheckResources < PuppetLint::CheckPlugin
51
51
  }
52
52
 
53
53
  seen_params = {}
54
+ level = 0
54
55
  resource_tokens.each_with_index do |token, idx|
56
+ case token.type
57
+ when :LBRACE
58
+ level += 1
59
+ next
60
+ when :RBRACE
61
+ seen_params[level] = {}
62
+ level -= 1
63
+ next
64
+ end
65
+ seen_params[level] ||= {}
66
+
55
67
  if token.type == :FARROW
56
68
  prev_token = resource_tokens[idx - 1]
57
69
  next unless prev_token.type == :NAME
58
- if seen_params.include? prev_token.value
70
+ if seen_params[level].include? prev_token.value
59
71
  notify :error, {
60
72
  :message => 'duplicate parameter found in resource',
61
73
  :linenumber => prev_token.line,
62
74
  :column => prev_token.column,
63
75
  }
64
76
  else
65
- seen_params[prev_token.value] = true
77
+ seen_params[level][prev_token.value] = true
66
78
  end
67
79
  end
68
80
  end
@@ -94,7 +94,7 @@ class PuppetLint::Plugins::CheckWhitespace < PuppetLint::CheckPlugin
94
94
 
95
95
  unless indent_depth.last == indent_length
96
96
  notify :warning, {
97
- :message => '=> is not properly aligned',
97
+ :message => 'indentation of => is not properly aligned',
98
98
  :linenumber => token.line,
99
99
  :column => token.column,
100
100
  }
@@ -1,3 +1,3 @@
1
1
  class PuppetLint
2
- VERSION = '0.2.1'
2
+ VERSION = '0.3.0'
3
3
  end
@@ -103,6 +103,22 @@ describe PuppetLint::Bin do
103
103
  its(:stdout) { should match(/optional parameter/) }
104
104
  end
105
105
 
106
+ context 'when asked to provide context to problems' do
107
+ let(:args) { [
108
+ '--with-context',
109
+ 'spec/fixtures/test/manifests/warning.pp',
110
+ ] }
111
+
112
+ its(:exitstatus) { should == 0 }
113
+ its(:stdout) { should == [
114
+ 'WARNING: optional parameter listed before required parameter on line 2',
115
+ '',
116
+ " define test::warning($foo='bar', $baz) { }",
117
+ ' ^',
118
+ ].join("\n")
119
+ }
120
+ end
121
+
106
122
  context 'when asked to fail on warnings' do
107
123
  let(:args) { [
108
124
  '--fail-on-warnings',
@@ -48,6 +48,7 @@ describe PuppetLint::Configuration do
48
48
  'fail_on_warnings' => false,
49
49
  'error_level' => :all,
50
50
  'log_format' => '',
51
+ 'with_context' => false,
51
52
  }
52
53
  end
53
54
  end
@@ -710,6 +710,12 @@ describe PuppetLint::Lexer do
710
710
  token.type.should == :SSTRING
711
711
  token.value.should == ''
712
712
  end
713
+
714
+ it "should match an empty string ending with \\\\" do
715
+ token = @lexer.tokenise("'foo\\\\'").first
716
+ token.type.should == :SSTRING
717
+ token.value.should == %{foo\\\\}
718
+ end
713
719
  end
714
720
 
715
721
  context ':REGEX' do
@@ -1,19 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe 'parameterised_classes' do
4
- describe 'parameterised class with a default value' do
5
- let(:code) { "class foo($bar, $baz='gronk') { }" }
6
-
7
- its(:problems) {
8
- should only_have_problem({
9
- :kind => :warning,
10
- :message => 'parameterised class parameter without a default value',
11
- :linenumber => 1,
12
- :column => 11,
13
- })
14
- }
15
- end
16
-
3
+ describe 'class_inherits_from_params_class' do
17
4
  describe 'parameterised class that inherits from a params class' do
18
5
  let(:code) { "class foo($bar = $name) inherits foo::params { }" }
19
6
 
@@ -0,0 +1,35 @@
1
+ require 'spec_helper'
2
+
3
+ describe 'class_parameter_defaults' do
4
+ describe 'parameterised class with a default value' do
5
+ let(:code) { "class foo($bar, $baz='gronk') { }" }
6
+
7
+ its(:problems) {
8
+ should only_have_problem({
9
+ :kind => :warning,
10
+ :message => 'parameterised class parameter without a default value',
11
+ :linenumber => 1,
12
+ :column => 11,
13
+ })
14
+ }
15
+ end
16
+
17
+ describe 'class without parameters' do
18
+ let(:code) {"
19
+ class myclass {
20
+
21
+ if ( $::lsbdistcodename == 'squeeze' ) {
22
+ #TODO
23
+ }
24
+ }
25
+ "}
26
+
27
+ its(:problems) { should == [] }
28
+ end
29
+
30
+ describe 'parameterised class with a function value' do
31
+ let(:code) { "class foo($bar = baz($gronk)) { }" }
32
+
33
+ its(:problems) { should == [] }
34
+ end
35
+ end
@@ -1,19 +1,25 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe 'inherits_across_namespaces' do
4
- describe 'class inheriting from its namespace' do
4
+ describe 'class inheriting from parent in same module namespace' do
5
5
  let(:code) { "class foo::bar inherits foo { }" }
6
6
 
7
7
  its(:problems) { should be_empty }
8
8
  end
9
9
 
10
- describe 'class inheriting from another namespace' do
10
+ describe 'class inheriting from sister in same module namespace' do
11
+ let(:code) { "class foo::bar inherits foo::baz { }" }
12
+
13
+ its(:problems) { should be_empty }
14
+ end
15
+
16
+ describe 'class inheriting from another module namespace' do
11
17
  let(:code) { "class foo::bar inherits baz { }" }
12
18
 
13
19
  its(:problems) {
14
20
  should have_problem({
15
21
  :kind => :warning,
16
- :message => "class inherits across namespaces",
22
+ :message => "class inherits across module namespaces",
17
23
  :linenumber => 1,
18
24
  :column => 25,
19
25
  })
@@ -20,4 +20,69 @@ describe 'duplicate_params' do
20
20
  })
21
21
  }
22
22
  end
23
+ describe 'bug #145: resource with a hash and no duplicate parameters' do
24
+ let (:code) { "
25
+ class {'fooname':
26
+ hashes => [
27
+ { foo => 'bar01',},
28
+ { foo => 'bar02', },
29
+ ],
30
+ }"
31
+ }
32
+ its (:problems) {
33
+ should be_empty
34
+ }
35
+ end
36
+
37
+ describe 'bug #145: resource with a hash and duplicate parameters in subhash' do
38
+ let (:code) { "
39
+ class {'fooname':
40
+ hashes => [
41
+ { foo => 'bar01',
42
+ foo => 'bar02', },
43
+ ],
44
+ }"
45
+ }
46
+ its (:problems) {
47
+ should only_have_problem({
48
+ :kind => :error,
49
+ :message => 'duplicate parameter found in resource',
50
+ :linenumber => 5,
51
+ :column => 13,
52
+ })
53
+ }
54
+ end
55
+
56
+ describe 'bug #145: resource with a hash and duplicate parameters in parent type' do
57
+ let (:code) { "
58
+ class {'fooname':
59
+ hashes => [
60
+ { foo => 'bar01', },
61
+ { foo => 'bar02', },
62
+ ],
63
+ something => { hash => 'mini', },
64
+ hashes => 'dupe',
65
+ }"
66
+ }
67
+ its (:problems) {
68
+ should only_have_problem({
69
+ :kind => :error,
70
+ :message => 'duplicate parameter found in resource',
71
+ :linenumber => 8,
72
+ :column => 9,
73
+ })
74
+ }
75
+ end
76
+ describe 'bug #145: more hash tests and no duplicate parameters' do
77
+ let (:code) { "
78
+ class test {
79
+ $foo = { param => 'value', }
80
+ $bar = { param => 'bar', }
81
+ }"
82
+ }
83
+ its (:problems) {
84
+ should be_empty
85
+ }
86
+
87
+ end
23
88
  end
@@ -104,13 +104,13 @@ describe 'arrow_alignment' do
104
104
  its(:problems) do
105
105
  should have_problem({
106
106
  :kind => :warning,
107
- :message => '=> is not properly aligned',
107
+ :message => 'indentation of => is not properly aligned',
108
108
  :linenumber => 5,
109
109
  :column => 15,
110
110
  })
111
111
  should have_problem({
112
112
  :kind => :warning,
113
- :message => '=> is not properly aligned',
113
+ :message => 'indentation of => is not properly aligned',
114
114
  :linenumber => 6,
115
115
  :column => 14,
116
116
  })
@@ -133,19 +133,19 @@ describe 'arrow_alignment' do
133
133
  its(:problems) do
134
134
  should have_problem({
135
135
  :kind => :warning,
136
- :message => '=> is not properly aligned',
136
+ :message => 'indentation of => is not properly aligned',
137
137
  :linenumber => 4,
138
138
  :column => 14,
139
139
  })
140
140
  should have_problem({
141
141
  :kind => :warning,
142
- :message => '=> is not properly aligned',
142
+ :message => 'indentation of => is not properly aligned',
143
143
  :linenumber => 6,
144
144
  :column => 15,
145
145
  })
146
146
  should have_problem({
147
147
  :kind => :warning,
148
- :message => '=> is not properly aligned',
148
+ :message => 'indentation of => is not properly aligned',
149
149
  :linenumber => 8,
150
150
  :column => 14,
151
151
  })
@@ -167,7 +167,7 @@ describe 'arrow_alignment' do
167
167
  its(:problems) do
168
168
  should only_have_problem({
169
169
  :kind => :warning,
170
- :message => '=> is not properly aligned',
170
+ :message => 'indentation of => is not properly aligned',
171
171
  :linenumber => 8,
172
172
  :column => 15,
173
173
  })
metadata CHANGED
@@ -1,72 +1,76 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: puppet-lint
3
- version: !ruby/object:Gem::Version
4
- version: 0.2.1
3
+ version: !ruby/object:Gem::Version
4
+ hash: 19
5
5
  prerelease:
6
+ segments:
7
+ - 0
8
+ - 3
9
+ - 0
10
+ version: 0.3.0
6
11
  platform: ruby
7
- authors:
12
+ authors:
8
13
  - Tim Sharpe
9
14
  autorequire:
10
15
  bindir: bin
11
16
  cert_chain: []
12
- date: 2012-08-27 00:00:00.000000000 Z
13
- dependencies:
14
- - !ruby/object:Gem::Dependency
17
+
18
+ date: 2012-09-25 00:00:00 -07:00
19
+ default_executable:
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
15
22
  name: rspec
16
- requirement: !ruby/object:Gem::Requirement
17
- none: false
18
- requirements:
19
- - - ! '>='
20
- - !ruby/object:Gem::Version
21
- version: '0'
22
- type: :development
23
23
  prerelease: false
24
- version_requirements: !ruby/object:Gem::Requirement
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
25
  none: false
26
- requirements:
27
- - - ! '>='
28
- - !ruby/object:Gem::Version
29
- version: '0'
30
- - !ruby/object:Gem::Dependency
31
- name: rdoc
32
- requirement: !ruby/object:Gem::Requirement
33
- none: false
34
- requirements:
35
- - - ! '>='
36
- - !ruby/object:Gem::Version
37
- version: '0'
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ hash: 3
30
+ segments:
31
+ - 0
32
+ version: "0"
38
33
  type: :development
34
+ version_requirements: *id001
35
+ - !ruby/object:Gem::Dependency
36
+ name: rdoc
39
37
  prerelease: false
40
- version_requirements: !ruby/object:Gem::Requirement
38
+ requirement: &id002 !ruby/object:Gem::Requirement
41
39
  none: false
42
- requirements:
43
- - - ! '>='
44
- - !ruby/object:Gem::Version
45
- version: '0'
46
- - !ruby/object:Gem::Dependency
47
- name: rcov
48
- requirement: !ruby/object:Gem::Requirement
49
- none: false
50
- requirements:
51
- - - ! '>='
52
- - !ruby/object:Gem::Version
53
- version: '0'
40
+ requirements:
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ hash: 3
44
+ segments:
45
+ - 0
46
+ version: "0"
54
47
  type: :development
48
+ version_requirements: *id002
49
+ - !ruby/object:Gem::Dependency
50
+ name: rcov
55
51
  prerelease: false
56
- version_requirements: !ruby/object:Gem::Requirement
52
+ requirement: &id003 !ruby/object:Gem::Requirement
57
53
  none: false
58
- requirements:
59
- - - ! '>='
60
- - !ruby/object:Gem::Version
61
- version: '0'
62
- description: ! "Checks your Puppet manifests against the Puppetlabs\n style guide
63
- and alerts you to any discrepancies."
54
+ requirements:
55
+ - - ">="
56
+ - !ruby/object:Gem::Version
57
+ hash: 3
58
+ segments:
59
+ - 0
60
+ version: "0"
61
+ type: :development
62
+ version_requirements: *id003
63
+ description: |-
64
+ Checks your Puppet manifests against the Puppetlabs
65
+ style guide and alerts you to any discrepancies.
64
66
  email: tim@sharpe.id.au
65
- executables:
67
+ executables:
66
68
  - puppet-lint
67
69
  extensions: []
70
+
68
71
  extra_rdoc_files: []
69
- files:
72
+
73
+ files:
70
74
  - .gitignore
71
75
  - .travis.yml
72
76
  - Gemfile
@@ -100,11 +104,12 @@ files:
100
104
  - spec/puppet-lint/lexer/token_spec.rb
101
105
  - spec/puppet-lint/lexer_spec.rb
102
106
  - spec/puppet-lint/plugins/check_classes/autoloader_layout_spec.rb
107
+ - spec/puppet-lint/plugins/check_classes/class_inherits_from_params_class_spec.rb
108
+ - spec/puppet-lint/plugins/check_classes/class_parameter_defaults_spec.rb
103
109
  - spec/puppet-lint/plugins/check_classes/inherits_across_namespaces_spec.rb
104
110
  - spec/puppet-lint/plugins/check_classes/names_containing_dash_spec.rb
105
111
  - spec/puppet-lint/plugins/check_classes/nested_classes_or_defines_spec.rb
106
112
  - spec/puppet-lint/plugins/check_classes/parameter_order_spec.rb
107
- - spec/puppet-lint/plugins/check_classes/parameterised_classes_spec.rb
108
113
  - spec/puppet-lint/plugins/check_classes/right_to_left_relationship_spec.rb
109
114
  - spec/puppet-lint/plugins/check_classes/variable_scope_spec.rb
110
115
  - spec/puppet-lint/plugins/check_comments/slash_comments_spec.rb
@@ -131,31 +136,41 @@ files:
131
136
  - spec/puppet-lint/plugins/check_whitespace/trailing_whitespace_spec.rb
132
137
  - spec/puppet-lint_spec.rb
133
138
  - spec/spec_helper.rb
139
+ has_rdoc: true
134
140
  homepage: https://github.com/rodjek/puppet-lint/
135
141
  licenses: []
142
+
136
143
  post_install_message:
137
144
  rdoc_options: []
138
- require_paths:
145
+
146
+ require_paths:
139
147
  - lib
140
- required_ruby_version: !ruby/object:Gem::Requirement
148
+ required_ruby_version: !ruby/object:Gem::Requirement
141
149
  none: false
142
- requirements:
143
- - - ! '>='
144
- - !ruby/object:Gem::Version
145
- version: '0'
146
- required_rubygems_version: !ruby/object:Gem::Requirement
150
+ requirements:
151
+ - - ">="
152
+ - !ruby/object:Gem::Version
153
+ hash: 3
154
+ segments:
155
+ - 0
156
+ version: "0"
157
+ required_rubygems_version: !ruby/object:Gem::Requirement
147
158
  none: false
148
- requirements:
149
- - - ! '>='
150
- - !ruby/object:Gem::Version
151
- version: '0'
159
+ requirements:
160
+ - - ">="
161
+ - !ruby/object:Gem::Version
162
+ hash: 3
163
+ segments:
164
+ - 0
165
+ version: "0"
152
166
  requirements: []
167
+
153
168
  rubyforge_project:
154
- rubygems_version: 1.8.23
169
+ rubygems_version: 1.6.2
155
170
  signing_key:
156
171
  specification_version: 3
157
172
  summary: Ensure your Puppet manifests conform with the Puppetlabs style guide
158
- test_files:
173
+ test_files:
159
174
  - spec/fixtures/test/manifests/fail.pp
160
175
  - spec/fixtures/test/manifests/init.pp
161
176
  - spec/fixtures/test/manifests/warning.pp
@@ -164,11 +179,12 @@ test_files:
164
179
  - spec/puppet-lint/lexer/token_spec.rb
165
180
  - spec/puppet-lint/lexer_spec.rb
166
181
  - spec/puppet-lint/plugins/check_classes/autoloader_layout_spec.rb
182
+ - spec/puppet-lint/plugins/check_classes/class_inherits_from_params_class_spec.rb
183
+ - spec/puppet-lint/plugins/check_classes/class_parameter_defaults_spec.rb
167
184
  - spec/puppet-lint/plugins/check_classes/inherits_across_namespaces_spec.rb
168
185
  - spec/puppet-lint/plugins/check_classes/names_containing_dash_spec.rb
169
186
  - spec/puppet-lint/plugins/check_classes/nested_classes_or_defines_spec.rb
170
187
  - spec/puppet-lint/plugins/check_classes/parameter_order_spec.rb
171
- - spec/puppet-lint/plugins/check_classes/parameterised_classes_spec.rb
172
188
  - spec/puppet-lint/plugins/check_classes/right_to_left_relationship_spec.rb
173
189
  - spec/puppet-lint/plugins/check_classes/variable_scope_spec.rb
174
190
  - spec/puppet-lint/plugins/check_comments/slash_comments_spec.rb