2008年7月15日火曜日

RubyGemでadminpage_scaffold_generatorをリリースしました

みなさんは管理画面のデザインをどうやって起こしていますか?

おいらはよくお客さんから、「エンドユーザが見る部分はデザインにこだわりたいけど、運営側しか見ない管理画面は(予算を落とすために)素っ気ない形で良いよ」と言われます。

まぁ、たしかにその通りなんですが、デザイナーを挟まないで自分でメニュー構造を作るような感じだと、それはもう、すっばらしく素っ気ない訳で、せっかくシステムとしてはなかなかのモノが出来ても、見た目で「たいしたことねーな」的な烙印を押されてしまいます。るるー。

まぁ、逆に言えば、見た目さえキレイなら、多少機能が落ちてもお客さんのウケは良いわけで…

そんなこんなしてる時に、管理画面用のフリーテンプレートが公開されている という記事を見つけました。(今見直したら、generator作ったら?ぐらい言ってますね)

実物はFree Admin Template For Web Applicationsデモですが、よく見ると質の高さがわかります。

「こりゃあいい、そのうち使おう」とブックマークだけしておいたのですが、そのうち個人プロジェクトで使う機会がありまして、作りながら「これならデフォルトのScaffoldに置き換えれるかも?」と思ってその時の成果を元に作ってみたのが、adminpage_scaffold_generatorです。(ちなみに、その個人プロジェクトの方はまだリリースしてません)

adminpage_scaffold_generatorの使いどころ

まとめてみると、こんな感じでしょうか。

  • 管理画面。なぜなら元になるテンプレートが管理画面を想定したものだから
  • ActiveScaffoldではちょっと用途が違ってて、そのままは使えないような場合の改造元
  • 各種マスタ類のメンテ画面で、そのまま使いたい場合
  • どっちみちコードや見た目には手を入れるにしても、管理画面のためにデザインを起こすまでもない場合の、改造元として

で、基本的にデフォルトのScaffoldに対して見た目だけ変えたものなので、適用範囲や機能もそれに準じています。

  • 生成されるコードは、デフォルトのものとまったく同じはずです
  • デフォルトのScaffoldの性質上、controller毎にlayoutファイルが生成されますが、実際のところはlayoutは1枚にして、ヘッダーや左サイドメニューの内容を動的に入れ替えるような感じになると思います。(この部分は何もしていないので、自分で作る必要があります)

まぁ、デフォルトのscaffold使って管理画面を作るよりは、格段に楽になると思います。

ほとんどの場合(自分の案件は全て?)このscaffoldを使って作ったものをベースにしていいんじゃないでしょうか?

注意事項

ライセンス上の制約があります。

  • 元になっているデフォルトのscaffold_generator(railsに添付)がRubyライセンスなので、Gemの主体となっているMITライセンスを採用できませんでした。よってGPL ver3としています。まぁ、これはadminpage_scaffold_generatorのコードに対するライセンスなので、ジェネレータを使って作った管理画面の元ソースには影響はないでしょう。よってあまり重要ではありません。
  • ジェネレータを使って作った管理画面の元ソースに使われているアイコン(16x16の小さい方)は、FAMFAMFAMさんがリリースされているもので、クリエイティブ・コモン・ライセンスver2.5になります。(なんだよ2.5って)
  • よって、生成される管理画面の下部にクレジットが入りますが、これを取る事はできません。(必要ならFAMFAMFAMさんに問い合わせてください。相談に乗る旨はあった気がします)
  • 中くらい(32x32)のアイコンと、テンプレート(HTMLやCSS)はFreeライセンスのようです。テンプレートの作者に問い合わせると、「自分が作ったと言って配布しなければ、あとは自由にして良いよ」とのこと。
  • クリエイティブ・コモン・ライセンスの縛りから抜けるには、16x16のアイコンを使わないように変更するか、他のものに差し替えればよろしいかと。
  • その他、配布物のLicenseというテキストファイルにまとめてあるので、気になる方はご確認ください。

adminpage_scaffold_generatorの使い方

長くなってしまったので、手短に。(と言っても複雑ではないのですが)

1. gemのインストール

gem install adminpage_scaffold_generator

でgemをインストールする。

2.Railsアプリのルートに移動  

rails newapp

とか  

cd (APP_ROOT)

とかですね。

3.管理画面を生成する

script/generator adminpage_scaffold (モデル名) [(カラム名:型) [(カラム名:型)....]]

みたいな感じでしょうか。

一応おさらいとしては

  • 元にしているデフォルトのscaffoldと機能はまったく同じなので、オプションなども同じように使えます
  • モデル名は末尾にsは付きません。(○:testmodel ×:testmodels)
  • rails ver2.0からカラム名と型名が必要になったんでしたけ?(うろ覚え)

ここで、うまく動かない人は以下の事を確認してください

$ gem list

$ adminpage_scaffold_generator

が表示されているか?(インストールされているか?)  

(APP_ROOT) $ script/generate

Installed Generators  

Rubygems: adminpage_scaffold, install_rubigen_scripts

Builtin: controller, integration_test, mailer, migration, model, observer, plugin, resource, scaffold, session_migration

みたいに、generatorとして認識されているか?

(APP_ROOT) $ script/generate adminpage_scaffold

とか

(APP_ROOT) $ script/generate adminpage_scaffold hoge --help

とかして、オプションは正しいか?

プラグインバージョン

実は、gemを使わなくても、railsのpluginとしても動作するようにしてあります。(内容はほぼ変わらないので)

(APP_ROOT) $ script/plugin install http://adminpage.rubyforge.org/svn/trunk/plugins

でインストールできます。使い方も同じです。お試しにどうぞ。

(上記はtrunkを使っているのでたまに不安定になるかもです。嫌な方はtagsの中のものをどうぞ)

サポートなど

一応サポートフォーラムは作っておきました。

あとは、RubyForgeのプロジェクトページや、英語版マニュアルページや(ちゃんと書いてないけど)rdocも参照してください。

前回のGemCastが面白かったので、今回は自分で録画してyoutubeとニコニコ動画にアップしようかと思っています。

0 件のコメント: