ちょっと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

以前紹介したPassenger (別名mod_rails)がリリースされたようです。

Passenger mod_rails for Apache

Gemで配布されているので、インストールは以下でOK.

   1  % sudo gem install passenger

DHHも記事を書いてます。

Passenger (mod_rails for Apache) launches

The guys at Phusion has finally wrapped up Passenger, their mod_rails-like module for Apache. It’s looking like a great, easy solution for people who want a more PHP-like deployment story.

今後が楽しみですね。

個人的にはEbb+swiftiplyの動向が気になってます。

See Also

posted by Png genki on Sat 12 Apr 2008 at 11:25 with 1 comment

日ごろ何かとお世話になっているRDocのバージョン2.0.0がリリースされたようです。

rdoc version 2.0.0 has been released!

RDoc is an application that produces documentation for one or more Ruby source files. RDoc includes the rdoc and ri tools for generating and displaying online documentation.

posted by Png genki on Sat 12 Apr 2008 at 11:05

SVN使いがとりあえずGitを使ってみるなら、 Git - SVN Crash Course がお勧め。

自分で覚えるためにポイントを書いておく。 ちなみにZSHはGitのサブコマンドも良い感じにTAB補完してくれます。

  • git pull でリポジトリから持ってくる。
  • 管理する単位はProject Tree=リポジトリ。しかしWorking Treeという用語も散見される。ちょっとどれが正式な呼び方なのか不明。
  • 手元に持ってきたProject TreeはWorking Copyと呼ぶ
  • Project TreeはTagやBranchを含んでいる。従ってURLはリポジトリの場所を表すだけ。
  • デフォルトのブランチ名はmaster (SVNの)
  • Working Copyのルートディレクトリにだけ.gitディレクトリが作られる。SVNやCVSでサブディレクトリ全部に管理ディレクトリが作られるのとは対照的。
  • リビジョンIDは番号ではなく英数字の羅列(SHA1使用)
  • svn info の代わりに git status

Gitのサブコマンドについては、Gitのバージョンによってちょっと違うようなので注意が必要。Debianのstableだと若干古い(1.4.4.4)ので、例えばgit initが無い。代わりにgit-init-dbを使うなどの違いがある。

ちなみに、この記事を書いている時点でのGitの最新バージョンは1.5.5です。

See Also

posted by Png genki on Fri 11 Apr 2008 at 14:56 with 1 comment
posted by Png genki on Sun 6 Apr 2008 at 06:49

英語の学習のために、Googleのデフォルト言語を英語にしているのですが、たまに「このキーワードは日本語のサイトから検索したい」ということがあります。

そんなときは、lang:ja Keywordで探せば良いみたいです。 今までいちいち切り替えていたので、だいぶ楽になりました。


と思ったのですが、たまたまHTML中のlang="ja"に引っかかって 探せていただけで、Googleにそんな機能があるわけではないようです。 実装してくれないかなあ。

おまけ

若干覚えるのが面倒ですが、アドレスバーの最後に

&lr=lang_ja

を追加すると願いがかないます。でもやっぱりlang:jaを実装して欲しいなあ。

posted by Png genki on Sun 6 Apr 2008 at 02:38

KeyVi - Windows用 キーボードユーティリティ

拙作の vimouse を改良してくれてる人がいるのを見つけました。 自分が作ったものに興味を持ってもらえて、あまつさえ改良を加えてもらえるのって、単純に嬉しいですね。

オープンソースは楽しい。

posted by Png genki on Thu 3 Apr 2008 at 13:52 with 3 comments