只今Ruby勉強中

プログラミングRuby―達人プログラマーガイド

うさぎさんと一緒にRubyの勉強をしているオレの記録。

間違ってる所とかいっぱいあると思いますけど、誰でもコメント出来るので気軽に教えて下さい。

普段は 鷹の島 って所で書いてます。

現在のハマリポイント - yield, succ?, Proc & 後で

2007-06-18 (Mon)

Rails’ Wiki - Rails勉強会@東京第19回 に行ってきました 09:50  [http://wiki.fdiary.net/rails/?RailsMeetingTokyo-0019:title] に行ってきました - 只今Ruby勉強中 を含むブックマーク

2回目。今回も参考になる話が沢山聞けた。セッションのネタがなかったから悩んだけど、参加して良かった。

  • 自己紹介でしゃべる事がなくて、つまんねえ人になってる予感。 なんか考えないと。
  • もろはしさんに名前の紹介ができた!!
  • 何人か年齢を言ってたけど、年下ばかりだとは…。この前28になったけど、もう平均より上の位置なのか。

以下セッションのメモ

入門 Rails

テストのやり方とかについて、Agile Web Development with Rails の PDF とオフィシャルの API リファレンス(actionpack)を見ながら進める。

主に、インテグレーションテストについて。インテグレーションテストは、ブラウザで操作する一連の流れみたいなものをテスト出来る。例えば、システムにログインして、そのステータスをチェック、ログイン後のリダイレクト先の URL をチェック、最終的な出力された DOM の内容をチェック、と言ったテストが一辺に書ける。

DOM をチェックするのは CSS のセレクタを使うのが楽。assert_select を使ってチェック出来る。

以下、body 要素以下の h1 要素の内容が「Online Cookbook」であるかどうかのテスト。

assert_select "body h1", "Online Cookbook"

RSpec

DRB が気になって、以前試した RSpec のセッション。

標準のテスト機構と違って、テストの雛型が出来ないと思っていたので使っていませんでしたが、generate コマンドでプレフィックスに rspec_ を指定すれば良かっただけのようです。ちとショック。

script/generate rspec_model
script/generate rspec_controller

これで spec ファイルを作ってくれるらしい。

コマンドラインは、spec -fs -c hogehoge_spec.rb みたいな感じで実行し、オプションの意味は

  • fs : -f がフォーマットの指示子で、フォーマットsを指定みたいな。sってなんだっけ?
  • c : カラー。結果をカラフルに表示してくれる。

fixture も test::unit と同じに使える。

view と controller のテストを分けられるし、controller と model のテストも分けられる。それぞれ進めて行く事が可能。ユニットテストの場合は view 単体でのテストとか出来ない。

view のテストをする場合は、インスタンス変数は assigns で指示出来る。こんな感じで @shop が使えるようになる。

assigns[:shop] = Shop.new(:name => "My Shop")
...
render 'shops/show'

view の中に @hogehoge が沢山あると、assigns が増えてきて汚くなる。これはつまり、controller の仕事量が多いんじゃないの?って事が言えるわけで、assigns は五個くらいに抑えましょうと言う事。都道府県や年齢とか、controller の動きと直接関係ないようなものは、view 側で処理しちゃえばいいじゃないか、と。最初は気持ち悪いけど、その方が本質的。

あとは、タグクラウドの実装は重くなるからみんな使わないでね。

rspec.vim 10:38  rspec.vim - 只今Ruby勉強中 を含むブックマーク

もろはしさんが、:Rspec で spec を実行していたのが気になったので調べてみた。

なるほど。rails.vim と連携出来そうなの作ってみようかな。あと、rails.vim の補完候補に rspec_model とか出したいんだけど、こっちは rails.vim の内容を書き換えないと無理そう。

トラックバック - http://rubyist.g.hatena.ne.jp/gaba/20070618

2007-06-14 (Thu)

fcgi のセッティング 22:55  fcgi のセッティング - 只今Ruby勉強中 を含むブックマーク

従業員が毎日の作業報告みたいなのを書いて、それを管理できるようなのを rails で作りました。

で、実際 fcgi で動かしたりしてみたんですけど、何やら fcgi のプロセスがやたらと増えていって、メモリ食いまくりで大変な事になっていたので、この辺を調整する方法を調べてみました。fcgi の設定をうまくすれば良いようです。

今、こんな感じ。

$ cat /etc/apache2/mods-enabled/fastcgi.conf
<IfModule mod_fastcgi.c>
  AddHandler fastcgi-script .fcgi
  #FastCgiWrapper /usr/lib/apache2/suexec2
  FastCgiIpcDir /var/lib/apache2/fastcgi
  FastCgiConfig -maxClassProcesses 5 -autoUpdate -startDelay 30
</IfModule>

ドキュメントの翻訳見当たらなかったので、ここを参考にしました。http://d.tir.jp/pw?mod_fastcgi

apt でインストールしている場合、英語のドキュメントは HTML 形式のがあります。/usr/share/doc/libapache2-mod-fastcgi/mod_fastcgi.html

これで良いかわかんないけど、とりあえず様子見。

トラックバック - http://rubyist.g.hatena.ne.jp/gaba/20070614