class SimpleEngineGenerator < Rails::Generator::Base attr_accessor :engine_name attr_accessor :engine_path def initialize(*runtime_args) super(*runtime_args) @engine_name = args.first.singularize.underscore @engine_name += "_engine" unless @engine_name =~ /_engine$/ @engine_path = File.join("vendor", "engines", engine_name) end def manifest record do |m| %w( app/controllers app/helpers app/models app/views ).each do |dir| m.directory File.join(engine_path, dir) end %w( config lib lib/tasks test/fixtures test/functionals ).each do |dir| m.directory File.join(engine_path, dir) end m.template 'application.rb', File.join(engine_path, 'app/controllers', 'application.rb') m.template 'init.rb', File.join(engine_path, 'config', 'init.rb') m.template 'Rakefile', File.join(engine_path, 'Rakefile') end end end