Padrino入門 2 「Generators」編
Padrinoではプロジェクト、コントローラ、モデル、マイグレーション、管理画面などを生成するジェネレータ・コマンドが用意されています。
ここでは、以下の公式ドキュメントからジェネレータについての要点をまとめます。
- Guides Generators - Padrino Ruby Web Framework
- Guides Generators - Padrino Ruby Web Framework(途中まで日本語)
Project Generator
projectジェネレータは、利用するコンポーネントを指定して新しいプロジェクトを生成します。
> padrino g project demo_project -t rspec -e haml -m rr -s jquery -d datamapper -c sass
指定可能なオプションは以下のとおり。
Options : Default : Aliases : Description
--------+---------+---------+---------------------
bundle : false : -b : bundlerによる依存ライブラリのインストールを行う
root : . : -r : プロジェクトのルートパス
dev : false : none : 開発版のPadrinoをGitリポジトリから取得して使用する
app : nil : -n : プロジェクト名とは異なるアプリケーション名を使う
tiny : false : -i : 最小限度のプロジェクト構成で始める
adapter : sqlite : -a : ORMが使うDBアダプタを指定する
(mysql, sqlite, postgres)
コンポーネントは以下が選択可能です。(Ver.0.10.6)
Component : Default : Aliases : Options
-----------+---------+---------+---------------------
orm : none : -d : activerecord, mini_record, datamapper,
mongomapper, mongoid, sequel, couchrest,
ohm, mongomatic, ripple
test : none : -t : rspec, shoulda, cucumber, bacon, testspec,
riot, minitest
mock : none : -m : mocha, rr
script : none : -s : jquery, prototype, rightjs, mootools,
extcore, dojo
renderer : haml : -e : haml, erb, liquid, slim
stylesheet : none : -c : less, sass, compass, scss, none
Template
projectジェネレータはテンプレートに基づいてプロジェクトを生成することができます。プロジェクト生成時に定型的に行いたい修正がある場合、テンプレート化しておくと便利です。
> padrino g project my_project --template path/to/my_template.rb
公式のテンプレート・レポジトリでは3つのテンプレートが公開されています。
テンプレートではThorアクションを利用してファイルの作成・追記・削除などが記述できます。(Thor APIドキュメント)
Plugin Generator
テンプレートと似た仕組みとしてpluginジェネレータがあります。公式のプラグイン・レポジトリで複数のプラグインが公開されており、作成後のプロジェクトに適用できます。
> cd path/to/existing/padrino/app
> padrino g plugin path/to/my_plugin.rb
Controller Generator
コントローラを生成します。
> padrino g controller Admin
生成時に、コントローラ内で定義するルーティングを指定することができます。
> padrino g controller Admin get:index get:new post:create
生成したコントローラを削除します。
> padrino g controller User -d
Model Generator
モデルを生成します。
> padrino g model User
生成時に、モデル内で定義するフィールドを指定することができます。
> padrino g model User name:string age:integer email:string
生成したモデルを削除します。
> padrino g model User -d
Migration Generator
マイグレーションを生成します。
> padrino g migration AddFieldsToUsers
生成時に、マイグレーション内で定義するカラムを指定することができます。
> padrino g migration AddFieldsToUsers last_login:datetime crypted_password:string
マイグレーションを削除します。
> padrino g migration AddFieldsToUsers -d
Mailer Generator
メーラを生成します。
> padrino g mailer UserNotifier
生成時に、メーラ内で定義するデリバリーアクションを指定することができます。
> padrino g mailer UserNotifier confirm_account welcome inactive_account
メーラを削除します。
> padrino g mailer UserNotifer -d
Sub App Generator
サブアプリケーションを生成します。
> padrino g project demo_project
> cd demo_project
> padrino g app one
> padrino g app two
コントローラ、モデル、メーラは-aオプションでサブアプリケーションに対して生成することができます。
> padrino g controller Admin -a my_sub_app
> padrino g model User -a my_sub_app
> padrino g mailer UserNotifier -a my_sub_app
サブアプリケーションを削除します。
> padrino g app one -d
Tiny Skeleton Generator
controllers, helpers, mailersを含まないプロジェクトおよびサブアプリケーションを生成することができます。
> padrino g project tiny_app -d mongoid --tiny
> cd tiny_app
> padrino g app tiny_app --tiny
Admin Generator
管理画面を生成します。(管理画面はadminサブアプリケーションとして生成されます)
> padrino g admin
生成時に、テーマ(配色)を指定することができます。
> padrino g admin --theme blue
選択可能なテーマは以下のとおり。
amro, bec, bec-green, blue, default, djime-cerulean, kathleene, olive, orange, reidb-greenish, ruby, warehouse
管理画面を削除します。
> padrino g admin -d
おわりに
「Controllers」編や「Application Helpers」編も書こうかと思っていましたが、どうも私の技量では整理しきれない気がしてきました。
とりあえず次回はAdmin機能を参考に、ユーザ認証機能を実装する方法について紹介したいと思います。