Google

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

Module

$B%b%8%e!<%k$N%/%i%9!%(B

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

Object

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

self < other
self <= other
self > other
self >= other

$BHf3S1i;;;R!%(Bself$B$,(Bother$B$N%9!<%Q!<%/(B $B%i%9$G$"$k;~!$(Bself > other$B$,@.N)$7$^$9!%(B

self === obj

$B$3$N%a%=%C%I$Ocase $BJ8$G$NHf3S$KMQ$$$i$l$^$9!#(B obj$B$,(Bself$B$H(Bkind_of? $B$N4X78$,$"$k;~!$??$K$J$j$^$9!%$D$^$j!$(B case $B$G$O%/%i%9!$%b%8%e!<%k$N=jB04X78$r%A%'%C%/$9$k$3$H$K$J$j$^$9!%(B

alias_method(new,old)

alias$B$HF1MM$K%a(B $B%=%C%I$NJLL>$rDj5A$7$^$9!%0c$$$O0J2<$NDL$j$G$9!%(B

  • $B%a%=%C%IL>$OJ8;zNs$^$?$O(BID($B@0?t(B)$B$G;XDj$9$k!%(B
  • $BBg0hJQ?t$NJLL>$r$D$1$k5!G=$OL5$$!%(B

append_features(module_or_class)

$B%b%8%e!<%k(B($B$"$k$$$O%/%i%9(B)$B$KJL$N%b%8%e!<%k$N5!G=$rDI2C$7$^$9!%(B Module#include $B$N

attr(name[, assignable])

$B$=$N%b%8%e!<%k$r%$%s%/%k!<%I$9$k%/%i%9$N%$%s%9%?%s%9$KBP$7$F(B name$B$H$$$&B0@-$H$=$N%"%/%;%9%a%=%C%I$rDj5A$7$^$9!%(B $B%"%/%;%9%a%=%C%I$NDj5A$O

def attr; @attr; end

$B>JN,2DG=$JBh(B2$B0z?t(Bassignable$B$,;XDj$5$l!$$=$NCM$,??$G$"(B $B$k>l9g$K$O=q$-9~$_%a%=%C%I(Bname=$B$bF1;~$KDj5A$5$l(B $B$^$9!%$=$NDj5A$O0J2<$NDL$j$G$9!%(B

def attr=(val); @attr = val; end

$B%"%/%;%9%a%=%C%I$r:FDj5A$9$k$3$H$GB0@-$N5sF0$rJQ99$G$-$^$9!%(B $BNc$($P=q$-9~$_%a%=%C%I$r0J2<$N$h$&$KDj5A$9$k$3$H$GBeF~$5$l$?(B $BCM$r%W%j%s%H$G$-$^$9!%(B

attr("test", TRUE)
def test=(val)
  print("test was ", @test, "\n")
  print("and now is ", @test = val, "\n")
end
attr_reader(name, ...)

name$B$G;XDj$5$l$?L>>N$NB0@-$NFI$_$@$7%a%=%C%I$rDj5A$7$^$9!%(B

attr_writer(name, ...)

name$B$G;XDj$5$l$?L>>N$NB0@-$N99?7%a%=%C%I(B (name=)$B$rDj5A$7$^$9!%(B

attr_accessor(name, ...)

name$B$G;XDj$5$l$?L>>N$NB0@-$KBP$7$FFI$_$@$7%a%=%C(B $B%I$H99?7%a%=%C%I$NN>J}$rDj5A$7$^$9!%(B

ancestors

$B$=$N%b%8%e!<%k$G%$%s%/%k!<%I$7$F$$$k%b%8%e!<%k$rM%@h=g0L=g$K(B $BG[Ns$K3JG<$7$FJV$7$^$9!%(B

class_eval(src)
class_eval{...}

module_eval$B$NJLL>!%(B

constants

$B$=$N%b%8%e!<%k(B($B$^$?$O%/%i%9(B)$B$GDj5A$5$l$F$$$kDj?tL>$NG[Ns$rJV(B $B$7$^$9!%(B

const_defined?(name)

$B%b%8%e!<%k$K(Bname$B$G;XDj$5$l$kL>A0$NDj?t$,Dj5A$5$l(B $B$F$$$k;~??$rJV$7$^$9!%(B

const_get(name)

$B%b%8%e!<%k$KDj5A$5$l$F$$$k(Bname$B$G;XDj$5$l$kL>A0$N(B $BDj?t$NCM$rNameError$B$,H/@8$7$^$9!%(B

const_set(name, value)

$B%b%8%e!<%k$K(Bname$B$G;XDj$5$l$?L>A0$NDj?t$r(B value$B$H$$$&CM$H$7$FDj5A$7$^$9!%$=$N%b%8%e!<%k$K$*(B $B$$$F$9$G$K$=$NL>A0$NDj?t$,Dj5A$5$l$F$$$k>l9g!$Nc30(B NameError$B$,H/@8$7$^$9!%(B

extend_object(object)

$B%*%V%8%'%/%H$K%b%8%e!<%k$N5!G=$rDI2C$7$^$9!%(B Object#extend $B$N

include(module...)

$B;XDj$5$l$?%b%8%e!<%k$N@-include$B$OB?=E7Q>5$NBe$o$j$KMQ$$$i$l$k(BMix-in$B$r

included_modules

$B%$%s%/%k!<%I$5$l$F$$$k%b%8%e!<%k$NG[Ns$rJV$7$^$9!%(B

instance_methods

$B$=$N%b%8%e!<%k$GDj5A$5$l$F$$$k%a%=%C%IL>$N0lMw$rJV$7$^$9!%(B

method_added(id)

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

method_defined?(id)

$B%$%s%9%?%s%9$,(Bid$B$G;XDj$5$l$?%a%=%C%I$r;}$C$F$$$k(B $B;~!$??$rJV$7$^$9!%(B

module_eval(expr)
module_eval{...}

$B%b%8%e!<%k$N%3%s%F%-%9%H$G(Bexpr$B$H$7$FM?$($i$l$?J8(B $B;zNs$rI>2A$7$^$9!%%V%m%C%/$,M?$($i$l$?>l9g$K$OJ8;zNs$G$O$J(B $B$/%V%m%C%/$r%b%8%e!<%k$N%3%s%F%-%9%H$GI>2A$7$^$9!%(B

$B%b%8%e!<%k$N%3%s%F%-%9%H$G$O(B

  • self
  • $B%$%s%9%?%s%9JQ?t(B
  • $BDj?t(B
  • $B%a%=%C%IDj5A(B
$B$,$=$N%b%8%e!<%k$NDj5A$NCf$K$"$k$N$HF1$8$h$&$KI>2A$5$l$^$9!%$?$@(B $B$7!$%m!<%+%kJQ?t$O(Bmodule_eval$B$N30B&$N%9%3!<%W$H(B $B6&M-$7$^$9!%(B

module_function(name...)

name$B$G;XDj$5$l$?%a%=%C%I$r%b%8%e!<%k4X?t$K$7$^$9!%(B $B%b%8%e!<%k4X?t$H$ODL>o$N%a%=%C%I$G$"$k$HF1;~$K%b%8%e!<%k(B($B$^(B $B$?$O%/%i%9(B)$B$NFC0[%a%=%C%I$G$b$"$k$h$&$J%a%=%C%I$G$9!%Nc$($P(B Math$B%b%8%e!<%k$GDj5A$5(B $B$l$F$$$k%a%=%C%I$,%b%8%e!<%k4X?t$G$9(B

name()

$B%b%8%e!<%k$NL>A0$rJV$7$^$9!%(B

private(name...)

$B0z?t$,M?$($i$l$J$$;~!$:#8e$3$N%/%i%9$^$?$O%b%8%e!<%kDj5AFb$G(B $B?75,$KDj5A$5$l$k%a%=%C%I$r4X?t7A<0$G$@$18F$S=P$;$k$h$&$K(B (private)$B@_Dj$7$^$9!%(B

$B0z?t$,M?$($i$l$?;~$K$O0z?t$K$h$C$F;XDj$5$l$?%a%=%C%I$r(Bprivate $B$K@_Dj$7$^$9!%(B

$BNc(B:

module Foo
  def foo1() 1 end	# $B%G%U%)%k%H$G$O(Bpublic
  private		# $B2D;k@-$r(Bprivate$B$KJQ99(B
  def foo2() 2 end	# foo2$B$O(Bprivate$B%a%=%C%I(B
end

foo = Foo.new
foo.foo1
       => 1
foo.foo2
       error--> private method `foo2' called #<Foo:0x4011ad8c>(Foo)

private_instance_methods

$B$=$N%b%8%e!<%k$GDj5A$5$l$F$$$k(Bprivate$B%a%=%C%IL>$N0lMw$rJV$7$^$9!%(B

protected(name...)

$B0z?t$,M?$($i$l$J$$;~!$:#8e$3$N%/%i%9$^$?$O%b%8%e!<%kDj5AFb$G(B $B?75,$KDj5A$5$l$k%a%=%C%I$r(Bprotected$B$K@_Dj$7$^$9!%(Bprotected$B$H(B $B$O$=$N%a%=%C%I$,Dj5A$5$l$F$$$k%/%i%9$^$?$O$=$N%5%V%/%i%9$+$i(B $B$7$+8F$S=P$9$3$H$,$G$-$J$$$H$$$&0UL#$G$9!%(B

$B0z?t$,M?$($i$l$?;~$K$O0z?t$K$h$C$F;XDj$5$l$?%a%=%C%I$r(Bprotected $B$K@_Dj$7$^$9!%(B

public(name...)

$B0z?t$,M?$($i$l$J$$;~!$:#8e$3$N%/%i%9$^$?$O%b%8%e!<%kDj5AFb$G(B $B?75,$KDj5A$5$l$k%a%=%C%I$r$I$s$J7A<0$G$b8F$S=P$;$k$h$&$K(B (public)$B@_Dj$7$^$9!%(B

$B0z?t$,M?$($i$l$?;~$K$O0z?t$K$h$C$F;XDj$5$l$?%a%=%C%I$r(Bpublic $B$K@_Dj$7$^$9!%(B

$BNc(B:

def foo() 1 end
foo
       => 1
self.foo	# the toplevel default is private
       error--> private method `foo' called for "main"(Object)

def bar() 2 end
public :bar	# visibility changed (all access allowed)
bar
       => 2
self.bar
       => 2

private_class_method(name, ...)
public_class_method(name, ...)

name$B$G;XDj$7$?%/%i%9%a%=%C%I(B($B%/%i%9$NFC0[%a%=%C%I(B) $B$N2D;k@-$rJQ99$7$^$9!%(B

remove_const(name)

name$B$G;XDj$7$?Dj?t$rNameError$BNc30$,H/@8$7$^$9!%(B

remove_method(name)

name$B$G;XDj$7$?%a%=%C%I$r%b%8%e!<%k$+$iNameError$BNc30$,H/@8$7$^$9!%(B

undef_method(name)

name$B$G;XDj$7$?%a%=%C%I$NDj5A$rC$7$^$9!%(B undef$B$H$N0c$$$O(B $B%a%=%C%I;XDj$rJ8;zNs$^$?$O(BID($B@0?t(B)$B$G9T$&E@$G$9!%(B

$B%/%i%9%a%=%C%I(B:

nesting

$B$3$N%a%=%C%I$r8F$S=P$7$?;~E@$G$N%/%i%9(B/$B%b%8%e!<%k$N%M%9%H>p(B $BJs$rG[Ns$KF~$l$FJV$7$^$9!%(B

new

$B?7$7$/L>A0$NIU$$$F$$$J$$%b%8%e!<%k$r@8@.$7$^$9!%(B


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

matz@netlab.co.jp