Google

$B>e(B - $B - $BL\

Object

$BA4$F$N%/%i%9$N%9!<%Q!<%/%i%9!%$3$N%/%i%9$O%*%V%8%'%/%H$N0lHLE*(B $B$J?6Iq$$$rDj5A$7$F$$$^$9!%(B

$B%9!<%Q!<%/%i%9(B:

Kernel

$B%a%=%C%I(B:

self == other

$BFs$D$N%*%V%8%'%/%H$,Ey$7$$$+$I$&$+$rH=Dj$7$^$9!%(B Kernel$B%/%i%9$G$NDj5A$OFs$D$N%*%V%8%'%/%H$,F1$8(B $B%*%V%8%'%/%H(BID$B$r;}$D$+$I$&$+$GH=Dj$7$F$$$^$9!%$3$N%a%=%C%I$O(B $B$=$l$>$l$N%/%i%9$G$=$N@-

self =~ other

$B8E$$%?%$%W$N@55,I=8=Hf3S(Bobj =~ /RE/$B$r%5%]!<%H$9(B $B$k$?$a$N%a%=%C%I$G$9!%%G%U%)%k%H$O(B ==$B$HF1$8F/$-$r$7$^$9!%(B

self === other

$B$3$N%a%=%C%I$O(Bcase $BJ8$G$NHf3S$KMQ$$$i$l$^$9!%%G%U%)%k%H$O(B ==$B$HF1$8F/$-$r$7$^$9$,!$(B $B$3$N5sF0$O%5%V%/%i%9$G=jB0@-$N%A%'%C%/$r

clone
dup

$B%*%V%8%'%/%H$NJ#@=$r:n$j$^$9!%J#@=$K$D$$$F$O(B

obj == obj.clone
$B$O$$$D$b@.N)$7$^$9$,!$(B
obj.equal?(obj.clone)
$B$O0lHLE*$K$O@.N)$7$^$;$s!%(B

dup$B$O(B

def dup
  self.clone
end
$B$HDj5A$5$l$F$$$^$9!%(B

clone$B$d(Bdup$B$O%*%V%8%'%/%H$r%3%T!<$7(B $B$^$9$,!$%*%V%8%'%/%H$N;X$7$F$$$k@h$^$G$O%3%T!<$7$^$;$s(B($B$D$^(B $B$j(Bshallow copy)$B!%(B

display([out])

$B%*%V%8%'%/%H$r(Bout$B$K=PNO$7$^$9!%(Bout$B$N>J(B $BN,CM$O(B$>$B$G$9!%(B

def display(out=$>)
  out.print self
end
public :display
eql?(other)

$BFs$D$N%*%V%8%'%/%H$,Ey$7$$$+$I$&$+$rH=Dj$7$^$9!%$3$N%a%=%C%I(B $B$O(BHash$B$G$U$?$D$N%-!<$,(B $BEy$7$$$+$I$&$+$rH=Dj$9$k$N$K;H$o$l$^$9!%$3$N%a%=%C%I$r:FDj5A(B $B$7$?;~$K$O(B hash $B%a%=%C%I$b(B $B:FDj5A$7$J$1$l$P$J$j$^$;$s!%(B

eql?$B$N%G%U%)%k%H$NDj5A$O(Beqaul?$B$HF1(B $B$8$/%*%V%8%'%/%H$NF10l@-H=Dj$K$J$C$F$$$^$9!%(B

equal?(other)

$BFs$D$N%*%V%8%'%/%H$,F1$8%*%V%8%'%/%H(BID$B$r$H$C$F$$$k;~??$rJV$7(B $B$^$9!%$3$N%a%=%C%I$r:FDj5A$9$k$Y$-$G$O$"$j$^$;$s!%(B

extend(module...)

$B0z?t$G;XDj$7$?%b%8%e!<%k$GDj5A$5$l$F$$$k%a%=%C%I$,(B self$B$NFC0[%a%=%C%I$H$7$FDI2C$5$l$^$9!%(B

hash

$B%*%V%8%'%/%H$N%O%C%7%eCM$rJV$7$^$9!%(B Hash$B%/%i%9$G%*%V%8%'%/(B $B%H$r3JG<$9$k$N$KMQ$$$i$l$F$$$^$9!%(BA.eql?(B)$B$,@.(B $BN)$9$k;~$OI,$:(BA.hash == B.hash$B$,@.N)$9$kI,MW$,(B $B$"$k$N$G!$(Beql?$B$r:FDj5A$7$?;~$K$OI,$:$3$A$i$b$=(B $B$l$K9g$o$;$F:FDj5A$7$F$/$@$5$$!%(B

id

$B3F%*%V%8%'%/%H$K$D$$$F0l0U$N@0?tCM$rJV$7$^$9!%(B

initialize(...)

$B%f!<%6Dj5A%/%i%9$N%*%V%8%'%/%H=i4|2=%a%=%C%I!%$3$N%a%=%C%I$O(B Class#new$B$+$i?7$7(B $B$/@8@.$5$l$?%*%V%8%'%/%H$N=i4|2=$N$?$a$K8F$S=P$5$l$^$9!%%G%U%)(B $B%k%H$NF0:n$G$O$J$K$b$7$^$;$s!%%5%V%/%i%9$G$O$3$N%a%=%C%I$rI,(B $BMW$K1~$8$F:FDj5A$5$l$k$3$H$,4|BT$5$l$F$$$^$9!%(Binitialize$B$K$O(B Class#new$B$KM?$($i$l$?0z?t$,(B $B$=$N$^$^EO$5$l$^$9!%(B

initialize$B$H$$$&L>A0$r;}$D%a%=%C%I$O<+F0E*$K(B private$B$K@_Dj$5$l$^$9!%(B

inspect

$B%*%V%8%'%/%H$r?M4V$,FI$a$k7A<0$NJ8;zNs$KJQ49$7$^$9!%(B

instance_eval(expr)
instance_eval{...}

$B%*%V%8%'%/%H$N%3%s%F%-%9%H(B(self$B$,%*%V%8%'%/%H$K(B $B@_Dj$5$l$F$$$k%a%=%C%IFb$HF1$8%3%s%F%-%9%H(B)$B$G(Bexpr $B$H$7$FM?$($i$l$?J8;zNs$rI>2A$7$^$9!%%V%m%C%/$,M?$($i$l$?>l9g(B $B$K$OJ8;zNs$G$O$J$/%V%m%C%/$r%*%V%8%'%/%H$N%3%s%F%-%9%H$GI>2A(B $B$7$^$9$N$G!$Kh2sJ8;zNs$r%3%s%Q%$%k$9$kI,MW$,$"$j$^$;$s!%(B

self$B$,CV$-49$($i$l$k$N(B $B$G8F$S=P$5$l$k%a%=%C%I$d%$%s%9%?%s%9JQ?t$bJQ$o$C$F$7$^$&$3$H(B $B$KCm0U$7$F$/$@$5$$!%(B

instance_of?(class)

$B%*%V%8%'%/%H(Bself$B$,%/%i%9(Bclass$B$N%$%s(B $B%9%?%s%9$G$"$k;~!$??$rJV$7$^$9!%(B obj.instance_of?(c)$B$,@.N)$9$k;~$K$O!$$$$D$b(B obj.kind_of?(c)$B$b@.N)$7$^$9!%(B

instance_variables()

$B%*%V%8%'%/%H(Bself$B$N%$%s%9%?%s%9JQ?t$N0lMw$rG[Ns(B $B$H$7$FJV$7$^$9!%(B

kind_of?(class)
is_a?(class)

$B%*%V%8%'%/%H(Bself$B$,%/%i%9(Bclass$B$+$=$N%5%V%/%i%9$N%$%s%9%?%s(B $B%9$G$"$k;~!$??$rJV$7$^$9!%(B

method_missing(msg_id, ...)

$B%a%=%C%I$,Dj5A$5$l$F$$$J$+$C$?;~!$$3$N%a%=%C%I$,8F$S=P$5$l$^(B $B$9!%(Bmsg_id$B$O%a%=%C%IL>(B($B%7%s%\%k(B)$B$G!$0z?t$,;D$j$N(B $B0z?t$H$7$FEO$5$l$^$9!%(B

methods

$B$=$N%*%V%8%'%/%H$,M}2r$G$-$k(Bpublic$B%a%=%C%IL>$N0lMw$rG[Ns$H$7(B $B$FJV$7$^$9!%(B

nil?

$B%l%7!<%P$,(B nil $B$+$I$&$+$r%A%'%C%/$7$^$9!%(B

private_methods

$B$=$N%*%V%8%'%/%H$,M}2r$G$-$k(Bprivate$B%a%=%C%IL>$N0lMw$rG[Ns$H$7(B $B$FJV$7$^$9!%(B

remove_instance_variable(var)

$B$=$N%*%V%8%'%/%H$+$i;XDj$7$?L>A0$N%$%s%9%?%s%9JQ?t$rA0$N%$%s%9%?%s%9JQ?t$r;}$C$F$$(B $B$J$/$F$bNc30$J$I$rH/@8$5$;$^$;$s!%(B

respond_to?(mesg[,priv])

$B%*%V%8%'%/%H$,(Bmesg$B$G;XDj$5$l$k(B public $B%a%=%C%I$r;}(B $B$D;~!$??$rJV$7$^$9!%(Bmesg$B$O%7%s%\%k(B(Fixnum)$B$^$?$O(B $BJ8;zNs$G$9!%>JN,2DG=$J0z?t(Bpriv$B$,M?$($i$l!$$=$NCM(B $B$,??$G$"$k;~!$(Bprivate $B%a%=%C%I$KBP$7$F$b??$rJV$7$^$9!%(B

send(symbol[, args...])

symbol$B$G;XDj$5$l$k%a%=%C%I$r0z?t(Bargs$B$H(B $B$H$b$K8F$S=P$7$^$9!%%$%F%l!<%?$H$7$F8F$S=P$5$l$?;~$K$O;XDj$5(B $B$l$?%a%=%C%I$r%$%F%l!<%?8F=P$7$7$^$9!%(B

singleton_method_added(id)

$BFC0[%a%=%C%I$,DI2C$5$l$?;~$K%$%s%?%W%j%?$+$i8F$S=P$5$l$^$9!%(B

singleton_methods

$B$=$N%*%V%8%'%/%H$KBP$7$FDj5A$5$l$F$$$kFC0[%a%=%C%IL>$N0lMw$r(B $BG[Ns$H$7$FJV$7$^$9!%(B

taint

$B%*%V%8%'%/%H$N!V1x@w%^!<%/!W$r%;%C%H$7$^$9!%(B

tainted?

$B%*%V%8%'%/%H$N!V1x@w%^!<%/!W$,%;%C%H$5$l$F$$$k;~??$rJV$7$^$9!%(B

to_s

$B%*%V%8%'%/%H$NJ8;zNsI=8=$rJV$7$^$9!%$3$N%a%=%C%I$O(B print $B$d(B sprintf$B$N(B $BFbIt$G;H$o$l$F$$$^$9!%(B

to_a

$B%*%V%8%'%/%H$rG[Ns$KJQ49$7$^$9!%IaDL$KG[Ns$KJQ49$G$-$J$$$h$&(B $B$J%*%V%8%'%/%H$O<+?H$r4^$`(B1$BMWAG$NG[Ns$KJQ49$5$l$^$9!%(B

type

$B%l%7!<%P$N%/%i%9$rJV$7$^$9!%(B

untaint

$B%*%V%8%'%/%H$N!V1x@w%^!<%/!W$re$N>l9g$O


$B>e(B - $B - $BL\

matz@netlab.co.jp