koukiblog

たぶんweb系の話題

RSpecで常に--format documentation にする

アプリケーションルートに、.rpsec という名前でファイルを作成し、
ファイル内にデフォルトで使用したいオプションを記載すればok

--color
--format documentation

てしとくと、たいていの場合いいんじゃないのかな。

Railsの場合、rspec-railsrspec:installで、.rpsecファイルは作成されてるみたいです。

Gemfile.lockをバージョン管理すべきか

http://langturn.com/translations/33?locale=ja

bundlerの作者によると
・gem開発時にはいらない
・アプリ開発時には必要
ということらしい。

bundle installを実行することで、Gemfile.lockが生成され、そのファイルを配布することで
どの環境でも同じgemの依存環境が再現できる。という内容。

現在の僕の運用だと、Gemfile.lockは毎回生成したのだけど、あまりおすすめされない方法らしい。
理由は、developmentでしか必要ないgemをproduction環境に入れたくなかったから。(rspecとかsqliteとか)
デプロイするたびに、

bundle install --without development test

してたのだけど、どうしようかなぁ。

nginxから返したコンテンツで、cssが全く適用されない

CSSファイルはちゃんとレスポンス出来ていて、中身も問題ない。
けど、なぜかブラウザがcssとして認識してくれない。
という感じで、なんでだろーて感じだったのですが、
よーく見るとレスポンスのMINETYPEがtext/plain。。

nginx.confで、mine.typeをincludeして解決

Railsのユニットテスト時にDBの変更が反映されない

しばらく悩んでしまったのだけど
ユニットテスト時のDBが更新されてないだけだった。。

rake db:migrate RAILS_ENV="test"

して解決

この辺うまくやってくれるgemとかあるのかなー

メソッドの名前を聞く

メソッドの名前忘れたときに、そのオブジェクトに聞いてしまうのが手っ取り早いのに気づいた。
Railsが用意してくれるとかメソッド覚えてられない。。

例えば、数値を変換してくれるメソッドを探す時は

  1.methods.grep /to_./
  #=> [:to_s, :to_f, :to_i, :to_int, :to_r, :to_c, :respond_to_missing?, :to_enum]

みたいに、配列で返してくれる。

methods は、特異クラスのメソッドも全て返却してくれて、
methods(false)を渡すと、特異クラスのメソッドは省いて返却される

他にも色々あるけど(http://ref.xaio.jp/wikis/2/entries/search?q=methods)、ぱっと調べるには、methodsをgrepが楽