puppet-parse 0.0.5 → 0.0.6

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/README.md CHANGED
@@ -10,24 +10,48 @@ Analyse puppet manifests and report what classes and defines are specified, and
10
10
 
11
11
  ## Requirements
12
12
 
13
- rdoc
13
+ rdoc >=3.12, <4.0
14
14
  facter
15
15
 
16
16
  ## Usage
17
17
 
18
18
  ### By hand
19
19
 
20
- You can test one or more manifests by running
20
+ You can report on one or more manifests by running
21
21
 
22
22
  puppet-parse <path(s) to file(s)>
23
23
 
24
- ### Rake tast
24
+ ### Rake task
25
25
 
26
26
  If you want to parse your entire modules directory, you can add
27
27
  `require 'puppet-parse/puppet-parse' to your Rakefile and then run
28
28
 
29
29
  rake parse
30
30
 
31
+ If you need to ignore certain paths from being parsed:
32
+
33
+ ``` ruby
34
+ PuppetParse.configuration.ignore_paths = ["vendor/**/*.pp"]
35
+ ```
36
+
37
+ ## Sample Output
38
+
39
+ ---
40
+ ntp:
41
+ parameters:
42
+ enabled: true
43
+ present: true
44
+ enableboot: true
45
+ docs:
46
+ enabled:
47
+ - "Set to 'false' to stop service"
48
+ present:
49
+ - "Set to 'false' to remove package"
50
+ enableboot:
51
+ - "Set to 'false' to prevent service starting at boot"
52
+
53
+
54
+
31
55
  ## Contributing
32
56
 
33
57
  You can do any of these:
@@ -0,0 +1,170 @@
1
+ class PuppetParse
2
+ class Configuration
3
+
4
+ # Code blatently stolen from https://github.com/rodjek/puppet-lint
5
+
6
+ # Internal: Add helper methods for a new check to the
7
+ # PuppetParse::Configuration object.
8
+ #
9
+ # check - The String name of the check.
10
+ #
11
+ # Returns nothing.
12
+ #
13
+ # Signature
14
+ #
15
+ # <check>_enabled?
16
+ # disable_<check>
17
+ # enable_<check>
18
+ def self.add_check(check)
19
+ # Public: Determine if the named check is enabled.
20
+ #
21
+ # Returns true if the check is enabled, otherwise return false.
22
+ define_method("#{check}_enabled?") do
23
+ settings["#{check}_disabled"] == true ? false : true
24
+ end
25
+
26
+ # Public: Disable the named check.
27
+ #
28
+ # Returns nothing.
29
+ define_method("disable_#{check}") do
30
+ settings["#{check}_disabled"] = true
31
+ end
32
+
33
+ # Public: Enable the named check.
34
+ #
35
+ # Returns nothing.
36
+ define_method("enable_#{check}") do
37
+ settings["#{check}_disabled"] = false
38
+ end
39
+ end
40
+
41
+ # Public: Catch situations where options are being set for the first time
42
+ # and create the necessary methods to get & set the option in the future.
43
+ #
44
+ # args[0] - The value to set the option to.
45
+ #
46
+ # Returns nothing.
47
+ #
48
+ # Signature
49
+ #
50
+ # <option>=(value)
51
+ def method_missing(method, *args, &block)
52
+ if method.to_s =~ /^(\w+)=$/
53
+ option = $1
54
+ add_option(option.to_s) if settings[option].nil?
55
+ settings[option] = args[0]
56
+ else
57
+ nil
58
+ end
59
+ end
60
+
61
+ # Internal: Add options to the PuppetParse::Configuration object from inside
62
+ # the class.
63
+ #
64
+ # option - The String name of the option.
65
+ #
66
+ # Returns nothing.
67
+ #
68
+ # Signature
69
+ #
70
+ # <option>
71
+ # <option>=(value)
72
+ def add_option(option)
73
+ self.class.add_option(option)
74
+ end
75
+
76
+ # Public: Add an option to the PuppetParse::Configuration object from
77
+ # outside the class.
78
+ #
79
+ # option - The String name of the option.
80
+ #
81
+ # Returns nothing.
82
+ #
83
+ # Signature
84
+ #
85
+ # <option>
86
+ # <option>=(value)
87
+ def self.add_option(option)
88
+ # Public: Set the value of the named option.
89
+ #
90
+ # value - The value to set the option to.
91
+ #
92
+ # Returns nothing.
93
+ define_method("#{option}=") do |value|
94
+ settings[option] = value
95
+ end
96
+
97
+ # Public: Get the value of the named option.
98
+ #
99
+ # Returns the value of the option.
100
+ define_method(option) do
101
+ settings[option]
102
+ end
103
+ end
104
+
105
+ # Internal: Register a new check.
106
+ #
107
+ # check - The String name of the check
108
+ # b - The Block containing the logic of the check
109
+ #
110
+ # Returns nothing.
111
+ def add_check(check, &b)
112
+ self.class.add_check(check)
113
+ check_method[check] = b
114
+ end
115
+
116
+ # Internal: Register a new check helper method.
117
+ #
118
+ # name - The String name of the method.
119
+ # b - The Block containing the logic of the helper.
120
+ #
121
+ # Returns nothing.
122
+ def add_helper(name, &b)
123
+ helper_method[name] = b
124
+ end
125
+
126
+ # Internal: Access the internal storage for settings.
127
+ #
128
+ # Returns a Hash containing all the settings.
129
+ def settings
130
+ @settings ||= {}
131
+ end
132
+
133
+ # Internal: Access the internal storage for check method blocks.
134
+ #
135
+ # Returns a Hash containing all the check blocks.
136
+ def check_method
137
+ @check_method ||= {}
138
+ end
139
+
140
+ # Public: Get a list of all the defined checks.
141
+ #
142
+ # Returns an Array of String check names.
143
+ def checks
144
+ check_method.keys
145
+ end
146
+
147
+ # Internal: Access the internal storage for helper method blocks.
148
+ #
149
+ # Returns a Hash containing all the helper blocks.
150
+ def helper_method
151
+ @helper_method ||= {}
152
+ end
153
+
154
+ # Public: Get a list of all the helper methods.
155
+ #
156
+ # Returns an Array of String method names.
157
+ def helpers
158
+ helper_method.keys
159
+ end
160
+
161
+ # Public: Clear the PuppetParse::Configuration storage and set some sane
162
+ # default values.
163
+ #
164
+ # Returns nothing.
165
+ def defaults
166
+ settings.clear
167
+ end
168
+
169
+ end # class Configuration
170
+ end # module PuppetParse
@@ -1,4 +1,4 @@
1
- module PuppetParse
1
+ class PuppetParse
2
2
  class Parser
3
3
 
4
4
  def initialize(file)
@@ -1,6 +1,4 @@
1
1
 
2
- $LOAD_PATH.unshift File.expand_path('/vagrant/puppet-parser/lib')
3
-
4
2
  require 'puppet-parse'
5
3
  require 'rake'
6
4
  require 'rake/tasklib'
@@ -8,6 +6,11 @@ require 'rake/tasklib'
8
6
  desc 'Run puppet-parse'
9
7
  task :parse do
10
8
  matched_files = FileList['**/*.pp']
9
+
10
+ if ignore_paths = PuppetParse.configuration.ignore_paths
11
+ matched_files = matched_files.exclude(*ignore_paths)
12
+ end
13
+
11
14
  run = PuppetParse::Runner.new
12
15
  puts run.run(matched_files.to_a).to_yaml
13
16
  end
@@ -1,4 +1,4 @@
1
- module PuppetParse
1
+ class PuppetParse
2
2
  class Runner
3
3
 
4
4
  def initialize
@@ -1,3 +1,3 @@
1
- module PuppetParse
2
- VERSION = "0.0.5"
1
+ class PuppetParse
2
+ VERSION = "0.0.6"
3
3
  end
data/lib/puppet-parse.rb CHANGED
@@ -4,5 +4,21 @@ require 'puppet-parse/version'
4
4
  require 'puppet-parse/parser'
5
5
  require 'puppet-parse/runner'
6
6
  require 'puppet-parse/hash'
7
+ require 'puppet-parse/configuration'
7
8
  require 'rdoc'
8
9
 
10
+ class PuppetParse
11
+ # Public: Access PuppetParse's configuration from outside the class.
12
+ #
13
+ # Returns a PuppetParse::Configuration object.
14
+ def self.configuration
15
+ @configuration ||= PuppetParse::Configuration.new
16
+ end
17
+
18
+ # Public: Access PuppetParse's configuration from inside the class.
19
+ #
20
+ # Returns a PuppetParse::Configuration object.
21
+ def configuration
22
+ self.class.configuration
23
+ end
24
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: puppet-parse
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-03-12 00:00:00.000000000 Z
12
+ date: 2013-03-14 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec
@@ -97,6 +97,7 @@ files:
97
97
  - Rakefile
98
98
  - bin/puppet-parse
99
99
  - lib/puppet-parse.rb
100
+ - lib/puppet-parse/configuration.rb
100
101
  - lib/puppet-parse/hash.rb
101
102
  - lib/puppet-parse/parser.rb
102
103
  - lib/puppet-parse/puppet-parse.rb