merb-gen provides application, plugin, and component generators for Merb.
Note: this gem requires templater 1.1.0, which is not an officially released version at the time of writing. You can get the source from the forked github repo.
To generate directory structure for a new merb app, run
merb-gen app <app-name>
For instance, merb-gen app foo
would create a new foo merb stack
application inside of the foo
directory. Merb stack sets up commonly
used Merb and DataMapper gems to quickly get you started.
To se what generators are available, run
merb-gen generators.
Instead of app
, merb-gen supports the following profiles:
- core -- generate minimal merb-core application with full layout.
- flat -- a flattened application with a very simple directory structure.
- very-flat -- a single-file application.
To generate a new merb plugin, run
merb-gen plugin <plugin_name>
There are two ways of adding generators, depending on how the generators are intended to be used. The first way is by adding adding the generator via
Merb.add_generators
and specifying the location of any generators:
Merb.add_generators File.join(File.dirname(__FILES__), 'generators', 'my_generator.rb')
This method has some advantages:
- it allows you to load generators only when your plugin is required in the application
- it allows you to load generators from inside the application itself
However, it also has a disadvantage: it is impossible this way to add generators whether the plugin is loaded or not, just by virtue of the gem being installed. This is where the second way comes in: A 'Generators' file is added to the root of the project (like a Rakefile), it should look something like this:
scope "merb-gen" do
Merb.add_generators File.join(File.dirname(__FILES__), 'generators', 'my_generator.rb')
end