jfs-generators

My collection of Ruby on Rails generators. If you use and like these generators, consider recommending me at Working With Rails.

Install

Run this command to install the gem:

sudo gem install jfs-generators

Usage

Once you install the gem, the generators should be available to all Ruby on Rails applications on your system. Run script/generate without any arguments to see a list of the available generators in your environment.

To run the generator, go to your rails project directory and call it using the script/generate or script/destroy command. For example:

script/generate jfs_model Article title:string content:text

jfs_960

Injects the project with the CSS files for the 960 Grid System (v1.1).

Example:

script/generate jfs_960

Injects the project with public/stylesheets/reset.css, public/stylesheets/text.css and public/stylesheets/960.css.

jfs_config

Creates YAML file in your config directory and an initializer to load this config. The config has a separate section for each environment.

The config is loaded into a constant called APP_CONFIG by default, this changes depending on the name you choose to pass the generator. Use this constant to access the config settings like this.

APP_CONFIG[:some_setting]

Examples:

script/generate jfs_config

Creates a YAML file at config/app_config.yml and an initializer at config/initializers/load_app_config.rb.

script/generate jfs_config passwords

Creates a YAML file at config/passwords_config.yml and an initializer at config/initializers/load_passwords_config.rb.

jfs_jquery

Injects the project with the javascript files for jQuery (v.1.3.2) and jQuery UI (v.1.7.1).

Example:

script/generate jfs_jquery

Injects the project with public/javascripts/jqery.min.js.css and public/javascripts/jquery-ui.min.js.

jfs_layout

Creates a basic layout including a stylesheet and layout helper.

The generator optionally takes a single arugument. This is the name of the layout and stylesheet files. If no argument is passed then it defaults to “application”.

The layout is i18n ready and the english translation is creates as config/en.layout.yml.

The helper module includes a title method to allow views to set the title in the document head.

Examples:

script/generate jfs_layout

Creates a layout file at app/views/layouts/application.html.erb, a helper at app/helpers/layout_helper.rb, a translation file at config/locales/en.layout.yml and a stylesheet at public/stylesheets/application.css.

script/generate jfs_layout admin

Creates a layout file at app/views/layouts/admin.html.erb, a helper at app/helpers/layout_helper.rb, a translation file at config/locales/en.layout.yml and a stylesheet at public/stylesheets/admin.css.

jfs_model

Stubs out a new model, including attr_accessible statement for attributes. Pass the model name, either CamelCased or under_scored, and an optional list of attribute pairs as arguments.

Attribute pairs are column_name:sql_type arguments specifying the model’s attributes. Timestamps are added by default, so you don’t have to specify them by hand as created_at:datetime updated_at:datetime.

This generates a model class in app/models and a migration in db/migrate.

Examples:

script/generate jfs_model Account

Creates an Account model at app/models/account.rb and a migration at db/migrate/XXX_create_accounts.rb.

script/generate jfs_model Article title:string content:text

Creates an Article model with a string title and text body.

jfs_scaffold

Scaffolds an entire resource, from model and migration to translation ready controller and views. The resource is ready to use as a starting point for your RESTful, resource-oriented application.

Pass the model name, either CamelCased or under_scored, as the first argument, and an optional list of attribute pairs.

Attribute pairs are column_name:sql_type arguments specifying the model’s attributes. Timestamps are added by default, so you don’t have to specify them by hand as ‘created_at:datetime updated_at:datetime’.

For example, jfs_scaffold article title:string content:text gives you a model with those two attributes, a controller that handles the create/show/update/destroy, forms to create and edit your posts, and an index that lists them all, as well as a map.resources :articles declaration in config/routes.rb.

Examples:

script/generate jfs_scaffold article title:string content:text

Creates a model at app/models/article.rb, a migration at db/migrate/XXX_create_articles.rb, a helper at app/helpers/articles_helper.rb, a controller at app/controllers/articles_controller.rb, views at app/views/article/index.html.erb, app/views/article/new.html.erb, app/views/article/show.html.erb, app/views/article/edit.html.erb and app/views/article/_fields.html.erb and a translation file at config/locales/en.article.yml.

Copyright (c) 2009-2010 Jason Stahl. See LICENSE for details.