[#26266] pragma on ripper — nobuyoshi nakada <nobuyoshi.nakada@...>

なかだです。

15 messages 2005/06/02

[#26312] rb_gc_mark_threads spin — Tanaka Akira <akr@...17n.org>

最近、とあるプログラム(五月雨)が、無限ループに陥ることが何回かありました。

32 messages 2005/06/09
[#26323] Re: rb_gc_mark_threads spin — Tanaka Akira <akr@...17n.org> 2005/06/10

In article <TYOMLEM04Rqf69aZbLA0000002d@tyomlvem02.e2k.ad.ge.com>,

[#26329] Re: rb_gc_mark_threads spin — nobu@... 2005/06/10

なかだです。

[#26331] Re: rb_gc_mark_threads spin — Tanaka Akira <akr@...17n.org> 2005/06/11

In article <200506101543.j5AFhToG009328@sharui.nakada.niregi.kanuma.tochigi.jp>,

[#26333] Re: rb_gc_mark_threads spin — Tanaka Akira <akr@...17n.org> 2005/06/11

In article <8764wlil9l.fsf@m17n.org>,

[#26334] Re: rb_gc_mark_threads spin — nobu@... 2005/06/11

なかだです。

[#26337] Re: rb_gc_mark_threads spin — Tanaka Akira <akr@...17n.org> 2005/06/11

In article <200506111335.j5BDZkoG019423@sharui.nakada.niregi.kanuma.tochigi.jp>,

[#26405] WEBrick DoS vulnerability — Tanaka Akira <akr@...17n.org>

NetBSD 2.0 で WEBrick を使って HTTP サーバを動かした場合、クライアント

24 messages 2005/06/29
[#26477] Re: WEBrick DoS vulnerability — GOTOU Yuuzou <gotoyuzo@...> 2005/07/08

ごとうゆうぞうです。

[#26480] Re: WEBrick DoS vulnerability — Tanaka Akira <akr@...17n.org> 2005/07/08

In article <20050708.175802.957830318.gotoyuzo@sawara.does.notwork.org>,

[#26481] Re: WEBrick DoS vulnerability — GOTOU Yuuzou <gotoyuzo@...> 2005/07/08

In message <87fyupzgcq.fsf@m17n.org>,

[#26421] Subversion — Shugo Maeda <shugo@...>

前田です。

24 messages 2005/06/30
[#26422] Re: Subversion — Yukihiro Matsumoto <matz@...> 2005/06/30

まつもと ゆきひろです

[#26423] Re: Subversion — "U.Nakamura" <usa@...> 2005/06/30

こんにちは、なかむら(う)です。

[ruby-dev:26390] arity of methods created by define_method

From: Nobuhiro IMAI <nov@...>
Date: 2005-06-27 12:14:23 UTC
List: ruby-dev #26390
いまいです。

$ ruby -ve'
module M
  def self.append_features(klass)
    self.public_instance_methods(false).each do |name|
      method = self.instance_method(name)
      klass.__send__(:define_method, name, method)
    end
    super
  end

  def m1(a, b, c)
    [a, b, c]
  end

  def m2(*a)
    a
  end
end

p M.instance_method(:m1).arity
p M.instance_method(:m2).arity

class C
  include M
end

p C.public_instance_methods(false)
p C.instance_method(:m1).arity
p C.instance_method(:m2).arity

c = C.new
p c.m1(:a, :b, :c)
p c.m2(:a, :b, :c)
p c.m1(:a, :b)
'
ruby 1.8.3 (2005-06-23) [i386-linux]
3
-1
["m2", "m1"]
1 #<= ???
1 #<= ???
[:a, :b, :c]
[:a, :b, :c]
-e:34:in `m1': wrong number of arguments (2 for 3) (ArgumentError)
        from -e:34

のように、arity が必ず(?) 1 を返してしまうようです。呼び出しはふつうに
できますし、引数の数を間違えると、ちゃんと怒られます。何がしたいかとい
うと、XMLRPC::iPIMethods がクラスで定義されたメソッドしか公開してくれ
なくなった(<= 本来の動作です)ので、モジュールを include するタイミング
で強引に「クラスで定義されてること」にしてしまおう、というわけです。最
初に arity をチェックしてるみたいで、現状だと m2 にように * で受けて、
引数が一つの場合しかうまくいきません :-(。
--
Nobuhiro IMAI <nov@yo.rim.or.jp>
Key fingerprint = F39E D552 545D 7C64 D690  F644 5A15 746C BD8E 7106

In This Thread

Prev Next