Class MCollective::Generators::Base
In: lib/mcollective/generators/base.rb
Parent: Object

Methods

Attributes

meta  [RW] 
mod_name  [RW] 
plugin_name  [RW] 

Public Class methods

[Source]

    # File lib/mcollective/generators/base.rb, line 5
 5:       def initialize(name, description, author, license, version, url, timeout)
 6:         @meta = {:name => name,
 7:                  :description => description,
 8:                  :author => author,
 9:                  :license => license,
10:                  :version => version,
11:                  :url => url,
12:                  :timeout => timeout}
13:       end

Public Instance methods

[Source]

    # File lib/mcollective/generators/base.rb, line 15
15:       def create_metadata_string
16:         ddl_template = File.read(File.join(File.dirname(__FILE__), "templates", "ddl.erb"))
17:         ERB.new(ddl_template, nil, "-").result(binding)
18:       end

[Source]

    # File lib/mcollective/generators/base.rb, line 20
20:       def create_plugin_string
21:         plugin_template = File.read(File.join(File.dirname(__FILE__), "templates", "plugin.erb"))
22:         ERB.new(plugin_template, nil, "-").result(binding)
23:       end

[Source]

    # File lib/mcollective/generators/base.rb, line 25
25:       def write_plugins
26:         begin
27:           Dir.mkdir @plugin_name
28:           dirname = File.join(@plugin_name, @mod_name.downcase)
29:           Dir.mkdir dirname
30:           puts "Created plugin directory : #{@plugin_name}"
31: 
32:           File.open(File.join(dirname, "#{@plugin_name}.ddl"), "w"){|f| f.puts @ddl}
33:           puts "Created DDL file : #{File.join(dirname, "#{@plugin_name}.ddl")}"
34: 
35:           File.open(File.join(dirname, "#{@plugin_name}.rb"), "w"){|f| f.puts @plugin}
36:           puts "Created #{@mod_name} file : #{File.join(dirname, "#{@plugin_name}.rb")}"
37:         rescue Errno::EEXIST
38:           raise "cannot generate '#{@plugin_name}' : plugin directory already exists."
39:         rescue Exception => e
40:           FileUtils.rm_rf(@plugin_name) if File.directory?(@plugin_name)
41:           raise "cannot generate plugin - #{e}"
42:         end
43:       end

[Validate]