Hatena::Groupcatalyst

dann@catalyst このページをアンテナに追加 RSSフィード

2008-03-23

認証周りのベースクラス

00:09 |  認証周りのベースクラス - dann@catalyst を含むブックマーク はてなブックマーク -  認証周りのベースクラス - dann@catalyst  認証周りのベースクラス - dann@catalyst のブックマークコメント

を今日は作っていた。

Authentication::Store::DBIx::Class::Userは$c->modelを参照しているので、Catalystのモデルに依存しないようにするために、このクラスをオーバーライドして、Userのresultsetを直接取得するようにした。

ただ、Authentication::Store::DBIx::Class::Userのようなクラスのメソッドをオーバーライドするのはよくないかもしれない。UserだけCatalystのモデルにするのでもいいかもしれないと少し思う今日この頃。

catstarterからOreOre Starterへの移行方法

23:42 |  catstarterからOreOre Starterへの移行方法 - dann@catalyst を含むブックマーク はてなブックマーク -  catstarterからOreOre Starterへの移行方法 - dann@catalyst  catstarterからOreOre Starterへの移行方法 - dann@catalyst のブックマークコメント

catstarterで作ったものも、OreOre Starterに移行させたよいよね

ってことで移行してみた。

catstarterでの生成

catstarter.pl MyApp -new

変数のテンプレート化

find . -type f| xargs sed -i 's/myapp/[* appprefix *]/g'
find . -type f| xargs sed -i 's/MYAPP/[* upper_appprefix *]/g'
find . -type f| xargs sed -i 's/MyApp/[% module %]/g'

ディレクトリ名、スクリプト名の変数化

  • __module__ のようにMyAppディレクトリを書き換える。
  • myapp_create.plは__appprefix___create.plのように書き換える

OreOre starterの使い方

23:42 |  OreOre starterの使い方 - dann@catalyst を含むブックマーク はてなブックマーク -  OreOre starterの使い方 - dann@catalyst  OreOre starterの使い方 - dann@catalyst のブックマークコメント

http://d.hatena.ne.jp/tomyhero/20080323

OreOre starterはTTのテンプレートから、YAMLで指定された変数で一括置換して、

アプリケーションの雛形を作るStarter。

ディレクトリを作成しておいて、そのディレクトリ構成にしたがってTTのテンプレートを置いておけば、TT中の変数が一括置換されて、アプリケーションのファイルが生成されます。

1つのファイルのstarterだけだと、ファイルの編集が大変ですが、このOreOre staterのようにディレクトリ構成を作れて、そこにテンプレートを置いて置けるようにしておけば、ファイルの編集が簡単になります。また、CSSJSなどのライブラリ群を置いておくこともできます。

まさに、OreOre Starterです。

こんな感じの作りたいねといったら、tomyheroさんが作ってくれました! tomyhero++

作成する手順は以下の通りです。

  • configの作成
  • Skelton用のディレクトリの作成とテンプレートの配備
  • starterの実行

以下では、ステップ順に説明していきます。

configの作成

以下のような感じ

fromに指定されたSkeltonのディレクトリから、

カレントディレクトリ以下にnameの変数名で

指定されたアプリケーションが作成される。

replaceでは、TTの変数名が指定できる

starは、TTのtag style。

name    : MyApp
from    : /home/dann/workdir/CatSkel
tag_style : star
ignore  :
    - \.svn
    - \.cvs
replace :
    module : MyApp
    appprefix: myapp
    upper_appprefix: MYAPP

ディレクトリ構成やテンプレート化

catalyst.plやcatstarterなどで作ればいいです。

  • ディレクトリやファイル名は、 __module__ というように__variable__と指定して変数化する

例えば、

  • MyAppというディレクトリは、__module__というように書き換える
  • myapp_create.plは__appprefix___create.plのように書き換える

oreore starterの実行

./bin/oreore-starter.pl -c conf/config.yaml

tomyherotomyhero2008/03/24 00:51sample/ 配下に

oreore-starter-catalyst.pl 置いてみたよ!

danndann2008/03/25 00:03thanks !!!

トラックバック - http://catalyst.g.hatena.ne.jp/dann/20080323