puppet-lint 0.1.11 → 0.1.12

Sign up to get free protection for your applications and to get access to all the features.
@@ -74,7 +74,7 @@ end
74
74
  class PuppetLint::NoCodeError < StandardError; end
75
75
 
76
76
  class PuppetLint
77
- VERSION = '0.1.11'
77
+ VERSION = '0.1.12'
78
78
 
79
79
  attr_reader :code, :file
80
80
 
@@ -155,7 +155,7 @@ class PuppetLint
155
155
  end
156
156
 
157
157
  PuppetLint::CheckPlugin.repository.each do |plugin|
158
- report plugin.new.run(@fileinfo[:path], @data)
158
+ report plugin.new.run(@fileinfo, @data)
159
159
  end
160
160
  end
161
161
  end
@@ -53,14 +53,13 @@ class PuppetLint::CheckPlugin
53
53
  message_hash
54
54
  end
55
55
 
56
- def run(path, data)
56
+ def run(fileinfo, data)
57
57
  lexer = Puppet::Parser::Lexer.new
58
58
  lexer.string = data
59
59
  @tokens = lexer.fullscan
60
- @path = path
60
+ @fileinfo = fileinfo
61
61
  @data = data
62
62
 
63
- test(path, data) if self.respond_to? :test
64
63
  self.public_methods.select { |method|
65
64
  method.to_s.start_with? 'lint_check_'
66
65
  }.each { |method|
@@ -103,8 +102,10 @@ class PuppetLint::CheckPlugin
103
102
  elsif @tokens[idx].first == :RBRACE
104
103
  lbrace_count -= 1
105
104
  if lbrace_count == 0
106
- class_indexes << {:start => token_idx, :end => idx} if @tokens[token_idx].first == :CLASS
107
- defined_type_indexes << {:start => token_idx, :end => idx} if @tokens[token_idx].first == :DEFINE
105
+ if @tokens[token_idx].first == :CLASS and @tokens[token_idx + 1].first != :LBRACE
106
+ @class_indexes << {:start => token_idx, :end => idx}
107
+ end
108
+ @defined_type_indexes << {:start => token_idx, :end => idx} if @tokens[token_idx].first == :DEFINE
108
109
  break
109
110
  end
110
111
  end
@@ -118,7 +119,11 @@ class PuppetLint::CheckPlugin
118
119
  end
119
120
 
120
121
  def path
121
- @path
122
+ @fileinfo[:path]
123
+ end
124
+
125
+ def fullpath
126
+ @fileinfo[:fullpath]
122
127
  end
123
128
 
124
129
  def data
@@ -6,7 +6,7 @@ class PuppetLint::Plugins::CheckClasses < PuppetLint::CheckPlugin
6
6
  end
7
7
 
8
8
  check 'autoloader_layout' do
9
- unless path == ""
9
+ unless fullpath == ""
10
10
  (class_indexes + defined_type_indexes).each do |class_idx|
11
11
  title_token = tokens[class_idx[:start]+1]
12
12
  split_title = title_token.last[:value].split('::')
@@ -16,7 +16,7 @@ class PuppetLint::Plugins::CheckClasses < PuppetLint::CheckPlugin
16
16
  expected_path = "#{title_token.last[:value]}/manifests/init.pp"
17
17
  end
18
18
 
19
- unless path.end_with? expected_path
19
+ unless fullpath.end_with? expected_path
20
20
  notify :error, :message => "#{title_token.last[:value]} not in autoload module layout", :linenumber => title_token.last[:line]
21
21
  end
22
22
  end
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'puppet-lint'
3
- s.version = '0.1.11'
3
+ s.version = '0.1.12'
4
4
  s.homepage = 'https://github.com/rodjek/puppet-lint/'
5
5
  s.summary = 'Ensure your Puppet manifests conform with the Puppetlabs style guide'
6
6
  s.description = 'Checks your Puppet manifests against the Puppetlabs
@@ -3,7 +3,7 @@ require 'spec_helper'
3
3
  describe PuppetLint::Plugins::CheckClasses do
4
4
  subject do
5
5
  klass = described_class.new
6
- klass.run(defined?(path).nil? ? '' : path, code)
6
+ klass.run(defined?(fullpath).nil? ? {:fullpath => ''} : {:fullpath => fullpath}, code)
7
7
  klass
8
8
  end
9
9
 
@@ -228,31 +228,45 @@ describe PuppetLint::Plugins::CheckClasses do
228
228
 
229
229
  describe 'foo::bar in foo/manifests/bar.pp' do
230
230
  let(:code) { "class foo::bar { }" }
231
- let(:path) { '/etc/puppet/modules/foo/manifests/bar.pp' }
231
+ let(:fullpath) { '/etc/puppet/modules/foo/manifests/bar.pp' }
232
232
 
233
233
  its(:problems) { should be_empty }
234
234
  end
235
235
 
236
236
  describe 'foo::bar::baz in foo/manifests/bar/baz.pp' do
237
237
  let(:code) { 'define foo::bar::baz() { }' }
238
- let(:path) { '/etc/puppet/modules/foo/manifests/bar/baz.pp' }
238
+ let(:fullpath) { '/etc/puppet/modules/foo/manifests/bar/baz.pp' }
239
239
 
240
240
  its(:problems) { should be_empty }
241
241
  end
242
242
 
243
243
  describe 'foo in foo/manifests/init.pp' do
244
244
  let(:code) { 'class foo { }' }
245
- let(:path) { '/etc/puppet/modules/foo/manifests/init.pp' }
245
+ let(:fullpath) { '/etc/puppet/modules/foo/manifests/init.pp' }
246
246
 
247
247
  its(:problems) { should be_empty }
248
248
  end
249
249
 
250
250
  describe 'foo::bar in foo/manifests/init.pp' do
251
251
  let(:code) { 'class foo::bar { }' }
252
- let(:path) { '/etc/puppet/modules/foo/manifests/init.pp' }
252
+ let(:fullpath) { '/etc/puppet/modules/foo/manifests/init.pp' }
253
253
 
254
254
  its(:problems) {
255
255
  should only_have_problem :kind => :error, :message => "foo::bar not in autoload module layout", :linenumber => 1
256
256
  }
257
257
  end
258
+
259
+ describe 'foo included in bar/manifests/init.pp' do
260
+ let(:code) { "
261
+ class bar {
262
+ class {'foo':
263
+ someparam => 'somevalue',
264
+ }
265
+ }
266
+ "
267
+ }
268
+ let(:fullpath) { '/etc/puppet/modules/bar/manifests/init.pp' }
269
+ its(:problems) { should be_empty }
270
+
271
+ end
258
272
  end
@@ -3,7 +3,7 @@ require 'spec_helper'
3
3
  describe PuppetLint::Plugins::CheckConditionals do
4
4
  subject do
5
5
  klass = described_class.new
6
- klass.run(defined?(path).nil? ? '' : path, code)
6
+ klass.run(defined?(fullpath).nil? ? {:fullpath => ''} : {:fullpath => fullpath}, code)
7
7
  klass
8
8
  end
9
9
 
@@ -3,7 +3,7 @@ require 'spec_helper'
3
3
  describe PuppetLint::Plugins::CheckResources do
4
4
  subject do
5
5
  klass = described_class.new
6
- klass.run(defined?(path).nil? ? '' : path, code)
6
+ klass.run(defined?(fullpath).nil? ? {:fullpath => ''} : {:fullpath => fullpath}, code)
7
7
  klass
8
8
  end
9
9
 
@@ -3,7 +3,7 @@ require 'spec_helper'
3
3
  describe PuppetLint::Plugins::CheckStrings do
4
4
  subject do
5
5
  klass = described_class.new
6
- klass.run(defined?(path).nil? ? '' : path, code)
6
+ klass.run(defined?(fullpath).nil? ? {:fullpath => ''} : {:fullpath => fullpath}, code)
7
7
  klass
8
8
  end
9
9
 
@@ -3,7 +3,7 @@ require 'spec_helper'
3
3
  describe PuppetLint::Plugins::CheckVariables do
4
4
  subject do
5
5
  klass = described_class.new
6
- klass.run(defined?(path).nil? ? '' : path, code)
6
+ klass.run(defined?(fullpath).nil? ? {:fullpath => ''} : {:fullpath => fullpath}, code)
7
7
  klass
8
8
  end
9
9
 
@@ -3,7 +3,7 @@ require 'spec_helper'
3
3
  describe PuppetLint::Plugins::CheckWhitespace do
4
4
  subject do
5
5
  klass = described_class.new
6
- klass.run(defined?(path).nil? ? '' : path, code)
6
+ klass.run(defined?(fullpath).nil? ? {:fullpath => ''} : {:fullpath => fullpath}, code)
7
7
  klass
8
8
  end
9
9
 
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: puppet-lint
3
3
  version: !ruby/object:Gem::Version
4
- hash: 13
4
+ hash: 3
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 1
9
- - 11
10
- version: 0.1.11
9
+ - 12
10
+ version: 0.1.12
11
11
  platform: ruby
12
12
  authors:
13
13
  - Tim Sharpe
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2012-01-11 00:00:00 Z
18
+ date: 2012-01-27 00:00:00 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: rspec