トップ «前の日記(2012/12/02 (日) ) 最新 次の日記(2012/12/04 (火) )» 編集 RSS feed

HsbtDiary


2012/12/03 (月) [長年日記]

ruby-2.0.0preview2 + rails-3.2 が動かなくなった

preview2 といっても毎日ビルドしているので特に限定したものではないのだけど、最新の trunk では Object#initialize_dup が public から private に変わったようで、この影響で Rails に多数存在する以下のコードが動かなくなってしまった。

https://github.com/rails/rails/blob/3-2-stable/activerecord/lib/active_record/base.rb#L563

      # Backport dup from 1.9 so that initialize_dup() gets called
      unless Object.respond_to?(:initialize_dup)
        def dup # :nodoc:
          copy = super
          copy.initialize_dup(self)
          copy
        end
      end

1.9 にある initialize_dup を 1.8 にバックポートしているんだけど、2.0 では initialize_dup が private になったので、この respond_to? を通過してしまうというのが原因みたい。respond_to? は二つ目の引数に true をつけると private でも動くようになるので直しておいた。

https://github.com/rails/rails/pull/8405

あと、Marshal#dump 付近で何か落ちてるような気がするのでこれは明日。

Tags: rails

nanoblock アンコールワットを買った

DSC00005

今回からプレートが二枚になったみたい。相変わらずよくできてる。

nanoblock アンコール・ワット

カワダ
¥ 850