トップ «前の日記(2017-12-23 (Sat)) 最新 次の日記(2017-12-29 (Fri))» 編集   RSS 1.0 FEED  

Journal InTime


2017-12-25 (Mon) [長年日記]

_ [Ruby] Ruby 2.5.0へのアップグレード

Ruby 2.5.0がリリースされたので、この日記をRuby 2.5.0にアップグレードした。

今のところtDiaryの動作はとくに問題なさそうだが、2.5.0のバグっぽい挙動を見つけてしまったような……。

_ [Ruby] モジュールのrefineのバグ

モジュールをrefineした際のバグをいくつか直したつもりだったが、以下のケースでusing Dしていないのにrefineしただけで挙動が変わってしまうようだ。

module A
  def foo
    puts "A#foo"
    super
  end
end

class B
  def foo
    puts "B#foo"
  end
end

class C < B
  include A

  def foo
    puts "C#foo"
    super
  end
end

module D
  refine A do
    def foo
    end
  end
end

C.new.foo

using Dした時にsuperでBを辿れないのは仕方ないかなと思っていたのだが、using Dしてないのにこうなるのはちょっとまずい……。

とりあえず、Bug #14232として登録しておいた。