トップ «前の日記(2012/01/27 (金) ) 最新 次の日記(2012/01/29 (日) )» 編集 RSS feed

HsbtDiary


2012/01/28 (土) [長年日記]

[rails][ruby] ruby-1.9.3 では BasicObject.new に誤った引数を渡すと ArgumentError になっている件

ここ数日 ruby-1.9.2 と rails-3.2.x で rspec や cucumber を走らせると、毎日1回は Ruby が SEGV してしまってぼやいていたら、

@hsbt 修正されたバグも結構あるはず。どのコンパイラを使ってるのかわからないけど、Fiberのやつはtrunkでは直ってるんじゃないかという気が。 2012-01-27 13:10:05 +0000 Reply Retweet Favorite

とアドバイスをもらったので 1.9.3 で開発中の Rails アプリケーションを実行してみたら、

DatabaseCleaner.strategy = :transaction, {except: %w[foo bar]}

というところで ArgumentError が起きるようになってしまった。色々調べてみたら、DatabaseCleaner.strategy = で作成される DatabaseCleaner::ActiveRecord::Transaction.new は引数無しのメソッドにも関わらず、{except: %w[foo bar]} の部分がオプションとしてわたっている事が ArgumentError の原因だった。つまり、これまで 1.9.2 でオプションを渡して効いてると思っていた処理はまったく意味の無いものなのであった。な、なんだってー。

これは 1.9.3 から引数無しの class を引数付きで new しようとした時の正しい挙動らしい。

とりあえずこの件はアプリケーションの方で無駄なオプションを消すことで対処した。ついでに DatabaseCleaner の方にも transaction にオプションを渡すような使い方をしている時にはちゃんとわかるようにエラーを出す pull request も出しておいた。

[vita][sony][game] Vita の小物を買った

三国無双 Next もすっかり飽きて今は torne 視聴機となっているんだけど、長時間 torne を見るにはバッテリーが足りなくて、かといって持ちながら充電するには充電ケーブルが邪魔なのでクレードルを買ってしまった。これで2500円と言われると"えー"って値段だけど目的達成のためにはしょうがない。

後は鞄に突っ込んで持ち運ぶためにポーチを買った。Amazonのレビューの通り、ちょっと入れにくいけど他のポーチのごつさが耐えられないのでこれはこれでいいかなーというレベル。


PlayStation Vita クレードル (PCH-ZCL1J)
-
ソニー・コンピュータエンタテインメント
¥6,400

PlayStation Vita ポーチ (PCHJ-15004)
-
ソニー・コンピュータエンタテインメント
¥2,718