ruby

rspec で例外が発生するかどうかをテストしたい

以下のような感じでテスト可能 it '100回繰り返すと99回目で例外が発生する' do proc { 100.times { |time| get :somewhere, { id: time } } }.should raise_error(UserDefinedException) { |exception| exception.message.should eq("検証すべき業務エラー…

Aptana Studio 3 でコメント行の斜体を無効化する

コーディングフォントにメイリオや Consolas を使っているのであればあんまり気にしなくてもいい項目かとは思うのですが、局所的に(というより俺に)需要があったので書き記しておきます。Aptana Studio 3 をそのまま使った場合、Ruby のコメント行が斜体に…

rake db:migrate を実行した際、一部のマイグレーションだけ行われず、コンソールに何の表示も出ない場合

rails2 でハマったので書いておく。rails3 は知らん。通常 rake db:migrate を実行すると、以下のようなログが出る。 user@localhost$ rake db:migrate == 100 HogeHoge1: migrating ============================================= -- add_column(:unkos, :…

RSpec で should == expected を記述すると Aptana 上で useless use == in void context 警告が出る

should == expected でも正しく動作することはするんだけど気になる。という場合は @hoge.count.to_i.should be == 1のようにする。

Ruby の strftime で月日や時刻の 0 埋めを行わない書式指定

Date の各値に対していわゆるゼロ埋め(0埋め)を行いたくない場合、書式パラメータにマイナスを付加すればいい。 p Time.now.strftime('%Y/%-m/%-d %-H:%-M:%-S') #=> 2012/8/14 9:4:10リファレンスだとここに載っている。

PHP の var_dump() に相当する Rails メソッド

Rails の場合は p か y だと思われる。 sample = {"a" => 1, "b" => 2} y sample #=>a: 1 b: 2 p sample #=>{"a"=>1, "b"=>2} シンボルでも OK 。 sample = {:a => 1, :b => 2} y sample #=>:a: 1 :b: 2 p sample #=>{:a=>1, :b=>2} ActiveRecord の find_by…