トップ «前の日記(2013/01/26 (土) ) 最新 次の日記(2013/01/28 (月) )» 編集 RSS feed

HsbtDiary


2013/01/27 (日) [長年日記]

[ruby] ruby-2.0.0 で respond_to? の挙動が変わっていた

まあ、変わりまくっているのはそうなんですが、atig が 2.0.0 で動かないのはなんでだろうと調べていたら protected なメソッドに対する respond_to? の挙動が変わっていた。

class A
  def initialize
    p respond_to?(:foo)
    p respond_to?(:foo, true)
  end

  protected

  def foo
  end
end

A.new

この結果は以下の通り

% ruby -v respond_to.rb
ruby 1.9.3p375 (2013-01-18 revision 38876) [x86_64-darwin12.2.1]
true
true
% ruby -v respond_to.rb
ruby 2.0.0dev (2013-01-27 trunk 38955) [x86_64-darwin12.2.1]
false
true

1.9.3p375 だと両方とも true になるのに対して、2.0.0r38955 だと後者の respond_to? の第二引数を private なメソッドを検出する時と同じように true にした場合のみ true になった。

これ、結構影響範囲が大きそうな気がするけど大丈夫かなあ。後で bugs.ruby-lang.org 送り。

[ruby][atig] atig-0.3.7 をリリースした

Twitter を IRC で良い感じに見る atig の 0.3.7 をリリースしました。今回のリリースでは 2.0.0 で動かない問題を修正しています。

 % gem install atig
 % atig

でサーバーを起動して IRC クライアントから接続すると oauth の認証が要求されるのでよしなに処理すると IRC チャンネルとして timeline や list が表示されます。是非ご利用ください。