require "pp" class GeneratorGenerator < Rails::Generator::NamedBase attr_accessor :gen_path,:gen_name def initialize(*runtime_args) super(*runtime_args) raise "You need a Generator name" if runtime_args.first.size<1 @gen_name=runtime_args.first.first raise " You already have a generator called #{gen_name}" if File.directory?(RAILS_ROOT+"/lib/generators/#{gen_name}") @actions = @args.empty? ? [] : Array(@args) @gen_path=@gen_name.downcase end def manifest record do |m| #Think of a way to check current gens #m.file "lib/rest_resource.rb", "lib/rest_resource.rb" #m.file "lib/vonage_utils.rb", "lib/vonage_utils.rb" m.directory File.join('lib','generators', gen_path) m.directory File.join('lib','generators', gen_path,'templates') m.directory File.join('lib','generators', gen_path,'templates','controllers') m.directory File.join('lib','generators', gen_path,'templates','tests') m.directory File.join('lib','generators', gen_path,'templates','views') m.directory File.join('lib','generators', gen_path,'templates','models') m.directory File.join('lib','generators', gen_path,'templates','helpers') m.directory File.join('lib','generators', gen_path,'templates','libs') m.template 'USAGE', File.join('lib', 'generators',gen_path,"USAGE") m.template 'generator.rb', File.join('lib', 'generators',gen_path,"#{gen_name}_generator.rb") #m.readme "INSTALL" end end end