twitter っぽく http://example.com/ をリクエストした際にログイン済みであれば HomeController に、未ログインであれば WelcomeController に振り分けるってのをやる。
Rails3.0.5 + Devise 環境で。
とりあえずこれで実現出来てるっぽい。
constraints で request オブジェクトが取れるので、それぞれの環境合わせてチェックすれば良さげ。
アツすぎる。秒殺で 1Click 完了。
全然中身不明だけど 1.1.0 対応だろうか。
いくらなんでも攻めすぎだ、とも思うけどタイミング的には悪くないのか?
テスティングライブラリ1本でガッツリ本を出せるだけの勢いがあるっちゅー事だもんね。
逆に書籍が出る事でファッション化を進めちゃうケースもあるんだろうけど、RSpec は大丈夫。盤石になると思います。
Chad Humphries Ken Barker Apress (2008/02/11)売り上げランキング: 16880
全部で29個、のはず。
RSpecとcgi_multipart_eof_fixを入れてしまったので。
リストはこちら。29個版。
http://pastie.textmate.org/111488
ほとんどRails周りで使うヤツが主。
needleはアツい。hpricotも嬉しいんだけど、これ何かの依存で入ってるんかな?
早速MacBookにLeopardをブッコみました。
過去、上書きインストールすると何かと問題が起きていたので「クリーンインストール&移行アシスタント」を組み合わせます。
1. 外付けHDDをつなぐ
2. インストールDVDを入れて10.5のインストールモードにする(再起動)
3. ディスクユーティリティでMacBookのHDDをイメージ化して外付けHDDにバックアップ
4. クリーンインストール(新規アカウントのユーザー名は旧アカウントと被らないように注意)
5. インストール終了後、HDDに移したイメージをマウント
6. 移行アシスタントの「別のボリュームから」を選択
7. 移行するアカウントを選択して移行開始
8. 終わったら移行したアカウントでログイン
9. インストール時に作ったアカウントを削除
10. XcodeToolsのインストール
すげーラク。
アプリケーションや書類の他に、ホームディレクトリも移行されます。
MacBookには何故かsvkを入れてなかったのですが、多分その辺もちゃんと移行されるはず。
zshrc等はいけてます。
後は各アプリケーションのLeopard対応アップデータを当てていく感じになる。
MacPorts周りも移行されますが、
Leopard自体が割と開発者フレンドリーな作りになってたので構成を変更する予定。
【補足】
/Library/LaunchDaemons 以下は移行されてないのでactivateし直す必要アリ
デフォルトがこんな感じだった。
zsh 4.3.4
subversion 1.4.4
svk 2.0.1
Ruby 1.8.6
rake 0.7.3
rubygems 0.9.4
Rails 1.2.3
mongrel 1.0.1
capistrano 2.0.0
PHP 5.2.4
maven 2.0.6
Ruby方面が力強いなー。
svkがデフォなのはアツい!
—
やっとPHP5になったー、と思ったらpearが入ってねー。
PHPはMacPortsにしとく。
RSpecバンドルがrubyforge.orgからmacromates.comのリポジトリに移行して構成自体も変更されたんですが、最も影響度が高いのはrspecのscopeが出来た事。つまりバンドルにLanguageパートが出来て独立した言語として扱うようになった。spec.rbで終わるファイルはRSpecにバインドされる。
ところがhoge_spec.rbなファイルを開いてもターゲットがRailsになってしまう。
手動でRSpecにすると今度はRailsファイルがRubyになる。で、Railsにするとhoge_spec.rbがRailsに戻る。これの繰り返しでお兄ちゃん生きてる気がしないんだよーー!!
と思ってたらmacromates.comのブログに見事な回答が。
まず手動でバインドされてる情報を消す。
defaults delete com.macromates.textmate OakLanguageFileBindings
で、RailsのLanguageのfileTypesを
fileTypes = ( 'rxml', 'rb' );
こうすると解決。
fileTypesの変更のみでいいかもしれない。rbが入ってないのは予想外だった。
ただこれだとRubyスクリプトは全てRails扱いになる(はず)。
rbを入れなかった理由はこれっぽい。
とはいえscopeはrubyを含んでる(source.ruby.rails)ので実害は今のところ無いです。
Presently there is no way to make the binding only for Rails projects, but as the Ruby on Rails grammar is a superset of the Ruby grammar, it shouldn’t be that big a problem.
っちゅーことですね。
ちょっと古い記事ですけども。
「HTML画面をそのまま仕様書に」 … HTMLファイルからコード生成するために名前規約を工夫したHTMLファイルである。そのHTMLテンプレートに「『仕様』と『開発者向けメモ』を直に書いてしまう」
http://itpro.nikkeibp.co.jp/article/COLUMN/20070214/261859/
HTMLを画面仕様書に、ってのはウチでもやりましたが非常に良いです。
やっぱわかりやすい。細かい部分はWikiに書くにしても、肝は画面遷移と処理内容ですので。
変更点とか気付いた事があれば随時付け足すみたいな感じ。
名前規約を元にDTOと呼ばれるデータモジュールやPageと呼ばれるプログラムの雛形を生成する仕組み
ここまではやってないんですが、是非突っ込んでみたい所。
所定のフォーマットで記述した仕様(ストーリーとシナリオ)からRBehaveとSeleniumを組み合わせた受け入れテストの生成が出来ると割りと良さげ。
ZendFrameworkには政治的な思惑も含んでか、コード生成系のツールが付属してこない事はご存知かと思います。
それ自体はS2Base.PHP5 with Zfを使うなり自分で作るなりすればいいわけですが、テスティングに関するノウハウが生まれにくい面が問題。Railsの様にフレームワーク側でサポートされれば叩かれて使いやすくなると思います。ZFのproposalにも「テスティングマネージャー作ってー」的なのが上がってるみたいですけど、どうなる事か。
さて、S2Baseの話ですが、S2BaseZFではDao、Model(Zend_Db)、Serviceのテストをサポートしていますが、Controllerに関してはテストコードが生成されません。これはControllerにヘヴィなロジックを持たせない→Seleniumの受け入れテスト(acceptance tests)が機能テスト(functional tests)を賄えるんじゃねえの、という見解です。
とはいえ、毎度selenium-rc立ち上げるのがメンドイとか、(State Verificationはオススメできないとかはおいといて)アサインされてる変数のチェックがしたい時は少々苦労しそう。
というわけでRailsのFunctionalTestを参考にちょろっとやってみた次第。
S2BaseZFを使ってますが、作法自体は依存しまくったりしていないので素のZFでも問題なくいけるかと思います。 “ZendFrameworkでRails風FunctionalTestを書く” の続きを読む…
TDDの「取っ掛かりと展開」について書かれた素晴らしい記事です。
TDD from starting from user stories – a top-down style « Test everything
ザックリと日本語化しました。
ユーザストーリーから始めるTDD
—–
「シナリオ→受け入れテスト→ユニットテスト」というアジャイル開発のアプローチをTDDにフォーカスした解説(ATDDってヤツ?)。RBehaveを使ったサンプルもあるのが嬉しい。
内容を極めてシンプルにまとめると
「ユーザストーリーをバッチリ決めておくと幸せになれる」
って感じですかね。
top-down styleっちゅー事ですけど、xUnit Test Patternsにもコンテキストこそ違えど似たような事が書いてあった、気がする。「Inside-outじゃなくてOutside-inで押し切る」だったかな。依存関係はMockObjectやTestDoubleで対応して差し替えろとか。そんなん。
この記事もxUTPのソレも「必要な機能だけを確実に実装出来る」という着地点は同じ。
それはともかく、全部をガッチリ訳すのは辛いので適当に要点を抜いてまとめました。
サンプルで展開されているRBehaveの美しさにお漏らししちゃって下さい。
意訳もいいとこですので、明らかに意味を取り違えてるような部分があったらテレパシーで教えてもらえると助かります。
フォローアップとしてBDDとユーザストーリーのカラミ記事も是非。
DanNorth.net » What’s in a Story?
入場料Freeで話題のOzzfest2007ですけれども、
公式ページがコミュニティサイトっぽい作りになってました。
で。
ヘッダみたらnginxだったり、細々したところがRailsっぽかったり。
これとか→http://www.ozzfest.com/javascripts/application.js
やっぱOzzfestはハンパ無いな。
なかなかエッジな組み合わせじゃねーか。
Ozzfest公式をSBMに登録する時はRailsタグを忘れずに。
ま、ホントにnginx&Railsかどうかはわからんけどね。

rSpec Basics | PeepCode Screencasts for Ruby on Rails Developers
peepcode.comでRSpecの基礎講座スクリーンキャストが販売中。
3パート構成のようです。
Part.1はRailsセットアップとかGrowlと連携とか。
モック方面のPart.2とcontroller/view等のPart.3は撮影中らしい。
とりあえず買う。かもしれない。
Part.1の内容自体はあまり魅かれないんですけども。
正直Growl使わないのでこれはどうでもいいし。
ただ「Philosophy」は是非聞いてみたい所。