Padrino入門 2 「Generators」編

Padrinoではプロジェクト、コントローラ、モデル、マイグレーション、管理画面などを生成するジェネレータ・コマンドが用意されています。

ここでは、以下の公式ドキュメントからジェネレータについての要点をまとめます。

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機能を参考に、ユーザ認証機能を実装する方法について紹介したいと思います。

blog comments powered by Disqus