oldskool-puppet 0.0.1

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.
@@ -0,0 +1,20 @@
1
+ module Oldskool
2
+ class PuppetHandler
3
+ def initialize(params, keyword, config)
4
+ @params = params
5
+ @keyword = keyword
6
+ @config = config
7
+ self
8
+ end
9
+
10
+ def plugin_template(template)
11
+ File.read(File.expand_path("../../../views/#{template}.erb", __FILE__))
12
+ end
13
+
14
+ def handle_request(keyword, query)
15
+ type = Puppetdoc.new(query)
16
+
17
+ {:template => plugin_template(:type), :type => type.doc}
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,56 @@
1
+ require 'puppet'
2
+
3
+ module Oldskool
4
+ class Puppetdoc
5
+ attr_reader :type
6
+
7
+ def initialize(type)
8
+ loadall
9
+
10
+ settype(type)
11
+ end
12
+
13
+ def loadall
14
+ Puppet::Type.loadall unless Puppet::Type.constants.include?("File")
15
+ end
16
+
17
+ def settype(type)
18
+ raise "Cannot find Puppet Type #{type}" unless Puppet::Type.const_defined?(type.capitalize)
19
+ @type = Puppet::Type.const_get(type.capitalize)
20
+ end
21
+
22
+ def cleantext(text)
23
+ (text =~ /^(\s+)/) ? text.gsub(/^#{$1}/,'') : text
24
+ end
25
+
26
+ def paramdoc(param)
27
+ doc = {}
28
+
29
+ if type.parameters.include?(param)
30
+ doc[:markdown] = cleantext(type.attrclass(param).doc)
31
+ doc[:type] = :param
32
+ elsif type.metaparams.include?(param)
33
+ doc[:markdown] = cleantext(type.attrclass(param).doc)
34
+ doc[:type] = :meta
35
+ end
36
+
37
+ if type.key_attributes.include?(param) and param != :name
38
+ doc[:type] = :namevar
39
+ end
40
+
41
+ doc
42
+ end
43
+
44
+ def doc
45
+ param_docs = {:name => type.name,
46
+ :description => cleantext(type.doc),
47
+ :version => Puppet.version,
48
+ :params => {}, :metaparams => {}}
49
+
50
+ type.parameters.each {|param| param_docs[:params][param] = paramdoc(param)}
51
+ type.metaparams.each {|param| param_docs[:metaparams][param] = paramdoc(param)}
52
+
53
+ param_docs
54
+ end
55
+ end
56
+ end
@@ -0,0 +1,2 @@
1
+ require 'oldskool/puppetdoc'
2
+ require 'oldskool/puppet_handler'
@@ -0,0 +1,8 @@
1
+ <% unless @error %>
2
+ <table>
3
+ <tr><td><strong>Password:</strong></td><td><%= @result[:pw].password[:string] %></td></tr>
4
+ <tr><td><strong>Crypt:</strong></td><td><%= @result[:pw].password[:crypt] %></td></tr>
5
+ <tr><td><strong>MD5:</strong></td><td><%= @result[:pw].password[:md5] %></td></tr>
6
+ <tr><td><strong>Nato:</strong></td><td><%= @result[:pw].password[:nato] %></td></tr>
7
+ </table>
8
+ <% end %>
data/views/type.erb ADDED
@@ -0,0 +1,37 @@
1
+ <% unless @error %>
2
+ <style>
3
+ code {
4
+ background-color: whiteSmoke;
5
+ padding: 0 0 0 0;
6
+ }
7
+ </style>
8
+ <h2><%= @result[:type][:name].to_s.capitalize %> version <%= @result[:type][:version] %></h2>
9
+ <p>
10
+ <a href="#params">Paramaters</a>, <a href="#metaparams">Meta Parameters</a>
11
+ </p>
12
+ <div>
13
+ <%= markdown @result[:type][:description] %>
14
+ </div>
15
+ <a name="params"></a>
16
+ <% @result[:type][:params].keys.sort.each do |param| %>
17
+ <% doc = @result[:type][:params][param] %>
18
+ <h3>
19
+ <%= param %>
20
+ <%= (doc[:type] == :namevar) ? '<span class="label success">Namevar</span>' : '' %>
21
+ </h3>
22
+ <div>
23
+ <%= markdown(doc[:markdown]) %>
24
+ </div>
25
+ <% end %>
26
+ <a name="metaparams"></a>
27
+ <hr>
28
+ <% @result[:type][:metaparams].keys.sort.each do |param| %>
29
+ <% doc = @result[:type][:metaparams][param] %>
30
+ <h3>
31
+ <%= param %> <span class="label notice">Meta</span>
32
+ </h3>
33
+ <div>
34
+ <%= markdown(doc[:markdown]) %>
35
+ </div>
36
+ <% end %>
37
+ <% end %>
metadata ADDED
@@ -0,0 +1,71 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: oldskool-puppet
3
+ version: !ruby/object:Gem::Version
4
+ hash: 29
5
+ prerelease: false
6
+ segments:
7
+ - 0
8
+ - 0
9
+ - 1
10
+ version: 0.0.1
11
+ platform: ruby
12
+ authors:
13
+ - R.I.Pienaar
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2012-01-28 00:00:00 +00:00
19
+ default_executable:
20
+ dependencies: []
21
+
22
+ description: "description: Generate documentation for Puppet types"
23
+ email: rip@devco.net
24
+ executables: []
25
+
26
+ extensions: []
27
+
28
+ extra_rdoc_files: []
29
+
30
+ files:
31
+ - lib/oldskool/puppetdoc.rb
32
+ - lib/oldskool/puppet_handler.rb
33
+ - lib/oldskool-puppet.rb
34
+ - views/type.erb
35
+ - views/password.erb
36
+ has_rdoc: true
37
+ homepage: http://devco.net/
38
+ licenses: []
39
+
40
+ post_install_message:
41
+ rdoc_options: []
42
+
43
+ require_paths:
44
+ - lib
45
+ required_ruby_version: !ruby/object:Gem::Requirement
46
+ none: false
47
+ requirements:
48
+ - - ">="
49
+ - !ruby/object:Gem::Version
50
+ hash: 3
51
+ segments:
52
+ - 0
53
+ version: "0"
54
+ required_rubygems_version: !ruby/object:Gem::Requirement
55
+ none: false
56
+ requirements:
57
+ - - ">="
58
+ - !ruby/object:Gem::Version
59
+ hash: 3
60
+ segments:
61
+ - 0
62
+ version: "0"
63
+ requirements: []
64
+
65
+ rubyforge_project:
66
+ rubygems_version: 1.3.7
67
+ signing_key:
68
+ specification_version: 3
69
+ summary: oldskool-1assword
70
+ test_files: []
71
+