新しいブログをよろしく

irohiroki.comでブログを続けます。 よろしくお願いします。ちなみに新しいブログはHerokuにホスティングされたTypoです。

Mitaka.rbでコラボレーションの真髄を垣間見た!

『WEBエンジニア meets デザイナー』と題した第9回Mitaka.rbに参加してきました。 今回はリトルスター・レストランに30名強のWEBエンジニアと数名のデザイナさんが集まり、プレゼンを聞き、フルボッコにされ、食事をし、楽しい時間を過ごしました。最初に主…

Windows上でRubyからMySQL 5.1を使う

現在Windows上のRubyでMySQLを使う場合、安定性や速度の面で最適なバインディングはmysql-win 2.8.1だと思われますが、リリースのアナウンスにも書かれている通り、このgemが対応するMySQLのバージョンは5.0.83です。 しかし機能や安定性など、様々な理由でM…

Rails 2.3.5のウェブアプリをWindowsのexeファイルにする

ローカルアプリケーションを作るときでも、ウェブインターフェースを付けたいことがあります。しかも、データベースも使いたい。そういう場合にはRailsを使えば開発が簡単になります。しかし、作ったローカルアプリケーションを配布しようとすると問題が起き…

autotestからRailsが分離された

6月3日のことですが、ZenTest 4.1.0のリリースノートによると、autotestからRailsサポートが分離され、autotest-railsというGemになりました。つまり、ZenTest 4.1.0以降をインストールすると、Railsのルートディレクトリで $ autotestとしてもテストが実行…

foo ||= {} は foo = foo || {} じゃないってば

&&と||の自己代入式は例外です。 foo ||= {} は foo || foo = {} です。これは、左辺が属性参照だったときに大きな違いになる可能性があります。つまり foo.bar = foo.bar || {} だと、foo.bar=というメソッドが常に呼ばれるのに対し、 foo.bar || foo.bar =…

RSpecよりShoulda、fixturesよりヘルパーとMocha

RailsでBDDと言ったらRSpecが圧倒的にポピュラーですね。でもRSpecに馴染めないという人はいませんか?私はx.should == yという書き方からKernelを拡張する実装まで、何もかも独自路線でいく個性の強さについていけません。しかし同時にTest::Unitの垢抜けな…

Integration testの中でファイルアップロードができない

現在のRails(1.2.4および2.0 Preview)にはIntegration testの中でファイルアップロードができないというバグがあるようです。実際にやってみると、fixture_file_uploadを使ってもActionController::TestUploadedFileのオブジェクトにならず、ActionControlle…

テストの中でnamed routesを使う

テストコードにおいて、RESTfulなURLへのリンクやformのactionがあることをassertする場合、どう書きますか?例えば下のようなリンクが表示されることを確認したい場合です。 <a href="/products/1;edit"> 下のようにパスをハードコードしてしまったら、 assert_select "a[href = /produ</a>…

Railsの予約語はこんなにたくさん

今日はカラム名に(つまりモデルのattributeに)使ってはいけない単語を使ってしまい、時間をロスしてしまったのでメモしておきます。一般にプログラミング言語には識別子(つまり変数などの名前)として使ってはいけない単語、”予約語”がありますね。英語で…

render :partialのcollectionとしてHashのArrayを渡せるか?

タイトルを分かりやすく書くと、例えば <%= render :partial => "foo/foo", :collection => @foox %> のとき、@fooxとしてHashのArrayを渡せるか?つまり @foox = [ {:a => "moo", :b => "baw"}, {:a => "coo", :b => "bah"} ] を渡したら、{:a => "moo", :b…

レヴュー: MasterView - Part 3 MasterViewの欠点

MasterViewは素晴らしいプラグインなのですが、イマイチ広まらない原因と思われることを挙げてみます。 テストへの対応が不十分 functionalテストの中には当然テンプレートをレンダリングするものもありますが、そういうテストを実行したとき、テンプレート…

レヴュー: MasterView - Part 2 MasterViewの仕組み

Railsのテンプレートはレイアウト、コンテンツ、パーシャルに分類されます。ERBを使うとこれらは別のファイルになるのですが、なんとMasterViewでは一つのXHTMLファイルです。そしてそのファイルは、レンダリング結果のサンプルとしてブラウザで表示できます…

レヴュー: MasterView - Part 1 MasterViewの長所

RailsのデフォルトのテンプレートエンジンはERBですが、レンダリング結果を見るには実際にレンダリングしてみる必要があります(つまりテンプレートのままではレイアウトなどのデザインを確認できません)。MasterViewはテンプレート記述言語にXHTMLを拡張し…

responds_to_parentをassertするassert_select_parent

responds_to_parentはAjax風のファイルアップロードを実現するためのRailsプラグインです。responds_to_parentによって生成されるレスポンスは特異なJavaScriptを含むため(後述)、専用のselector assertionを書いてパッチを送ったところ採用されましたので…

このブログについて

このブログでは、 Ruby on Railsに関する話題で、 まだ日本語で書かれていないこと を中心にポストしていきます。 たまに既出かも。