東京Ruby会議03に行ってきた〜 [tokyorubykaigi03]
東京Ruby会議03に行ってきた。 http://regional.rubykaigi.org/tokyo03
場所は、日本オラクル。いつもお世話になっています〜。無線LANも安定しているし、電源も豊富にあるし、100名程度のカンファレンスをやるにはベストの会場だ。
午前中のYuguiさんの講演はUST中継で観ていて、午後のワークショップというかハンズオンから参加した。
わたしが参加したセッションは和田さんのRSpecの入門。http://d.hatena.ne.jp/t-wada/20100228/p1
はてなのブログにアップされたテキストを写経しながらRSpecを体験するというハンズオンだ。わたしはubuntu 8.10という、ちょっと古めのプラットフォームで、rspecをdebianパッケージで入れたのがどうもよくなかったみたいで、パッケージのバージョンが古くてspec の subjectというメソッドが定義されていなくてエラーでうまくいかなかった。ということでrspecをgemでインストールしようとしたところ、今度はgemのバージョンが古くてgemのアップデートが必要になって、なんだかインストール大会になってしまった。とほほ。gemのアップデートというのも一筋縄ではいかなくてあれやこれや試行錯誤してしまった。
$ sudo gem install rubygems-update -v 1.3.1 $ sudo /var/lib/gems/1.8/bin/update_rubygems $ sudo gem install rspec $ gem -v 1.3.6 $ spec -v rspec 1.3.0
というようなことをやって、やっとRSpecのsubjectを使えるようになった。
diff --git a/message_filter_spec.rb b/message_filter_spec.rb index 7a400f9..c10e61b 100644 --- a/message_filter_spec.rb +++ b/message_filter_spec.rb @@ -6,11 +6,12 @@ describe MessageFilter, 'with argument "foo"' do before do @filter = MessageFilter.new('foo') end + subject { @filter } it { - @filter.should be_detect('hello from foo') + should be_detect('hello from foo') } it { - @filter.should_not be_detect('hello, world!') + should_not be_detect('hello, world!') } end
でもって、実行すると
$ spec -fs message_filter_spec.rb MessageFilter with argument "foo" - should be detect "hello from foo" - should not be detect "hello, world!" Finished in 0.070089 seconds 2 examples, 0 failures
みたいな感じになった。(写経のとおり)
なかなか、おもしろい。これを延々と繰り返すという感じだ。しかし、1時間のハンズオンではあっというまに時間切れになり、あとは自習ということになる。きっかけとしては、このくらいでも十分かもしれない。RSpecの入り口として手を動かすというのは非常に有効な方法だと思った。
田中さんの「open3」
open3とか、spawnとかの実装のお話で、仕様の決定からのあれやこれや。
今回のRuby会議はLTがなくて、一つのセッションが90分とか長めで、形式としては大学の講義みたいな感じであった。これは今回の実行委員長の高井さんのアイデアらしい。
講師の皆さん、実行委員の皆さん、日本オラクルの皆さん、そして参加者の皆さんの素晴らしいコラボレーションで素晴らしいRuby会議だったと思う。雨が降っていたのでサボろうかと一瞬思ったのだが、やっぱり参加して本当によかった。
UST中継やTwitterでのつぶやきも最近の勉強会の常として行われていてスタッフの皆さんありがとうございました。