class MCollective::Generators::Base

Attributes

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

Public Class Methods

new(name, description, author, license, version, url, timeout) click to toggle source
   # File lib/mcollective/generators/base.rb
 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

create_metadata_string() click to toggle source
   # File lib/mcollective/generators/base.rb
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
create_plugin_string() click to toggle source
   # File lib/mcollective/generators/base.rb
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
write_plugins() click to toggle source
   # File lib/mcollective/generators/base.rb
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