ちょっとActiveScaffoldを使う機会があったので自分用にメモ。

まずは配布サイト。

インストール方法。

   1  % ./script/plugin install http://activescaffold.googlecode.com/svn/tags/active_scaffold

利用レポート、チュートリアルなど。

ActiveScaffoldの前身であるAjaxScaffoldGeneratorはGemで提供されていたのですが、ActiveScaffoldはプラグインのみの提供。

posted by Png genki on Sun 13 Apr 2008 at 20:33 with 1 comment

Railsで利用可能なGeneratorを設置可能な場所について、優先度が高い順に紹介します。

  1. RAILS_ROOT/generators Railsアプリケーションのルートに設置。意外と知られていない気がします。
  2. vendor/plugins/*/generatorsもしくはvendor/plugins/*/rails_generators よくあるGeneratorプラグインの構成ですね。rails_generatorsでも良いというのはあまり知られていない気がします。
  3. ~/.rails/generators ユーザのホームディレクトリの下にユーザ固有のGeneratorを設置できます。 これもあんまり知られてないのではないかと思います。
  4. *_generatorという名前のGem。login_generatorとか、Gemとして提供されているGeneratorですね。これはそこそこ知られていると思います。

RailsのGeneratorは、コード生成の仕組みとして意外と汎用的なので、Generatorがもっとカジュアルに使われるようになると、3の使い方のように、自分用Generatorとかを置きたくなることもあるかも?

See Also

posted by Png genki on Sun 13 Apr 2008 at 12:35 with 1 comment

Generatorプラグインを作る方法はこちらの 「Generatorプラグインの作り方」 を参照していただくとして、今回はGenerator Gemの作り方を紹介します。

Generatorの実装自体は、基本的にはプラグインと同様でOKです。 Generatorプラグインの場合、 vendor/plugins/foo_generator/generators/foo/ 以下にfoo Generatorを置くのですが、Generator Gemの場合は foo/以下をそのままGemのルートディレクトリに持ってきます。 つまり、以下のような感じのファイル構成になります。

   1  [GEM_ROOT] % ls
   2  foo_generator.rb templates/ README.txt

注意すべき点は以下の二つです。

  • Gemの名称はfoo_generatorでなければならない。これは、RailsがGenerator GemをLookupするのにGem名のパターンマッチを行っているからです。
  • foo_generator.rbの先頭で、Generatorの既定クラスの定義をrequireする。例えば、Rails::Generator::NamedBaseの派生Generatorを作るのであれば、先頭に以下を加えます。
       1  require "rails_generator/base"
    

あとはGemを作ってインストールすればOK。 ./script/generate -hを実行して、作ったGemが Installed Generators / Rubygems: の項に入ってるかどうか確認してみましょう。

posted by Png genki on Sun 13 Apr 2008 at 12:15

NewGem-0.22.2 を使って生成したGemの雛形で、config/hoe.rbのAUTHORに製作者名の文字列の配列を指定した場合に、rake packageでエラーが発生していたので、その対処法のメモ。

   1  $hoe = Hoe.new(GEM_NAME, VERS) do |p|
   2    #p.developer(AUTHOR, EMAIL)
   3    p.author = AUTHOR
   4    p.email = EMAIL

上記のようにp.developerを使うのをやめて、直接authoremailを設定します。そのうちNewGemか Hoe のどちらかが修正されると思いますが、とりあえず。

posted by Png genki on Sun 13 Apr 2008 at 11:28
Contents
ActiveScaffoldのメモ
GeneratorのLookupルール
Generator Gemの作り方
NewGem-0.22.2で複数のAUTHORを指定する場合の問題
Comments
瀧内元気: MacOS版は以下にあります * [genki/ViMouse](https://githu... '23-1
dsjf: https://gist.github.com/6bf1bf2c3cbb5eb6e7a7 これ... '13-1
瀧内元気: おお、チェックしてみます。thx! '11-12
overisland: Reeder for iPhone もこの UI を実装していますね。 '11-12
瀧内元気: その情報は見たのですが、以下のサイトによると、現在はまた必要になってるっぽいんですよね。 ... '11-12
Services from s21g
twpro(ツイプロ)
Twitterプロフィールを快適検索
地価2009
土地の値段を調べてみよう
MyRestaurant
自分だけのレストラン手帳
Formula
ブログに数式を埋め込める数式コミュニティ