puppet-lint 0.2.1 → 0.3.0
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.
- data/Gemfile +0 -3
- data/README.md +2 -2
- data/bin/puppet-lint +1 -1
- data/lib/puppet-lint.rb +15 -2
- data/lib/puppet-lint/bin.rb +4 -0
- data/lib/puppet-lint/configuration.rb +1 -0
- data/lib/puppet-lint/lexer.rb +3 -3
- data/lib/puppet-lint/plugin.rb +1 -0
- data/lib/puppet-lint/plugins/check_classes.rb +24 -19
- data/lib/puppet-lint/plugins/check_resources.rb +14 -2
- data/lib/puppet-lint/plugins/check_whitespace.rb +1 -1
- data/lib/puppet-lint/version.rb +1 -1
- data/spec/puppet-lint/bin_spec.rb +16 -0
- data/spec/puppet-lint/configuration_spec.rb +1 -0
- data/spec/puppet-lint/lexer_spec.rb +6 -0
- data/spec/puppet-lint/plugins/check_classes/{parameterised_classes_spec.rb → class_inherits_from_params_class_spec.rb} +1 -14
- data/spec/puppet-lint/plugins/check_classes/class_parameter_defaults_spec.rb +35 -0
- data/spec/puppet-lint/plugins/check_classes/inherits_across_namespaces_spec.rb +9 -3
- data/spec/puppet-lint/plugins/check_resources/duplicate_params_spec.rb +65 -0
- data/spec/puppet-lint/plugins/check_whitespace/arrow_alignment_spec.rb +6 -6
- metadata +80 -64
data/Gemfile
CHANGED
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-
|
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-
|
243
|
+
`~./puppet-lint.rc` containing
|
244
244
|
|
245
245
|
```
|
246
246
|
--no-hard_tabs-check
|
data/bin/puppet-lint
CHANGED
data/lib/puppet-lint.rb
CHANGED
@@ -114,7 +114,17 @@ class PuppetLint
|
|
114
114
|
puts format % message
|
115
115
|
end
|
116
116
|
|
117
|
-
def
|
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
|
-
|
154
|
+
linter = PuppetLint::Checks.new
|
155
|
+
problems = linter.run(@fileinfo, @data)
|
156
|
+
report problems, linter
|
144
157
|
end
|
145
158
|
end
|
146
159
|
|
data/lib/puppet-lint/bin.rb
CHANGED
@@ -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
|
data/lib/puppet-lint/lexer.rb
CHANGED
@@ -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
|
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
|
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
|
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
|
|
data/lib/puppet-lint/plugin.rb
CHANGED
@@ -67,7 +67,24 @@ class PuppetLint::Plugins::CheckClasses < PuppetLint::CheckPlugin
|
|
67
67
|
end
|
68
68
|
end
|
69
69
|
|
70
|
-
check '
|
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
|
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
|
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
|
}
|
data/lib/puppet-lint/version.rb
CHANGED
@@ -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',
|
@@ -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 '
|
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
|
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
|
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
|
-
|
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
|
-
|
13
|
-
|
14
|
-
|
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
|
-
|
24
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
25
25
|
none: false
|
26
|
-
requirements:
|
27
|
-
- -
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
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
|
-
|
38
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
41
39
|
none: false
|
42
|
-
requirements:
|
43
|
-
- -
|
44
|
-
- !ruby/object:Gem::Version
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
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
|
-
|
52
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
57
53
|
none: false
|
58
|
-
requirements:
|
59
|
-
- -
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
|
62
|
-
|
63
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
146
|
-
|
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
|
-
|
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.
|
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
|