Class: PluginGenerator

Inherits:
Mack::Generator::Base show all
Defined in:
lib/generators/plugin_generator/plugin_generator.rb

Overview

Generates plugins for Mack applications.

Example:

rake generate:plugin name=my_cool_plugin

This will generate the following in your mack application:

vendor/plugins/my_cool_plugin
vendor/plugins/my_cool_plugin/init.rb
vendor/plugins/my_cool_plugin/lib
vendor/plugins/my_cool_plugin/lib/my_cool_plugin.rb

Instance Method Summary collapse

Methods inherited from Mack::Generator::Base

#directory, #initialize, #param, require_param, required_params, #run, #template

Constructor Details

This class inherits a constructor from Mack::Generator::Base

Instance Method Details

#generateObject

:nodoc:



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/generators/plugin_generator/plugin_generator.rb', line 14

def generate # :nodoc:
  plugin_dir = File.join(MACK_ROOT, "vendor", "plugins", param(:name).downcase)
  template_dir = File.join(File.dirname(__FILE__), "templates")
  
  # create vendor/plugins/<name>
  directory(plugin_dir)
  # create vendor/plugins/<name>/lib
  directory(File.join(plugin_dir, "lib"))
  
  # create vendor/plugins/<name>/init.rb
  template(File.join(template_dir, "init.rb.template"), File.join(plugin_dir, "init.rb"))
  # create vendor/plugins/<name>/lib/<name>.rb
  template(File.join(template_dir, "lib", "plugin.rb.template"), File.join(plugin_dir, "lib", "#{param(:name).downcase}.rb"))
  
end