The Plugin Generator allows you to create Padrino projects based on a template file that contains all the necessary actions needed to create the project. Plugins can also be executed within an existing Padrino application. The plugin generator provides a simple DSL in addition with leveraging Thor to make generating projects a breeze!

$ padrino g project my_project --template path/to/my_template.rb

This will generate a project based on the template file provided. You can also generate a project based on a remote url such as a gist for an additional level of convenience:

$ padrino g project my_project --template

You can also execute template files directly from the official templates repo:

$ padrino g project my_project --template sampleblog

You can also apply templates as plugins to existing Padrino applications:

$ cd path/to/existing/padrino/app
$ padrino g plugin path/to/my_plugin.rb

You can also execute plugin files directly from the official plugins repo:

$ cd path/to/existing/padrino/app
$ padrino g plugin hoptoad

You can even get a list of available plugins with the following command:

$ padrino g plugin --list

A simple template (plugin) file might look like this:

# my_template.rb
project :test => :shoulda, :orm => :activerecord
generate :model, "post title:string body:text"
generate :controller, "posts get:index get:new post:new"
generate :migration, "AddEmailToUser email:string"
require_dependencies 'nokogiri'

git :init
git :add, "."
git :commit, "initial commit"

inject_into_file "app/models/post.rb","#Hello", :after => "end\n"
rake "ar:create ar:migrate"
initializer :test, "# Example"

app :testapp do
  generate :controller, "users get:index"
git :add, "."
git :commit, "second commit"

Keep in mind that the template file is pure Ruby and has full access to all available thor actions.

last updated: 2016-10-23

comments powered by Disqus