How to create a Generator (Application Generator)
¶ ↑
-
DONE - Run the generator: script/generate application_generator myapp
-
Using the generated test class, assert what directories, files, classes etc should be generated.
-
Add these files into the app_genearators/myapp/templates folder. Your files can use ERb (that is, <%= … %>).
-
Specify who the files in /templates are copied/templated at generation time within app_genearators/myapp/myapp_generators.rb's manifest method. Use m.file for files to copy over. Use m.template for files containing ERb. Create attr_reader accessors for any variables your templates need access to.
-
Run unit tests.
-
If your application generator uses other generators (called 'dependencies')
e.g. (m.dependency "generator-from-rubygems", [arg1, arg2], options)
then you must add this generators' scope into the executable bin/myapp. For example, if you wanted to use a rubygems and/or rails generator, then replace the use_application_sources! call in bin/myapp:
RubiGen::Base.use_application_sources! :rubygems, :rails
Without this, RubiGen will not be able to find your dependent generators.
-
Update your Manifest.txt with the new files (rake manifest:refresh)
-
Build and install your RubyGem locally. Run: rake install_gem
-
Go to a directory where you can create new test apps.
-
Run 'myapp [path]' and your application skeleton will be created.
See this message again using the -h/–help option.