Ruby Forum Ruby-dev > 1.9$B$H(B1.8$B$G!"(Bdelegate$B$N%$%s%9%?%s%9$N%/%i%9L>$N0c$&(B

Posted by Fujioka (Guest)
on 26.08.2008 16:31
(Received via mailing list)
xibbar$B$3$HF#2,$G$9!#(B

ruby -rdelegate -e 'class MyClass<DelegateClass(Array);
end;p MyClass.new([]).class'
$B$r<B9T$9$k$H!"(B
1.8$B$G$O(BMyClass$B$,JV$k$N$G$9$,!"(B
1.9$B$G$O(BArray$B$,JV$C$F$-$^$9!#(B

$B$3$l$O;EMM$G$7$g$&$+!)(B
Posted by Yukihiro Matsumoto (Guest)
on 26.08.2008 16:37
(Received via mailing list)
$B$^$D$b$H(B $B$f$-$R$m$G$9(B

In message "Re: [ruby-dev:35986] 
1.9$B$H(B1.8$B$G!"(Bdelegate$B$N%$%s%9%?%s%9$N%/%i%9L>$N0c$&(B"
    on Tue, 26 Aug 2008 23:26:43 +0900, Fujioka <fuj@rabbix.jp> writes:

|ruby -rdelegate -e 'class MyClass<DelegateClass(Array);
|end;p MyClass.new([]).class'
|$B$r<B9T$9$k$H!"(B
|1.8$B$G$O(BMyClass$B$,JV$k$N$G$9$,!"(B
|1.9$B$G$O(BArray$B$,JV$C$F$-$^$9!#(B
|
|$B$3$l$O;EMM$G$7$g$&$+!)(B

1.8$B$H(B1.9$B$N5sF0$,0c$&$N$O3N$+$G!"$3$l$r;EMM$H$9$k$N$+!"(B1.8$B$N(B
$B5sF0$KLa$9$N$+LB$C$F$$$kCJ3,$G$9!#$J$+$J$+??7u$K9M$($k;~4V$,(B
$B<h$l$J$/$F!#(B
Posted by take_tk (Guest)
on 26.08.2008 17:49
(Received via mailing list)
$B$?$1(B(tk)$B$G$9!#(B

[ruby-dev:35987] Re: 
1.9$B$H(B1.8$B$G!"(Bdelegate$B$N%$%s%9%?%s%9$N%/%i%9L>$N0c$&(B
$B$K$F(B
Yukihiro Matsumoto <matz@ruby-lang.org> $B$5$s(B $B[)$/(B:

> $B<h$l$J$/$F!#(B
goo$B#g(Ble $B$N%-%c%C%7%e$K$3$s$J$N$r8+$D$1$^$7$?!#(B

$B4pK\E*$K!"!V(BRuby 
$B$K$b$C$H8eJ}8_49@-$r!*!W$H$$$&0U8+$K;?@.$G$9!#(B

$B!J==J,$K@bF@E*$JM}M3$,$"$l$P(BOK$B!K(B

$B!]!]!]!](B

 http://wannabe.fam.cx/service/2ch_663/read.cgi?tech/1190559748

129 $B!'%G%U%)%k%H$NL>L5$7$5$s!'(B2007/09/25($B2P(B) 01:49:48
$B%P%l$?$+!#@5D>(B >>105 $B$O<:GT$@$C$?!D!#(B
$B$=$&$h!"26$O<B$O(B Ruby 
$B%"%s%A$G$O$J$/8eJ}8_49@-<g5A<T$N9):n0w$@$C$?$N$@!#(B
$BBgJ*$rD`$j$"$2$k$H$$$&G$L3$K<:GT$7$?0J>e!"26$O$b$&>C$($k$7$+$J$$!#(B
$B$@$,K:$l$k$J!*?M$,8eJ}8_49@-$rK>$`?4$O>C$($k;v$O$J$$!*(B
Ruby $B$K$b$C$H8eJ}8_49@-$r!*;W$$IU$-$N(B API $BJQ99H?BP!*(B

----

take_tk = kumagai hidetake
Posted by 石塚圭樹 (Guest)
on 26.08.2008 17:51
(Received via mailing list)
$B$1$$$8$e!w$$$7$D$+$G$9(B.

In [ruby-dev :35987 ] the message: "[ruby-dev:35987] Re: 
1.9$B$H(B1.8$B$G!"(B
delegate$B$N%$%s%9%?%s%9$N%/%i%9L>$N0c$&(B ", on Aug/26 23:32(JST)
Yukihiro Matsumoto writes:

>$B$^$D$b$H(B $B$f$-$R$m$G$9(B

>|ruby -rdelegate -e 'class MyClass<DelegateClass(Array);
>|end;p MyClass.new([]).class'
>|$B$r<B9T$9$k$H!"(B
>|1.8$B$G$O(BMyClass$B$,JV$k$N$G$9$,!"(B
>|1.9$B$G$O(BArray$B$,JV$C$F$-$^$9!#(B
>|
>|$B$3$l$O;EMM$G$7$g$&$+!)(B

>1.8$B$H(B1.9$B$N5sF0$,0c$&$N$O3N$+$G!"$3$l$r;EMM$H$9$k$N$+!"(B1.8$B$N(B
>$B5sF0$KLa$9$N$+LB$C$F$$$kCJ3,$G$9!#$J$+$J$+??7u$K9M$($k;~4V$,(B
>$B<h$l$J$/$F!#(B

$B;d$O:#$N$^$^(B(Ruby1.9$B$N?6$kIq$$(B)$B$GNI$$$H;W$$$^$9(B.

$B$b$7$/$O(B, MyClass$B$rJV$7$?$$$J$i(B,

  * ancestors$B$,(B MyClass<Array<...
  * kind_of?(MyClass), kind_of?(Array) => true

$B$H$J$k$h$&$K$J$C$F$bNI$$$+$b(B. $B$3$l$@$H(B, 
$B8B$j$J$/(BArray$B$G$"$C$FM_$7$$$H(B
$B8@$&$3$H$H(B, 
MyClass$B$N%$%s%9%?%s%9$G$"$k$3$H$NN><T$,@.$jN)$A$^$9(B.

$B$?$@(B, SimpleDelegator$B$O0Q>y@h$,8GDj$G$J$$$N$G(B, 
$B>e5-$N$h$&$J(Bancestors$B$N(B
$B?6$kIq$$$G$-$J$$$N$G(B, obj.class 
$B$O$d$O$j0Q>y@h$N%/%i%9$rJV$9$7$+$J$$$G(B
$B$7$g$&$1$I(B.

$B$b$I$C$F(B, $B:#$N$^$^$N>l9g(B, 
$B85$N%/%i%9$rD4$Y$k(B($BK\Ev$N<+J,$rD4$Y$k(B)$BJ}K!$,(B
$B$J$$$N$G(B, $B85$N%/%i%9$rCN$kJ}K!$,$"$C$F$bNI$$$H;W$$$^$9(B.

delegetee_class $B$H$+(B?

$B$5$i$K(B, $B$D$$$G$K%j%/%(%9%H$7$^$9$,(B,

  Module#===

$B$N?6$kIq$$$r(B.

class Module
  def ===(other)
    other.kind_of?(self)
  end
end

$B$K$7$^$;$s(B? $B:#$N$^$^$@$H(B, case/when$B$G(B 
$B%G%l%2!<%H@h$N%/%i%9$r;XDj$G$-$J(B
$B$/$FITJX$G$9(B. $B$^$?(B, 
case/when$B$r;H$C$F$$$F$b%G%l!<%2!<%H@h$N%*%V%8%'%/(B
$B%H$H8B$j$J$/F1$8?6$kIq$$$K$G$-$^$9(B.

PS.
delegator$B$,$i$_$H$$$&$3$H$G(B, [ruby-dev:35977] $B$b$h$m$7$/(B. 
$BJ,$+$j$E$i$$(B
$BI=8=$+$bCN$l$^$;$s$,(B, 
Ruby1.9$B$N?6$kIq$$$rJQ$($?$i$I$&$G$7$g$&(B? $B$H8@$C(B
$B$F$$$^$9(B.


__
---------------------------------------------------->> $B@PDM(B 
$B7=<y(B <<---
---------------------------------->> e-mail: keiju@ishitsuka.com <<---
Posted by Fujioka (Guest)
on 27.08.2008 02:29
(Received via mailing list)
$BF#2,$G$9!#(B

>> $B<h$l$J$/$F!#(B
> 
% ruby -rdelegate -e 'class MyClass<DelegateClass(Array);end;
p MyClass.ancestors'
$B$N<B9T7k2L$,!"(B
1.8$B$O(B
[MyClass, #<Class:0x24090>, Object, Kernel]
1.9$B$O(B
[MyClass, #<Class:0x1dd698>, Delegator::MethodDelegation,
 Object, Kernel, BasicObject]
$B$G$9!#(B
$B:G=i!"$J$s$@$3$j$c!)$C$F;W$$$^$7$?!#(B
$B7Q>5$H6hJL$9$k$?$a$J$N$G$7$g$&$+!)(B
ancestors$B$r8+$F$b2?$r(Bdelegate$B$7$F$$$k$+$O(B
$BH=JL$G$-$J$$$H$$$&$3$H$G$7$g$&$+!)(B
Posted by 石塚圭樹 (Guest)
on 27.08.2008 05:30
(Received via mailing list)
$B$1$$$8$e!w$$$7$D$+$G$9(B.

In [ruby-dev :35994 ] the message: "[ruby-dev:35994] Re: 
1.9$B$H(B1.8$B$G!"(B
delegate$B$N%$%s%9%?%s%9$N%/%i%9L>$N0c$&(B ", on Aug/27 09:24(JST) 
Fujioka
writes:

>$BF#2,$G$9!#(B

>> $B$H$J$k$h$&$K$J$C$F$bNI$$$+$b(B. $B$3$l$@$H(B, $B8B$j$J$/(BArray$B$G$"$C$FM_$7$$$H(B
>> $B8@$&$3$H$H(B, MyClass$B$N%$%s%9%?%s%9$G$"$k$3$H$NN><T$,@.$jN)$A$^$9(B.

>$B$N<B9T7k2L$,!"(B
>1.8$B$O(B
>[MyClass, #<Class:0x24090>, Object, Kernel]
>1.9$B$O(B
>[MyClass, #<Class:0x1dd698>, Delegator::MethodDelegation,
> Object, Kernel, BasicObject]
>$B$G$9!#(B

>$B:G=i!"$J$s$@$3$j$c!)$C$F;W$$$^$7$?!#(B
>$B7Q>5$H6hJL$9$k$?$a$J$N$G$7$g$&$+!)(B
>ancestors$B$r8+$F$b2?$r(Bdelegate$B$7$F$$$k$+$O(B
>$BH=JL$G$-$J$$$H$$$&$3$H$G$7$g$&$+!)(B

$B$"$/$^$G$b0Q>y$G$9$N$G(B, $B7Q>5Ns$K$O$$$kI,MW$O$J$$$H;W$$$^$9(B. 
$B$H$$$&$+(B,
$BF~$C$F$$$k$N$OO@M}E*$K$O$*$+$7$$$+$b(B...

$B$?$@(B, self.class$B$G85%/%i%9$rJV$9$h$&$K$7$?$$$J$i(B, 
kind_of$B$H(Bancestors$BEy(B
$B$rJQ99$7$F$*$1$P(B, 
$B$+$J$j$J$j$9$^$7$,$G$-$k$H8@$$$?$+$C$?$N$G$9(B.

Delegator$B$H$7$F$O(B,

* $B0Q>y@h$H=PMh$k$@$1F1$8?6$kIq$$$r$7$FM_$7$$(B
* $B85$N%/%i%9$rCN$j$?$$$H$-$b$"$k$N$G(B, $BCN$kJ}K!$,M_$7$$(B

Ruby1.9$B$N(BDelagator$B$O$+$J$j(B, 
$B:G=i$N>r7o$rK~$?$7$F$$$^$9(B(Module#===$B$d(B
[ruby-dev:35977]$B$r>J$$$F(B).  $B$"$H$O(B, 
$B8e<T$rK~$?$;$P$h$$$N$G$O(B? $B$H;W$C$F(B
$B$$$^$9(B.

$B8e<T$O(B, self.class $B$G85%/%i%9$rJV$9J}K!$b$"$j$^$9$,(B, 
$BJL$N%a%=%C%I$rMQ(B
$B0U$9$k$G$bNI$$$H;W$$$^$9(B. $B$3$N>l9g$O(B, $BEvA3(B, 
kind_of$B$d(Bancestors$BEy$N?6$k(B
$BIq$$$rJQ$($kI,MW$O$J$$$G$9(B.

__
---------------------------------------------------->> $B@PDM(B 
$B7=<y(B <<---
---------------------------------->> e-mail: keiju@ishitsuka.com <<---
Posted by Yukihiro Matsumoto (Guest)
on 27.08.2008 07:20
(Received via mailing list)
$B$^$D$b$H(B $B$f$-$R$m$G$9(B

In message "Re: [ruby-dev:35994] Re: 
1.9$B$H(B1.8$B$G!"(Bdelegate$B$N%$%s%9%?%s%9$N%/%i%9L>$N0c$&(B"
    on Wed, 27 Aug 2008 09:24:25 +0900, Fujioka <fuj@rabbix.jp> writes:

|% ruby -rdelegate -e 'class MyClass<DelegateClass(Array);end;
|p MyClass.ancestors'
|$B$N<B9T7k2L$,!"(B
|1.8$B$O(B
|[MyClass, #<Class:0x24090>, Object, Kernel]
|1.9$B$O(B
|[MyClass, #<Class:0x1dd698>, Delegator::MethodDelegation,
| Object, Kernel, BasicObject]
|$B$G$9!#(B
|$B:G=i!"$J$s$@$3$j$c!)$C$F;W$$$^$7$?!#(B

$B$D$^$j!"(BDelegateClass$B$,$I$N$/$i$$85$N%/%i%9$K;w$?$b$N$G$"$k(B
$B$Y$-$+!"$H$$$&$b$N$J$N$G$7$g$&!#6hJL$9$kI,MW$,$"$k;~$b$"$k$G(B
$B$7$g$&$7!"$G$-$k$+$.$j6hJL$G$-$J$$J}$,$&$l$7$$$3$H$b$"$k$G$7$g(B
$B$&!#$G!"%G%U%)%k%H$G$O$=$l$J$j$N@~$r$R$+$J$$$H$$$1$J$$$,!"$=(B
$B$l$O4JC1$KH=CG$G$-$k$b$N$G$O$J$$$h$&$J5$$,$7$^$9!#(B

|$B7Q>5$H6hJL$9$k$?$a$J$N$G$7$g$&$+!)(B

$B<j$rH4$$$F$k$@$1$@$H;W$$$^$9!#(B

|ancestors$B$r8+$F$b2?$r(Bdelegate$B$7$F$$$k$+$O(B
|$BH=JL$G$-$J$$$H$$$&$3$H$G$7$g$&$+!)(B

$B$=$&$$$&$3$H$K$J$j$^$9$M!#H=JL$7$?$$$G$9$+$M!#(B
Posted by Fujioka (Guest)
on 27.08.2008 07:33
(Received via mailing list)
$BF#2,$G$9!#(B

> $B$D$^$j!"(BDelegateClass$B$,$I$N$/$i$$85$N%/%i%9$K;w$?$b$N$G$"$k(B
> $B$Y$-$+!"$H$$$&$b$N$J$N$G$7$g$&!#6hJL$9$kI,MW$,$"$k;~$b$"$k$G(B
> $B$7$g$&$7!"$G$-$k$+$.$j6hJL$G$-$J$$J}$,$&$l$7$$$3$H$b$"$k$G$7$g(B
> $B$&!#$G!"%G%U%)%k%H$G$O$=$l$J$j$N@~$r$R$+$J$$$H$$$1$J$$$,!"$=(B
> $B$l$O4JC1$KH=CG$G$-$k$b$N$G$O$J$$$h$&$J5$$,$7$^$9!#(B
> 
$B$J$k$[$I!#(B

> |$B7Q>5$H6hJL$9$k$?$a$J$N$G$7$g$&$+!)(B
> 
> $B<j$rH4$$$F$k$@$1$@$H;W$$$^$9!#(B
> 
$B$J$k$[$I!#(B

> |ancestors$B$r8+$F$b2?$r(Bdelegate$B$7$F$$$k$+$O(B
> |$BH=JL$G$-$J$$$H$$$&$3$H$G$7$g$&$+!)(B
> 
> $B$=$&$$$&$3$H$K$J$j$^$9$M!#H=JL$7$?$$$G$9$+$M!#(B
> 
$B:rF|$O$=$&$G$7$?$,!"<j$r$D$1$F$$$k$b$N$O(B
delegate$B$r$d$a$F7Q>5$K$7$F$7$^$C$F(Bnaruse$B$5$s$K<h$j9~$s$G$b$i$C$?$N$G(B
$B;d$H$7$F$OLdBj$"$j$^$;$s!#(B

# $BL@$i$+$K?F%/%i%9$N%a%=%C%I$r4|BT$7$F$$$k$N$O(B
# delegate$B$8$c$J$/$F7Q>5$r;H$&$Y$-$H$$$&$3$H$+$J!#!#(B
Posted by U.Nakamura (Guest)
on 27.08.2008 07:50
(Received via mailing list)
$B$3$s$K$A$O!"$J$+$`$i(B($B$&(B)$B$G$9!#(B

$B$?$V$s@PDM$5$s$H$[$\F1$80U8+$J$s$@$H;W$$$^$9$,(B...

In message "[ruby-dev:35998] Re: 
1.9$B$H(B1.8$B$G!"(Bdelegate$B$N%$%s%9%?%s%9$N%/%i%9L>$N0c$&(B"
    on Aug.27,2008 12:24:22, <keiju@ishitsuka.com> wrote:
> $B8e<T$O(B, self.class $B$G85%/%i%9$rJV$9J}K!$b$"$j$^$9$,(B, $BJL$N%a%=%C%I$rMQ(B
> $B0U$9$k$G$bNI$$$H;W$$$^$9(B. $B$3$N>l9g$O(B, $BEvA3(B, kind_of$B$d(Bancestors$BEy$N?6$k(B
> $BIq$$$rJQ$($kI,MW$O$J$$$G$9(B.

$B$A$g$C$H$3$3$,$h$/$o$+$j$^$;$s$G$7$?!#(B

  * self.class$B$G85%/%i%9$rJV$9>l9g(B
    $B"*(B 
kind_of$B$d(Bancestors$B$r$$$8$i$J$/$F$b!"07$&B&$O$^$k$G85%/(B
       $B%i%9$=$N$b$N$G$"$k$+$N$h$&$K07$($k!#(B

  * self.class$B$G<+%/%i%9$rJV$9>l9g(B
    $B"*(B 
$B$b$77Q>5$5$l$F$$$k$+$N$h$&$K07$$$?$$$J$i$P!"(Bkind_of$B$d(B
       ancestors$B$r$$$8$kI,MW$,$"$k!#(B
       $B$^$?!"JLES!"85%/%i%9$r<hF@$9$k%a%=%C%I$rMQ0U$9$kI,MW$b(B
       $B$"$k$@$m$&!#(B

$B$H!"$$$&0UL#$G$$$$$G$7$g$&$+(B?


$B$G!"(BRuby$B$N(BDelegator$B$O$I$&$"$k$Y$-$+!"$G$9$,!";d$O8e<T$G$"$kJ}(B
$B$,$$$$$N$G$O$J$$$+$H;W$$$^$9!#(B
$B7Q>5$N$h$&$K07$$$?$$$J$i7Q>5$r;H$($P$$$$$s$@$7!#(B

Ruby$B$N>l9g$O%@%C%/%?%$%T%s%0$,;H$($^$9$+$i!"7Q>54X78$K$J$/$F(B
$B$bF1L>%a%=%C%I$O8F$S=P$;$k$o$1$G!"85%/%i%9$H%/%i%9L>$,0c$C$?(B
$B$j5<;wE*?F;R4X78$K$J$/$F$bMQ$,B-$j$k>lLL$OB?$$$O$:$G$9$7!"$`(B
$B$7$m$=$&$$$&>lLL$N$?$a$K0Q>y$,;HMQ$5$l$k$Y$-$G$7$g$&!#(B
$B$^$?!"$I$&$7$F$b?F;R4X78$r56Au$7$?$1$l$P!"<+A0$G(Bkind_of$B$d(Bancestors
$B$r$$$8$l$P$=$l$b<B8=2DG=$J$o$1$G!"8e<T$H$7$F$bF($2F;$O;D$5$l(B
$B$k$3$H$K$J$j$^$9!#(B

$B$H$$$&$o$1$G!"(Bclass$B$K4X$7$F$O!"4:$($F(B1.8$B$N5sF0$rJQ99$9$kI,MW(B
$B$O$J$$$H;W$$$^$9!#(B


$B$=$l$G$O!#(B
Posted by 石塚圭樹 (Guest)
on 27.08.2008 18:08
(Received via mailing list)
$B$1$$$8$e!w$$$7$D$+$G$9(B.

In [ruby-dev :36004 ] the message: "[ruby-dev:36004] Re: 
1.9$B$H(B1.8$B$G!"(B
delegate$B$N%$%s%9%?%s%9$N%/%i%9L>$N0c$&(B ", on Aug/27 14:45(JST)
"U.Nakamura" writes:

>$B$3$s$K$A$O!"$J$+$`$i(B($B$&(B)$B$G$9!#(B

$B$I$b$G$9(B.

>$B$?$V$s@PDM$5$s$H$[$\F1$80U8+$J$s$@$H;W$$$^$9$,(B...

$B$I$&$J$s$G$7$g$&(B?
$B$J$s$+$A$,$&$h$&$J(B?

>In message "[ruby-dev:35998] Re: 1.9$B$H(B1.8$B$G!"(Bdelegate$B$N%$%s%9%?%s%9$N(B
>$B%/%i%9L>$N0c$&(B" on Aug.27,2008 12:24:22, <keiju@ishitsuka.com> wrote:

>> $B8e<T$O(B, self.class $B$G85%/%i%9$rJV$9J}K!$b$"$j$^$9$,(B, $BJL$N%a%=%C%I$r(B
>> $BMQ0U$9$k$G$bNI$$$H;W$$$^$9(B. $B$3$N>l9g$O(B, $BEvA3(B, kind_of$B$d(Bancestors$BEy(B
>> $B$N?6$kIq$$$rJQ$($kI,MW$O$J$$$G$9(B.

>$B$A$g$C$H$3$3$,$h$/$o$+$j$^$;$s$G$7$?!#(B

$BJ,$+$j$E$i$/$F?=$7Lu$J$$(B.

>  * self.class$B$G85%/%i%9$rJV$9>l9g(B
>    $B"*(B kind_of$B$d(Bancestors$B$r$$$8$i$J$/$F$b!"07$&B&$O$^$k$G85%/(B
>       $B%i%9$=$N$b$N$G$"$k$+$N$h$&$K07$($k!#(B

$B$G$9(B. $B$?$@(B, 
$BJL%a%=%C%IEy$G(B($B30B&$+$i(B)$B6hJL$G$-$k%a%=%C%I$,I,MW$G$7$g$&(B.

>  * self.class$B$G<+%/%i%9$rJV$9>l9g(B
>    $B"*(B $B$b$77Q>5$5$l$F$$$k$+$N$h$&$K07$$$?$$$J$i$P!"(Bkind_of$B$d(B
>       ancestors$B$r$$$8$kI,MW$,$"$k!#(B
>       $B$^$?!"JLES!"85%/%i%9$r<hF@$9$k%a%=%C%I$rMQ0U$9$kI,MW$b(B
>       $B$"$k$@$m$&!#(B
>
>$B$H!"$$$&0UL#$G$$$$$G$7$g$&$+(B?

$B>e5-DI2C$r$7$F$$$?$@$1$l$P(B.

>$B$G!"(BRuby$B$N(BDelegator$B$O$I$&$"$k$Y$-$+!"$G$9$,!";d$O8e<T$G$"$kJ}(B
>$B$,$$$$$N$G$O$J$$$+$H;W$$$^$9!#(B

$B;d$OA0<T$G$b8e<T$G$bNI$$$s$G$9$,(B, 
``$B"*(B''$B0J9_$r%5%]!<%H$7$F$M(B. $B$C$F$3$H(B
$B$G$9(B.

>$B7Q>5$N$h$&$K07$$$?$$$J$i7Q>5$r;H$($P$$$$$s$@$7!#(B

$B$"!<(B. $B$J$s$+(B. $B$3$N8@MU$rJ9$/$H(B, 
$B$b$7$+$7$F0c$&$3$H$r<gD%$7$F$$$k(B? $B$C$F(B
$B5$$b$7$F$-$^$9(B.  $B0Q>y$O(B, 
$B4V0c$C$?7Q>5$r;H$o$J$$$?$a$K$"$k$N$G(B. ex) $B%o(B
$B%1$o$+$i$J$$%/%i%9$r(BArray$B$H$+(BString$B$N%5%V%/%i%9$K$9$kEy(B.

>Ruby$B$N>l9g$O%@%C%/%?%$%T%s%0$,;H$($^$9$+$i!"7Q>54X78$K$J$/$F(B
>$B$bF1L>%a%=%C%I$O8F$S=P$;$k$o$1$G!"85%/%i%9$H%/%i%9L>$,0c$C$?(B
>$B$j5<;wE*?F;R4X78$K$J$/$F$bMQ$,B-$j$k>lLL$OB?$$$O$:$G$9$7!"$`(B
>$B$7$m$=$&$$$&>lLL$N$?$a$K0Q>y$,;HMQ$5$l$k$Y$-$G$7$g$&!#(B

$B$&!<$s(B. $B$G$b(B, $B$d$C$Q(B, $BF1$8<gD%(B? 
$BI=8=$+$A$g$C$HHyL/$J$s$G$9$,(B... $B5<;wE*(B
$B?F;R4X78$H$OK\Mh$N7Q>5(B(is-a)$B4X78$K$J$$$N$K%5%V%/%i%9$K$7$F$$$k>uBV$r;X(B
$B$7$F$$$k$s$G$7$g$&$+$M(B? $B$=$s$J$3$H$7$J$$$?$a$K0Q>y$r;H$($H(B?

>$B$^$?!"$I$&$7$F$b?F;R4X78$r56Au$7$?$1$l$P!"<+A0$G(Bkind_of$B$d(Bancestors
>$B$r$$$8$l$P$=$l$b<B8=2DG=$J$o$1$G!"8e<T$H$7$F$bF($2F;$O;D$5$l(B
>$B$k$3$H$K$J$j$^$9!#(B

$B$O$$(B. $B$?$@(B, 
$BI8=`E:IU%i%$%V%i%j$H$+$r8+$F$bJ,$+$j$^$9$,(B, $B<B:]$K%?%$%W%9(B
$B%$%C%A$O;H$o$l$F$$$^$9$N$G(B, 
Ruby1.8$B?6$kIq$$$K$9$k$J$i:GDc8B$G$b(B
kind_of?$B$N=$@5$OM_$7$$$G$9$M(B.

>$B$H$$$&$o$1$G!"(Bclass$B$K4X$7$F$O!"4:$($F(B1.8$B$N5sF0$rJQ99$9$kI,MW(B
>$B$O$J$$$H;W$$$^$9!#(B

$B$?$@(B, $B5U$K$*J9$-$7$?$$$G$9$,(B, 
Ruby1.9$B$N?6$kIq$$$G:$$k$3$H$"$j$^$9(B?

Ruby1.9$B$NJ}$,(B, $B$h$j40`z$K?6$kIq$$$,F1$8$K$J$k$N$G(B

  ''(Ruby1.8$B$N(B)$B0Q>y$@$HF0:n$7$J$$$N$G7Q>5$r;H$*$&(B''

$B$J$I$H(B, 
$BK\Mh$"$k$Y$-$G$J$$7Q>5$r;H$&M}M3$K$5$l$?$j$9$k2DG=@-$O>/$J$/$J(B
$B$j$^$9(B.

$B$G$9$N$G(B, Ruby1.9$B$N?6$kIq$$$K$7$F(B, 
$B85$N?6$kIq$$$K$7$?$$$J$i:FDj5A$9$k(B
$B$H$$$&$[$&$,$U$5$o$7$$5$$,$7$F$-$F$$$^$9(B.


PS.
$B$"$H(B, $B?6$kIq$$$OJL$K$7$F(B, 
$B<BAu$O(BRuby1.9$B$NJ}$,C1=c$GNI$$$H;W$$$^$9(B.

__
---------------------------------------------------->> $B@PDM(B 
$B7=<y(B <<---
---------------------------------->> e-mail: keiju@ishitsuka.com <<---
Posted by U.Nakamura (Guest)
on 27.08.2008 18:49
(Received via mailing list)
$B$3$s$K$A$O!"$J$+$`$i(B($B$&(B)$B$G$9!#(B

In message "[ruby-dev:36021] Re: 
1.9$B$H(B1.8$B$G!"(Bdelegate$B$N%$%s%9%?%s%9$N%/%i%9L>$N0c$&(B"
    on Aug.28,2008 01:02:58, <keiju@ishitsuka.com> wrote:
> >  * self.class$B$G85%/%i%9$rJV$9>l9g(B
> >    $B"*(B kind_of$B$d(Bancestors$B$r$$$8$i$J$/$F$b!"07$&B&$O$^$k$G85%/(B
> >       $B%i%9$=$N$b$N$G$"$k$+$N$h$&$K07$($k!#(B
> 
> $B$G$9(B. $B$?$@(B, $BJL%a%=%C%IEy$G(B($B30B&$+$i(B)$B6hJL$G$-$k%a%=%C%I$,I,MW$G$7$g$&(B.

$BEvA3I,MW$@$m$&$J$"$H;W$C$?$N$G$9$,!"85$N@PDM$5$s$N<gD%$K$OL@(B
$B5-$5$l$F$$$J$$$h$&$KFI$a$?$N$G>JN,$7$?$N$G$7$?!#(B

> >  * self.class$B$G<+%/%i%9$rJV$9>l9g(B
> >    $B"*(B $B$b$77Q>5$5$l$F$$$k$+$N$h$&$K07$$$?$$$J$i$P!"(Bkind_of$B$d(B
> >       ancestors$B$r$$$8$kI,MW$,$"$k!#(B
> >       $B$^$?!"JLES!"85%/%i%9$r<hF@$9$k%a%=%C%I$rMQ0U$9$kI,MW$b(B
> >       $B$"$k$@$m$&!#(B
> >
> >$B$H!"$$$&0UL#$G$$$$$G$7$g$&$+(B?
> 
> $B>e5-DI2C$r$7$F$$$?$@$1$l$P(B.

$B$H$$$&$o$1$G!"$3$3$^$GM}2r$O(BOK$B$@$H;W$$$^$9!#(B


> >$B$G!"(BRuby$B$N(BDelegator$B$O$I$&$"$k$Y$-$+!"$G$9$,!";d$O8e<T$G$"$kJ}(B
> >$B$,$$$$$N$G$O$J$$$+$H;W$$$^$9!#(B
> 
> $B;d$OA0<T$G$b8e<T$G$bNI$$$s$G$9$,(B, ``$B"*(B''$B0J9_$r%5%]!<%H$7$F$M(B. $B$C$F$3$H(B
> $B$G$9(B. 

$BA0<T$b8e<T$b$I$A$i$b;EMM$H$7$F$"$j$($k!"$H$O;W$$$^$9!#(B


> 
> $B$&!<$s(B. $B$G$b(B, $B$d$C$Q(B, $BF1$8<gD%(B? $BI=8=$+$A$g$C$HHyL/$J$s$G$9$,(B... $B5<;wE*(B
> $B?F;R4X78$H$OK\Mh$N7Q>5(B(is-a)$B4X78$K$J$$$N$K%5%V%/%i%9$K$7$F$$$k>uBV$r;X(B
> $B$7$F$$$k$s$G$7$g$&$+$M(B? $B$=$s$J$3$H$7$J$$$?$a$K0Q>y$r;H$($H(B?

$BF1$8<gD%$J$N$+$J$s$+IT0B$K$J$C$F$-$^$7$?$,!"8@$$$?$$$3$H$O$=(B
$B$&$$$&$3$H$G$9!#(B

$B@5$7$$7Q>5$H$O$J$s$>$d!"$H$$$&OC$O@PDM$5$s$K$7$F$$$?$@$$$?J}(B
$B$,$$$$$H;W$&$N$G;d$,=q$$$A$c$&$H<a2`$K@bK!$J$o$1$G$9$,(B ^^;$B!"(B
$BHF2=(B<->$BFC2=$N4X78$K$"$k%/%i%9F1;N$r7k$S$D$1$k$N$,@5$7$$7Q>5$J(B
$B$N$@$m$&$H;d$OM}2r$7$F$$$^$9!#(B

$B$G!"7Q>5$r;H$o$:$K0Q>y$r;H$&$H$$$&$N$O!"K\Mh$O0Q>y85$H0Q>y@h(B
$B$O7Q>54X78$K$J$$$+$i0Q>y$r;H$C$F$$$k$O$:$J$o$1$G$9!#(B
$B$K$b$+$+$o$i$:!"(BRuby$B$G0Q>y$r;H$&$HI=LLE*$K$O7Q>54X78$K$"$k$+(B
$B$N$h$&$K8+$($F$7$^$&$N$O$h$m$7$/$J$$$N$G$O$J$$$+!"$H9M$($F$$(B
$B$^$9!#(B


> $B$?$@(B, $B5U$K$*J9$-$7$?$$$G$9$,(B, Ruby1.9$B$N?6$kIq$$$G:$$k$3$H$"$j$^$9(B? 

... $B:$$i$J$$$+$b(B ^^;;


> Ruby1.9$B$NJ}$,(B, $B$h$j40`z$K?6$kIq$$$,F1$8$K$J$k$N$G(B 
> 
>   ''(Ruby1.8$B$N(B)$B0Q>y$@$HF0:n$7$J$$$N$G7Q>5$r;H$*$&(B''
> 
> $B$J$I$H(B, $BK\Mh$"$k$Y$-$G$J$$7Q>5$r;H$&M}M3$K$5$l$?$j$9$k2DG=@-$O>/$J$/$J(B
> $B$j$^$9(B.

$B$I$C$A$+$H$$$&$H!"(B

  $B$"!"(Bkind_of?$B$G8+$F$?$i7Q>5$8$c$J$/$F0Q>y$r;H$o$l$F$$$?$+$i(B
  $BF0$+$J$+$C$?$h!#(B
  $B$3$3$O(Brespond_to?$B$G%a%=%C%I$r8F$Y$k$+%A%'%C%/$9$Y$-$@$C$?$s(B
  $B$@$J$"!#(B

$B$H$$$&J}8~$K9T$/$3$H$r4|BT$7$?$$$N$G$9$,!"%@%a$G$9$+$M!#(B


> PS.
> $B$"$H(B, $B?6$kIq$$$OJL$K$7$F(B, $B<BAu$O(BRuby1.9$B$NJ}$,C1=c$GNI$$$H;W$$$^$9(B. 

$B$3$l$OF10U$7$^$9!#(B


$B$=$l$G$O!#(B
Posted by Keita Yamaguchi (Guest)
on 30.08.2008 16:04
(Received via mailing list)
$B;38}$H?=$7$^$9!#(B

DelegateClass$B$N?6Iq$$$,Aa$/3NDj$9$k$H0B?4$G$-$F$$$$$J$!!"(B
$B$H;W$&$N$G5$IU$$$?E@$r=q$+$;$FD:$-$^$9!#(B

2008/8/28 $B@PDM7=<y(B <keiju@ishitsuka.com>:
> $B$1$$$8$e!w$$$7$D$+$G$9(B.
>>$B$H$$$&$o$1$G!"(Bclass$B$K4X$7$F$O!"4:$($F(B1.8$B$N5sF0$rJQ99$9$kI,MW(B
>>$B$O$J$$$H;W$$$^$9!#(B
>
> $B$?$@(B, $B5U$K$*J9$-$7$?$$$G$9$,(B, Ruby1.9$B$N?6$kIq$$$G:$$k$3$H$"$j$^$9(B?

$BD>$;$P$$$$$@$1$N$3$H$+$bCN$l$^$;$s$N$G(B
$B!V:$$k$3$H!W$KD>@\3:Ev$9$k$+$OJ,$+$j$^$;$s$,!"(B
$B8=>u$N(B 1.9 $B$N?6Iq$$$N$^$.$i$o$7$$E@$r;0E@5s$2$F$*$-$^$9!#(B

1. Module#===

$B$3$l$O4{$K@PDM$5$s$,5s$2$i$l$^$7$?DL$j$K!"(B
case$BJ8$K$*$$$FLdBj$H$J$j$^$9!#(B

require "delegate"

class A; end
DA = DelegateClass(A)

da = DA.new(A.new)
da.class #=> A

case da
when A ; A
when DA; DA
end #=> DA

2. ObjectSpace.each_object

$B0J2<$N$h$&$K(B ObjectSpace.each_object $B$,(B
$BJ6$i$o$7$$$3$H$K$J$j$^$9!#(B

require "delegate"

class A; end
class DA < DelegateClass(A)
  def hello; "world"; end
end

da = DA.new(A.new)
da.class #=> A

ObjectSpace.each_object(DA) do |obj|
  obj.hello #=> "world"
end

ObjectSpace.each_object(A) do |obj|
  obj.hello #=> undefined method `hello'
end

da.class $B$O(B A $B$rJV$9$N$K!"(BObjectSpace $B$G%*%V%8%'%/%H$r(B
$B<h$j=P$9;~$K$O%/%i%9(B DA $B$r;XDj$7$J$1$l$P$J$j$^$;$s!#(B

3. UnboundMethod#bind

$B%(%i!<%a%C%;!<%8$,$d$d$3$7$$$3$H$K$J$j$^$9!#(B

require "delegate"

class A
  def hello; "world"; end
end

DA = DelegateClass(A)

da = DA.new(A.new)
da.kind_of?(A)     #=> true
da.instance_of?(A) #=> true

m = A.instance_method(:hello)
m.bind(da)
#=> bind argument must be an instance of A (TypeError)

$B0J>e$K5s$2$?;0E@$O4pK\E*$K(B C $B$G(B rb_obj_is_kind_of $B$r(B
$B8F$S=P$7$F$$$k$?$a$K5/$-$k8=>]$G$"$k$H;W$$$^$9!#(B
DelegateClass $B$rMQ$$$F(B #kind_of? $B$r0Q>y$7$?$H$7$F$b(B
$B$3$&$7$?$b$N$K4X$7$F$O$I$&$7$F$bL5NO$G$9$N$G!"(B
$B3HD%%i%$%V%i%j$K$*$$$F$bF1MM$KLdBj$K$J$k2DG=@-$,$"$j$^$9!#(B

$B=>$C$F$b$7(B 1.9 $B$N:#$N?6Iq$$$N$^$^$K$9$k$N$G$"$l$P(B
rb_obj_is_kind_of $B5Z$S(B rb_obj_is_instance_of $B$r(B
$B=$@5$7$J$1$l$P$J$i$J$$$N$@$m$&$H;W$$$^$9!#(B
$B$^$?F1MM$K$7$F(B rb_obj_class $B$d(B rb_obj_classname $B$K(B
$B5/0x$9$k$d$d$^$.$i$o$7$$>u67$,@.N)$9$k2DG=@-$b$"$j$^$9!#(B

$B;d$O$3$&$7$?LdBj$,A4LLE*$K2r7h$5$l$k$N$G$"$l$P(B
1.9 $B$N:#$N?6Iq$$$N$^$^$GNI$$$H;W$$$^$9!#(B
$B$?$H$($P(B Tempfile $B$NNc$r9M$($l$P!"%$%s%9%?%s%9$,$J$k$Y$/(B
File $B$N$h$&$K?6$kIq$&J}$,4r$7$$$N$O3N$+$G$9!#(B

$B0lJ}$b$7$3$l$i$,2r7h$5$l$J$$>l9g(B
$B$3$&$7$?$^$.$i$o$7$$>lLL$KD>LL$7$F$7$^$&$H!"(B
ruby $B$N<BAu$K4X$9$kCN<1$,$J$$$H>u67$NGD0.$,:$Fq$G$9!#(B
$B$3$N>l9g(B 1.8 $B$N?6Iq$$$KLa$9$N$,L5Fq$G$"$k$H;W$$$^$9!#(B

---
$B;38}7DB@(B
Posted by 石塚圭樹 (Guest)
on 02.09.2008 13:39
(Received via mailing list)
$B$1$$$8$e!w$$$7$D$+$G$9(B.

In [ruby-dev :36024 ] the message: "[ruby-dev:36024] Re: 
1.9$B$H(B1.8$B$G!"(B
delegate$B$N%$%s%9%?%s%9$N%/%i%9L>$N0c$&(B ", on Aug/28 01:40(JST)
"U.Nakamura" writes:

>$B$3$s$K$A$O!"$J$+$`$i(B($B$&(B)$B$G$9!#(B

$B$I$b$I$b$G$9(B.
$BAjJQ$o$i$:$NCY%a%$%k$G?=$7Lu$J$$(B.

>$B@5$7$$7Q>5$H$O$J$s$>$d!"$H$$$&OC$O@PDM$5$s$K$7$F$$$?$@$$$?J}(B
>$B$,$$$$$H;W$&$N$G;d$,=q$$$A$c$&$H<a2`$K@bK!$J$o$1$G$9$,(B ^^;$B!"(B

$B<a2`$K@bK!$@$J$s$F(B, $B;d$OHQG:$N2t$G$9$N$G(B, 
$B$^$@$^$@$*<a2`MM$K$O$J$l$^$;(B
$B$s(B(^^;

>$BHF2=(B<->$BFC2=$N4X78$K$"$k%/%i%9F1;N$r7k$S$D$1$k$N$,@5$7$$7Q>5$J(B
>$B$N$@$m$&$H;d$OM}2r$7$F$$$^$9!#(B

$B$=$&$G$9$M(B.

>$B$G!"7Q>5$r;H$o$:$K0Q>y$r;H$&$H$$$&$N$O!"K\Mh$O0Q>y85$H0Q>y@h(B
>$B$O7Q>54X78$K$J$$$+$i0Q>y$r;H$C$F$$$k$O$:$J$o$1$G$9!#(B
>$B$K$b$+$+$o$i$:!"(BRuby$B$G0Q>y$r;H$&$HI=LLE*$K$O7Q>54X78$K$"$k$+(B
>$B$N$h$&$K8+$($F$7$^$&$N$O$h$m$7$/$J$$$N$G$O$J$$$+!"$H9M$($F$$(B
>$B$^$9!#(B

$B$&!<$s(B. $B$?$7$+$K$=$NDL$j$+$bCN$l$J$$$G$9(B.

($B35G0E*$K$O(B)$B7Q>5$O(B $B0Q>y$N0l<o$G$"$C$F(B, 
$B0Q>y$O7Q>5$N0l<o$G$O$J$$$G$9$+(B
$B$i$M$'(B.

>  $B$"!"(Bkind_of?$B$G8+$F$?$i7Q>5$8$c$J$/$F0Q>y$r;H$o$l$F$$$?$+$i(B
>  $BF0$+$J$+$C$?$h!#(B
>  $B$3$3$O(Brespond_to?$B$G%a%=%C%I$r8F$Y$k$+%A%'%C%/$9$Y$-$@$C$?$s(B
>  $B$@$J$"!#(B
>$B$H$$$&J}8~$K9T$/$3$H$r4|BT$7$?$$$N$G$9$,!"%@%a$G$9$+$M!#(B

$B$3$l$,@5$7$$J}8~$+$b(B.

ruby$B$C$F%?%$%W%9%$%C%A$r9=J8E*$K%5%]!<%H$7$F$$$k46$8$J$N$G(B, 
$B$D$$;H$C$F(B
$B$7$^$$$,$A$G$9$h$M(B. $B$"$l$C$F$$$&$N$O(B, duck type 
$BE*$K$O$"$^$j$h$m$7$/$J(B
$B$+$C$?$N$+$b$7$l$^$;$s$M$'(B.

$B$?$@(B,

case obj
when Klass

$B$H$+(B, kind_of?$B$K$7$F$b(B, 
$B7Q>54X78$rJ9$$$F$$$k$N$G$O$J$/(B, $B<B$O$^$H$a$F(B
resopnd_to?$B$7$?$$>l9g$,B?$$5$$,$9$k$N$G(B, 
$B$=$l$rH=CG$9$k@lMQ$N%a%=%C%I(B
$B$,$"$k$HNI$$$+$b$7$l$^$;$s(B.

  obj.same_response?(mod)

$B$H$+(B,

case obj
when same_response(mod)
  ....

$B$H$+$M(B.

In [ruby-dev :36059 ] the message: "[ruby-dev:36059] Re: 
1.9$B$H(B1.8$B$G!"(B
delegate$B$N%$%s%9%?%s%9$N%/%i%9L>$N0c$&(B ", on Aug/30 22:58(JST) 
"Keita
Yamaguchi" writes:

>$B;38}$H?=$7$^$9!#(B

Delegator#class$B$K4X$7$F$O(B 1.8 $B$G$h$$5$$K$J$j$^$7$?$N$G(B,

$B$3$A$i$K$O$A$g$C$H$@$1(B.

> $B0J>e$K5s$2$?;0E@$O4pK\E*$K(B C $B$G(B rb_obj_is_kind_of $B$r(B
> $B8F$S=P$7$F$$$k$?$a$K5/$-$k8=>]$G$"$k$H;W$$$^$9!#(B
> DelegateClass $B$rMQ$$$F(B #kind_of? $B$r0Q>y$7$?$H$7$F$b(B
> $B$3$&$7$?$b$N$K4X$7$F$O$I$&$7$F$bL5NO$G$9$N$G!"(B
> $B3HD%%i%$%V%i%j$K$*$$$F$bF1MM$KLdBj$K$J$k2DG=@-$,$"$j$^$9!#(B

$B$=$N$H$*$j$G$9$M(B. 
delegator$B$N$?$a$KA4ItJQ$($m$H8@$&$N$b8=<BE*$G$J$$$G(B
$B$7$g$&$M(B.

$B$"$H(B,

> $B%(%i!<%a%C%;!<%8$,$d$d$3$7$$$3$H$K$J$j$^$9!#(B

$B$K$D$$$F$O(B, $BF10U$9$k$3$H$G(B, 
DEBUG$B%U%i%0$,$?$C$F$$$k$H$-$O>/$J$/$H$b(B,
Delegator#inspect $B$O(B 
delegator$B$G$"$k$3$H$,J,$+$k$h$&$K$J$C$F$$$kJ}$,NI(B
$B$$5$$,$7$^$9(B.

$B0J2<$N46$8$G$9(B

--
emperor2% ruby-dev -S irb -r lib/delegate.rb
irb(main):001:0> SimpleDelegator.new([])
=> []
irb(main):002:0> DEBUG=1
=> 1
irb(main):003:0> SimpleDelegator.new([])
=> #<SimpleDelegator: []>
--

$B>!<j$KJQ$($k$o$1$K$b9T$+$J$$$N$G(B, $B0l1~%Q%C%A$r(B:

--- lib/delegate.rb  ($B%j%S%8%g%s(B 19067)
+++ lib/delegate.rb  ($B:n6H%3%T!<(B)
@@ -117,7 +117,7 @@
 class Delegator
   preserved = [
     :__id__, :object_id, :__send__, :public_send, :respond_to?, :send,
-    :instance_eval, :instance_exec, :extend,
+    :instance_eval, :instance_exec, :extend, :class, :inspect,
   ]
   instance_methods.each do |m|
     next if preserved.include?(m)
@@ -209,6 +209,14 @@
       new.__setobj__(__getobj__.dup)
       new
     end
+
+    def inspect
+      if defined?(DEBUG) && DEBUG
+  "#<#{self.class}: #{self.__getobj__.inspect}>"
+      else
+  self.__getobj__.inspect
+      end
+    end
   end
   include MethodDelegation
 end


__
---------------------------------------------------->> $B@PDM(B 
$B7=<y(B <<---
---------------------------------->> e-mail: keiju@ishitsuka.com <<---
Posted by Kazuhiro NISHIYAMA (Guest)
on 02.09.2008 16:42
(Received via mailing list)
$B@>;3OB9-$G$9!#(B

At Tue, 2 Sep 2008 20:33:41 +0900,
$B@PDM7=<y(B wrote:
>   obj.same_response?(mod)
> 
> $B$H$+(B, 
> 
> case obj
> when same_response(mod)
>   ....
> 
> $B$H$+$M(B. 

Symbol#to_proc$B$H;w$?$h$&$J46$8$G!"(B

class Symbol
  def ===(obj)
    obj.respond_to?(self)
  end
end

$B$H$+(B?
Posted by U.Nakamura (Guest)
on 03.09.2008 02:33
(Received via mailing list)
$B$3$s$K$A$O!"$J$+$`$i(B($B$&(B)$B$G$9!#(B

In message "[ruby-dev:36103] Re: 
1.9$B$H(B1.8$B$G!"(Bdelegate$B$N%$%s%9%?%s%9$N%/%i%9L>$N0c$&(B"
    on Sep.02,2008 20:33:41, <keiju@ishitsuka.com> wrote:
> $B$+$C$?$N$+$b$7$l$^$;$s$M$'(B.
$B7Q>5$O8@8l;EMM$N0lIt$J$N$KBP$7!"0Q>y$O%i%$%V%i%j$G<B8=$7$F$k(B
$B$N$G!";EJ}$J$$46$8$O$"$j$^$9$,(B...


> $B$?$@(B,
> 
> case obj
> when Klass
> 
> $B$H$+(B, kind_of?$B$K$7$F$b(B, $B7Q>54X78$rJ9$$$F$$$k$N$G$O$J$/(B, $B<B$O$^$H$a$F(B
> resopnd_to?$B$7$?$$>l9g$,B?$$5$$,$9$k$N$G(B, $B$=$l$rH=CG$9$k@lMQ$N%a%=%C%I(B
> $B$,$"$k$HNI$$$+$b$7$l$^$;$s(B.

$B$=$&$$$($P!"0Q>y$G(Bkind_of?$B$,(Btrue$B$K$J$k$N$O:#$^$G$NM}M3$G5v$7(B
$B$?$/$J$$$N$G$9$,!"(B===$B$O(Btrue$B$K$J$C$F$b5v$;$k5$$,$7$^$9!#(B
$B$G$b!"(B===$B$@$1;H$($k$h$&$K$J$C$F$b!"C1$K:.Mp$9$k$@$1$G4r$7$/$O(B
$B$J$$$G$9$+$M!#(B


>   obj.same_response?(mod)
> 
> $B$H$+(B, 
> 
> case obj
> when same_response(mod)
>   ....
> 
> $B$H$+$M(B. 

respond_to?$B$G0z?t$KG[Ns$,<h$l$k$h$&$K$J$k$H!"$^$H$a$FH=Dj$G$-(B
$B$FJXMx!"$H$+!#(B


$B$=$l$G$O!#(B
Posted by 石塚圭樹 (Guest)
on 04.09.2008 17:50
(Received via mailing list)
$B$1$$$8$e!w$$$7$D$+$G$9(B.

In [ruby-dev :36109 ] the message: "[ruby-dev:36109] Re: 
1.9$B$H(B1.8$B$G!"(B
delegate$B$N%$%s%9%?%s%9$N%/%i%9L>$N0c$&(B ", on Sep/02 23:36(JST)
Kazuhiro NISHIYAMA writes:

>$B@>;3OB9-$G$9!#(B

>Symbol#to_proc$B$H;w$?$h$&$J46$8$G!"(B
>
>class Symbol
>  def ===(obj)
>    obj.respond_to?(self)
>  end
>end
>
>$B$H$+(B?

$B$$$d(B, $B$3$l$O(B...
$B%7%s%\%k$G$N%9%$%C%A$,$G$-$J$/$J$k$N$G(B, 
$B$&$l$7$/$J$$$G$7$g$&(B(^^;

In [ruby-dev :36113 ] the message: "[ruby-dev:36113] Re: 
1.9$B$H(B1.8$B$G!"(B
delegate$B$N%$%s%9%?%s%9$N%/%i%9L>$N0c$&(B ", on Sep/03 09:27(JST)
"U.Nakamura" writes:

>$B$3$s$K$A$O!"$J$+$`$i(B($B$&(B)$B$G$9!#(B

$B$I$b$G$9(B.

>$B7Q>5$O8@8l;EMM$N0lIt$J$N$KBP$7!"0Q>y$O%i%$%V%i%j$G<B8=$7$F$k(B
>$B$N$G!";EJ}$J$$46$8$O$"$j$^$9$,(B...

$B$$$d(B, $B7Q>5$7$F$$$k$+$i$C$F(B, case/when 
$B$GBP1~$9$k$3$H$b$J$+$C$?$+$b(B.

>$B$=$&$$$($P!"0Q>y$G(Bkind_of?$B$,(Btrue$B$K$J$k$N$O:#$^$G$NM}M3$G5v$7(B
>$B$?$/$J$$$N$G$9$,!"(B===$B$O(Btrue$B$K$J$C$F$b5v$;$k5$$,$7$^$9!#(B
>$B$G$b!"(B===$B$@$1;H$($k$h$&$K$J$C$F$b!"C1$K:.Mp$9$k$@$1$G4r$7$/$O(B
>$B$J$$$G$9$+$M!#(B

ruby$B$G0Q>y$,$+$J$j0lHLE*$K$J$l$P$=$&$$$&OC$b=P$F$/$k$+$bCN$l$^$;$s$,(B...

>respond_to?$B$G0z?t$KG[Ns$,<h$l$k$h$&$K$J$k$H!"$^$H$a$FH=Dj$G$-(B
>$B$FJXMx!"$H$+!#(B

$B$3$l$O(B, $B7k9=JXMx$+$b(B. $B$"$C$F$bNI$$5$$,$7$^$9$M(B.

__
---------------------------------------------------->> $B@PDM(B 
$B7=<y(B <<---
---------------------------------->> e-mail: keiju@ishitsuka.com <<---
Posted by Fujioka (Guest)
on 05.09.2008 16:38
(Received via mailing list)
$BF#2,$G$9!#(B

> 
class$B$K4X$7$F$O(Bself.class.new$B$H$+$,;H$($J$/$J$k$N$G(B
1.8$B$N5sF0$NJ}$,$$$$$H;W$$$^$9!#(B
1.9$B$N8=>u$N(Bdelegate$B$@$H$3$l$,;H$($J$/$J$C$F$7$^$$$^$9!#(B
$B<+J,<+?H$,2?<T$+$rCN$kJ}K!$,$J$$$H$$$&$N$O(B
$B6l$7$$$+$J$H;W$$$^$9!#(B