/
moonshine_plugin_generator.rb
38 lines (33 loc) · 1.38 KB
/
moonshine_plugin_generator.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
require File.join(File.dirname(__FILE__), '..', '..', 'lib', 'generators', 'moonshine_helper')
class MoonshinePluginGenerator < Rails::Generator::Base
include MoonshineGeneratorHelpers
attr_reader :name, :plugin_name, :module_name
def initialize(runtime_args, runtime_options = {})
plugin = runtime_args.shift
if plugin
@name = plugin.downcase.underscore
@module_name = @name.camelize
@plugin_name = 'moonshine_' + name
else
puts "Please specify the name of your plugin"
puts "script/generate moonshine_plugin <name>"
puts
exit
end
super
end
def manifest
record do |m|
m.directory "vendor/plugins/#{plugin_name}"
m.template "LICENSE", "vendor/plugins/#{plugin_name}/LICENSE"
m.template "README.markdown", "vendor/plugins/#{plugin_name}/README.markdown"
m.directory "vendor/plugins/#{plugin_name}/moonshine"
m.template 'init.rb', "vendor/plugins/#{plugin_name}/moonshine/init.rb"
m.directory "vendor/plugins/#{plugin_name}/lib/moonshine"
m.template 'plugin.rb', "vendor/plugins/#{plugin_name}/lib/moonshine/#{name}.rb"
m.directory "vendor/plugins/#{plugin_name}/spec/moonshine"
m.template 'spec.rb', "vendor/plugins/#{plugin_name}/spec/moonshine/#{name}_spec.rb"
m.template 'spec_helper.rb', "vendor/plugins/#{plugin_name}/spec/spec_helper.rb"
end
end
end