[#39606] [Feature:trunk] Dir instance methods for relative path — Nobuyoshi Nakada <nobu@...>

なかだです。

15 messages 2009/11/02
[#39607] Re: [Feature:trunk] Dir instance methods for relative path — Yukihiro Matsumoto <matz@...> 2009/11/02

まつもと ゆきひろです

[#39611] Re: [Feature:trunk] Dir instance methods for relative path — KOSAKI Motohiro <kosaki.motohiro@...> 2009/11/02

kosakiです

[#39660] [Bug:trunk] Enumerator.new {|y| y << 1 << 2 << 3 } — Yusuke ENDOH <mame@...>

遠藤です。

14 messages 2009/11/11
[#39661] Re: [Bug:trunk] Enumerator.new {|y| y << 1 << 2 << 3 } — Tanaka Akira <akr@...> 2009/11/11

In article <e0b1e5700911110537u2aacf835pc0aea13d89a92cef@mail.gmail.com>,

[#39685] [Feature #2366] private constant — Yusuke Endoh <redmine@...>

Feature #2366: private constant

23 messages 2009/11/14
[#39689] [Feature #2366] private constant — Yusuke Endoh <redmine@...> 2009/11/14

チケット #2366 が更新されました。 (by Yusuke Endoh)

[#40207] Re: [Feature #2366] private constant — Yusuke ENDOH <mame@...> 2010/01/28

遠藤です。

[#40239] Re: [Feature #2366] private constant — Masatoshi SEKI <m_seki@...> 2010/01/29

=1B$B31$H$$$$$^$9!#=1B(B

[#40243] Re: [Feature #2366] private constant — Yusuke ENDOH <mame@...> 2010/01/29

遠藤です。

[#40246] Re: [Feature #2366] private constant — Masatoshi SEKI <m_seki@...> 2010/01/29

=1B$B31$H$$$$$^$9!#=1B(B

[#40247] Re: [Feature #2366] private constant — "NARUSE, Yui" <naruse@...> 2010/01/29

成瀬です。

[#39720] hidden objectって? — keiju@... (Keiju ISHITSUKA)

けいじゅ@いしつかです.

15 messages 2009/11/18
[#39721] Re: hidden objectって? — Yukihiro Matsumoto <matz@...> 2009/11/18

まつもと ゆきひろです

[#39726] Re: hidden objectって? — keiju@... (石塚圭樹) 2009/11/19

けいじゅ@いしつかです.

[#39727] Re: hidden objectって? — Yukihiro Matsumoto <matz@...> 2009/11/19

まつもと ゆきひろです

[#39730] Re: hidden objectって? — keiju@... (石塚圭樹) 2009/11/19

けいじゅ@いしつかです.

[#39735] [Bug:trunk] r25230 causes SEGV arround Marshal — "NARUSE, Yui" <naruse@...> 2009/11/19

以下のコミット以降、後述の現象が発生するそうです。

[#39755] RbConfig.rubybin — Tanaka Akira <akr@...>

ruby コマンドのパス名を返す RbConfig.rubybin というメソッド

18 messages 2009/11/23
[#39756] Re: RbConfig.rubybin — Kouhei Sutou <kou@...> 2009/11/23

須藤です。

[#39814] Re: RbConfig.rubybin — Tanaka Akira <akr@...> 2009/11/30

In article <20091123.123808.1122146273169400964.kou@cozmixng.org>,

[#39815] Re: RbConfig.rubybin — KOSAKI Motohiro <kosaki.motohiro@...> 2009/11/30

> In article <20091123.123808.1122146273169400964.kou@cozmixng.org>,

[#39796] バグ? ブロック引数で to_ary が呼ばれる必要のない場面で呼ばれる — keiju@... (Keiju ISHITSUKA)

けいじゅ@いしつかです.

14 messages 2009/11/27
[#39800] Re: バグ? ブロック引数で to_ary が呼ばれる必要のない場面で呼ばれる — Yukihiro Matsumoto <matz@...> 2009/11/27

まつもと ゆきひろです

[#39803] Re: バグ? ブロック引数で to_ary が呼ばれる必要のない場面で呼ばれる — keiju@... (石塚圭樹) 2009/11/27

けいじゅ@いしつかです.

[#39805] Re: バグ? ブロック引数で to_ary が呼ばれる必要のない場面で呼ばれる — Yukihiro Matsumoto <matz@...> 2009/11/28

まつもと ゆきひろです

[#39806] Re: バグ? ブロック引数で to_ary が呼ばれる必要のない場面で呼ばれる — keiju@... (石塚圭樹) 2009/11/28

けいじゅ@いしつかです.

[#39807] Re: バグ? ブロック引数で to_ary が呼ばれる必要のない場面で呼ばれる — Yukihiro Matsumoto <matz@...> 2009/11/28

まつもと ゆきひろです

[ruby-dev:39806] Re: バグ? ブロック引数で to_ary が呼ばれる必要のない場面で呼ばれる

From: keiju@... (石塚圭樹)
Date: 2009-11-28 05:24:29 UTC
List: ruby-dev #39806
けいじゅ@いしつかです.

In [ruby-dev:39805] the message: "[ruby-dev:39805] Re: バグ? ブロック
引数で to_ary が呼ばれる必要のない場面で呼ばれる", on Nov/28
09:09(JST) Yukihiro Matsumoto writes:

>まつもと ゆきひろです

>block.callに単一の引数が渡された時には、これが配列かどうか
>チェックしてます。これは受け側がProcの時のめんどくさいいろい
>ろがあって(後略)。

うーん. 

>わかりました。箇条書きにすると以下のような感じです。
>
>  * 型変換メソッドを呼び出して、NoMethodErrorが起きた時、
>    name属性をチェックして、呼び出したメソッド以外で発生した
>    NoMethodErrorは飲み込まないようにしている。

条件(1)

>  * が、今回のプログラムはmethod_missing内部で直接
>    NoMethodErrorをraiseしているので、このチェックに引っかか
>    らない(name属性が定義されていない)
>
>  * ので、NoMethodErrorがrescueされなかった
>
>ということです。とりあえずの対処法としては、
>
>  * method_missingを再定義してNoMethodErrorをraiseする場合に
>    は、superを呼ぶ
>
>というのをお薦めしておきます。name属性を期待するコードは他に
>もありそうですから。

こうすれば大丈夫でした.

>それはそれとして、NoMethodErrorにname属性がないと言うことは、
>今回のようにユーザが自前でNoMethodErrorをraiseしたということ
>を意味しますから、rescueするかどうかの基準を変更した方がよさ
>そうです。

ただし, ブロック呼び出しの旅にto_aryが呼ばれるとなると, 分散オブジェク
ト的には毎回通信が発生することになりますので, to_aryをリモート側が持っ
ているかどうかのフラグを持たせて持っているときのみリモート側にto_aryを
送る様にしようかと思ったのですが...

前送ったスクリプトで, 

class E
  def to_ary
    raise NoMethodError, "to_ary"
  end
end

としてもだめなんですね... to_aryがdefしてあるんだけど存在しないことに
したいときはどうすればよいでしょう? なんとなく, 条件(1)にマッチしてい
るように見えるので, 大丈夫そうだったんですが??

あと, delegetor.rb も対処が必要そうな気がすると思って, 調べてみたらちゃ
んとできていますね...

で, delegator.rb のなかを見ると:

      target = self.__getobj__
      unless target.respond_to?(m)
        super(m, *args, &block)
      else
        target.__send__(m, *args, &block)
      end

となっていて, respond_to? がありますが, なぜこんなことやっているのでしょ
う? これがらみ?

__
---------------------------------------------------->> 石塚 圭樹 <<---
---------------------------------->> e-mail: keiju@ishitsuka.com <<---

In This Thread