Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

This commit was manufactured by cvs2svn to create branch 'ruby_1_6'.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_6@1630 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
  • Loading branch information...
commit 512dc556b4557c0e3f4e39b651ec7e236a474f5a 1 parent f943351
(no author) authored
View
51 COPYING.ja
@@ -0,0 +1,51 @@
+$BK\%W%m%0%i%`$O%U%j!<%=%U%H%&%'%"$G$9!%(BGPL(the GNU General
+Public License)$B$^$?$O0J2<$K<($9>r7o$GK\%W%m%0%i%`$r:FG[I[$G(B
+$B$-$^$9!%(BGPL$B$K$D$$$F$O(BGPL$B%U%!%$%k$r;2>H$7$F2<$5$$!%(B
+
+ 1. $BJ#@=$O@)8B$J$/<+M3$G$9!%(B
+
+ 2. $B0J2<$N>r7o$N$$$:$l$+$rK~$?$9;~$KK\%W%m%0%i%`$N%=!<%9$r(B
+ $B<+M3$KJQ99$G$-$^$9!%(B
+
+ (a) $B%M%C%H%K%e!<%:$K%]%9%H$7$?$j!$:n<T$KJQ99$rAwIU$9$k(B
+ $B$J$I$NJ}K!$G!$JQ99$r8x3+$9$k!%(B
+
+ (b) $BJQ99$7$?K\%W%m%0%i%`$r<+J,$N=jB0$9$kAH?%FbIt$@$1$G(B
+ $B;H$&!%(B
+
+ (c) $BJQ99E@$rL@<($7$?$&$(!$%=%U%H%&%'%"$NL>A0$rJQ99$9$k!%(B
+ $B$=$N%=%U%H%&%'%"$rG[I[$9$k;~$K$OJQ99A0$NK\%W%m%0%i(B
+ $B%`$bF1;~$KG[I[$9$k!%$^$?$OJQ99A0$NK\%W%m%0%i%`$N%=!<(B
+ $B%9$NF~<jK!$rL@<($9$k!%(B
+
+ (d) $B$=$NB>$NJQ99>r7o$r:n<T$H9g0U$9$k!%(B
+
+ 3. $B0J2<$N>r7o$N$$$:$l$+$rK~$?$9;~$KK\%W%m%0%i%`$r%3%s%Q%$(B
+ $B%k$7$?%*%V%8%'%/%H%3!<%I$d<B9T7A<0$G$bG[I[$G$-$^$9!%(B
+
+ (a) $B%P%$%J%j$r<u$1<h$C$??M$,%=!<%9$rF~<j$G$-$k$h$&$K!$(B
+ $B%=!<%9$NF~<jK!$rL@<($9$k!%(B
+
+ (b) $B5!3#2DFI$J%=!<%9%3!<%I$rE:IU$9$k!%(B
+
+ (c) $BJQ99$r9T$C$?%P%$%J%j$OL>A0$rJQ99$7$?$&$(!$%*%j%8%J(B
+ $B%k$N%=!<%9%3!<%I$NF~<jK!$rL@<($9$k!%(B
+
+ (d) $B$=$NB>$NG[I[>r7o$r:n<T$H9g0U$9$k!%(B
+
+ 4. $BB>$N%W%m%0%i%`$X$N0zMQ$O$$$+$J$kL\E*$G$"$l<+M3$G$9!%$?(B
+ $B$@$7!$K\%W%m%0%i%`$K4^$^$l$kB>$N:n<T$K$h$k%3!<%I$O!$$=(B
+ $B$l$>$l$N:n<T$N0U8~$K$h$k@)8B$,2C$($i$l$k>l9g$,$"$j$^$9!%(B
+
+ $B$=$l$i%U%!%$%k$N0lMw$H$=$l$>$l$NG[I[>r7o$J$I$KIU$$$F$O(B
+ LEGAL$B%U%!%$%k$r;2>H$7$F$/$@$5$$!%(B
+
+ 5. $BK\%W%m%0%i%`$X$NF~NO$H$J$k%9%/%j%W%H$*$h$S!$K\%W%m%0%i(B
+ $B%`$+$i$N=PNO$N8"Mx$OK\%W%m%0%i%`$N:n<T$G$O$J$/!$$=$l$>(B
+ $B$l$NF~=PNO$r@8@.$7$??M$KB0$7$^$9!%$^$?!$K\%W%m%0%i%`$K(B
+ $BAH$_9~$^$l$k$?$a$N3HD%%i%$%V%i%j$K$D$$$F$bF1MM$G$9!%(B
+
+ 6. $BK\%W%m%0%i%`$OL5J]>Z$G$9!%:n<T$OK\%W%m%0%i%`$r%5%]!<%H(B
+ $B$9$k0U;V$O$"$j$^$9$,!$%W%m%0%i%`<+?H$N%P%0$"$k$$$OK\%W(B
+ $B%m%0%i%`$N<B9T$J$I$+$iH/@8$9$k$$$+$J$kB;32$KBP$7$F$b@U(B
+ $BG$$r;}$A$^$;$s!%(B
View
1,187 README.EXT.ja
@@ -0,0 +1,1187 @@
+.\" README.EXT.ja - -*- Text -*- created at: Mon Aug 7 16:45:54 JST 1995
+
+Ruby�γ�ĥ�饤�֥��κ�����������ޤ���
+
+1�������μ�
+
+C���ѿ�ˤϷ������ꡤ�ǡ����ˤϷ�������ޤ��󡥤Ǥ����顤��
+�Ȥ��Хݥ��󥿤�int���ѿ����������ȡ������ͤ����Ȥ��Ƽ�
+�갷���ޤ����դ�Ruby���ѿ�ˤϷ����ʤ����ǡ����˷��������
+�������ΰ㤤�Τ��ᡤC��Ruby����ߤ��Ѵ����ʤ���С����ߤ���
+�ǡ����򥢥������Ǥ��ޤ���
+
+Ruby�Υǡ�����VALUE�Ȥ���C�η���ɽ������ޤ���VALUE���Υǡ�
+���Ϥ��Υǡ��������פ�ʬ���ΤäƤ��ޤ������Υǡ��������פ�
+�����Τϥǡ���(���֥�������)�μºݤι�¤���̣���Ƥ��ơ�Ruby
+�Υ��饹�ȤϤޤ���ä���ΤǤ���
+
+VALUE����C�ˤȤäư�̣�Τ���ǡ�������Ф�����ˤ�
+
+ (1) VALUE�Υǡ��������פ��Τ�
+ (2) VALUE��C�Υǡ������Ѵ�����
+
+��ξ��ɬ�פǤ���(1)��˺���ȴְ�ä��ǡ������Ѵ����Ԥ��
+�ơ��ǰ��ץ���बcore dump���ޤ���
+
+1.1 �ǡ���������
+
+Ruby�ˤϥ桼�����Ȥ���ǽ��Τ���ʲ��Υ����פ�����ޤ���
+
+ T_NIL nil
+ T_OBJECT �̾�Υ��֥�������
+ T_CLASS ���饹
+ T_MODULE �⥸�塼��
+ T_FLOAT ��ư�������
+ T_STRING ʸ����
+ T_REGEXP ���ɽ��
+ T_ARRAY ����
+ T_FIXNUM Fixnum(31bit���)
+ T_HASH Ϣ������
+ T_STRUCT (Ruby��)��¤��
+ T_BIGNUM ¿��Ĺ���
+ T_FILE ������
+ T_TRUE ��
+ T_FALSE ��
+ T_DATA �ǡ���
+ T_SYMBOL ����ܥ�
+
+����¾����������Ѥ���Ƥ���ʲ��Υ����פ�����ޤ���
+
+ T_ICLASS
+ T_MATCH
+ T_UNDEF
+ T_VARMAP
+ T_SCOPE
+ T_NODE
+
+�ۤȤ�ɤΥ����פ�C�ι�¤�ΤǼ����Ƥ��ޤ���
+
+1.2 VALUE�Υǡ��������פ����å�����
+
+ruby.h�Ǥ�TYPE()�Ȥ����ޥ���������Ƥ��ơ�VALUE�Υǡ���
+�����פ��Τ뤳�Ȥ�����ޤ���TYPE()�ޥ���Ͼ�ǾҲ𤷤�T_XXXX
+�η���������֤��ޤ���VALUE�Υǡ��������פ˱����ƽ����
+���ˤϡ�TYPE()���ͤ�ʬ��뤳�Ȥˤʤ�ޤ���
+
+ switch (TYPE(obj)) {
+ case T_FIXNUM:
+ /* FIXNUM��� */
+ break;
+ case T_STRING:
+ /* ʸ����ν��� */
+ break;
+ case T_ARRAY:
+ /* ������ */
+ break;
+ default:
+ /* �㳰��ȯ������� */
+ rb_raise(rb_eTypeError, "not valid value");
+ break;
+ }
+
+����ȥǡ��������פ����å����ơ�������ʤ�����㳰��ȯ���
+��ؿ��Ѱդ���Ƥ��ޤ���
+
+ void Check_Type(VALUE value, int type)
+
+���δؿ��value��type��̵����С��㳰��ȯ������ޤ�������
+����Ϳ����줿VALUE�Υǡ��������פ���������ɤ�������å���
+�뤿��ˤϡ����δؿ��Ȥ��ޤ���
+
+FIXNUM��NIL�˴ؤ��ƤϤ���®��Ƚ�̥ޥ����Ѱդ���Ƥ��ޤ���
+
+ FIXNUM_P(obj)
+ NIL_P(obj)
+
+1.3 VALUE��C�Υǡ������Ѵ�����
+
+�ǡ��������פ�T_NIL, T_FALSE, T_TRUE�Ǥ�������ǡ����Ϥ��줾
+��nil, false, true�Ǥ������Υǡ��������פΥ��֥������ȤϤҤ�
+�Ĥ��Ĥ���¸�ߤ��ޤ���
+
+�ǡ��������פ�T_FIXNUM�λ��������31bit�Υ�������������
+����FIXNUM��C�������Ѵ����뤿��ˤϥޥ����FIX2INT()�פ��
+���ޤ������줫�顤FIXNUM�˸¤餺Ruby�Υǡ����������Ѵ�����
+��NUM2INT()�פȤ����ޥ�������ޤ������Υޥ���ϥǡ�������
+�פΥ���å�̵���ǻȤ��ޤ�(�����Ѵ��Ǥ��ʤ����ˤ��㳰��
+ȯ�����)��
+
+Ʊ�ͤ˥���å�̵���ǻȤ����Ѵ��ޥ����double����Ф�
+��NUM2DBL()�פ�char*����Ф���STR2CSTR()�פ�����ޤ���
+
+����ʳ��Υǡ��������פ��б�����C�ι�¤�Τ�����ޤ����б���
+�빽¤�ΤΤ���VALUE�Ϥ��Τޤޥ��㥹��(���Ѵ�)����й�¤�Τ�
+�ݥ��󥿤��Ѵ��Ǥ��ޤ���
+
+��¤�Τϡ�struct RXxxxx�פȤ���̾���ruby.h��������Ƥ���
+�����㤨��ʸ����ϡ�struct RString�פǤ����ºݤ˻Ȥ���ǽ���
+����Τ�ʸ��������󤯤餤��Ȼפ��ޤ���
+
+ruby.h�ǤϹ�¤�Τإ��㥹�Ȥ���ޥ�����RXXXXX()��(�����ʸ
+��ˤ������)�Ȥ���̾����󶡤���Ƥ��ޤ�(��: RSTRING())��
+
+�㤨�С�ʸ����str��Ĺ������뤿��ˤϡ�RSTRING(str)->len�פ�
+����ʸ����str��char*�Ȥ�����뤿��ˤϡ�RSTRING(str)->ptr��
+�Ȥ��ޤ�������ξ��ˤϡ����줾���RARRAY(ary)->len�ס�
+��RARRAY(ary)->ptr�פȤʤ�ޤ���
+
+Ruby�ι�¤�Τ�ľ�ܥ�������������˵���Ĥ��ʤ���Фʤ�ʤ���
+�Ȥϡ������ʸ����ι�¤�Τ���Ȥϻ��Ȥ������ǡ�ľ���ѹ���
+�ʤ����ȤǤ���ľ���ѹ�������硤���֥������Ȥ����Ƥ�������
+�Ȥ�ʤ��ʤäơ��פ�̥Х��θ���ˤʤ�ޤ���
+
+1.4 C�Υǡ�����VALUE���Ѵ�����
+
+VALUE�μºݤι�¤��
+
+ * FIXNUM��
+
+ 1bit�����եȤ��ơ�LSB��Ω�Ƥ롥
+
+ * ����¾�Υݥ��󥿤ξ��
+
+ ���Τޤ�VALUE�˥��㥹�Ȥ��롥
+
+�ȤʤäƤ��ޤ�����äơ�LSB�����å������VALUE��FIXNUM����
+�����狼��櫓�Ǥ�(�ݥ��󥿤�LSB��Ω�äƤ��ʤ����Ȥ��ꤷ��
+����)��
+
+�Ǥ����顤FIXNUM�ʳ���Ruby�Υ��֥������Ȥι�¤�Τ�ñ��VALUE
+�˥��㥹�Ȥ�������VALUE���Ѵ�����ޤ����������Ǥ�դι�¤
+�Τ�VALUE�˥��㥹�Ƚ����櫓�ǤϤ���ޤ��󡥥��㥹�Ȥ����
+��Ruby���ΤäƤ��빽¤��(ruby.h��������Ƥ���struct RXxxx
+�Τ��)����Ǥ���
+
+FIXNUM�˴ؤ��Ƥ��Ѵ��ޥ�����ͳ����ɬ�פ�����ޤ���C�����
+����VALUE���Ѵ�����ޥ���ϰʲ��Τ�Τ�����ޤ���ɬ�פ˱���
+�ƻȤ�ʬ���Ƥ��������
+
+ INT2FIX() ��Ȥ����31bit����˼�ޤ뼫���������
+ INT2NUM() Ǥ�դ�����VALUE��
+
+INT2NUM()�����FIXNUM���ϰϤ˼�ޤ�ʤ���硤Bignum���Ѵ�
+���Ƥ���ޤ�(���������٤�)��
+
+1.5 Ruby�Υǡ���������
+
+�����Ҥ٤��̤ꡤRuby�ι�¤�Τ򥢥���������������Ƥι�����
+�Ԥ����Ȥϴ�����ޤ��󡥤ǡ�Ruby�Υǡ�����������ˤ�
+Ruby���Ѱդ��Ƥ���ؿ���Ѥ��Ƥ��������
+
+�����ǤϤ�äȤ�Ȥ���Ǥ���ʸ������������/�����
+���ؿ�򤢤��ޤ�(���ǤϤʤ��Ǥ�)��
+
+ ʸ������Ф���ؿ�
+
+ rb_str_new(const char *ptr, long len)
+
+ ������Ruby��ʸ����������롥
+
+ rb_str_new2(const char *ptr)
+
+ C��ʸ���󤫤�Ruby��ʸ����������롥���δؿ�ε�ǽ��
+ rb_str_new(ptr, strlen(ptr))��Ʊ��Ǥ��롥
+
+ rb_tainted_str_new(const char *ptr, long len)
+
+ ����ޡ������ղä��줿������Ruby��ʸ����������롥����
+ ����Υǡ����˴�Ť�ʸ����ˤϱ���ޡ������ղä����٤�
+ �Ǥ��롥
+
+ rb_tainted_str_new2(const char *ptr)
+
+ C��ʸ���󤫤����ޡ������ղä��줿Ruby��ʸ����������롥
+
+ rb_str_cat(VALUE str, const char *ptr, long len)
+
+ Ruby��ʸ����str��len�Х��Ȥ�ʸ����ptr���ɲä��롥
+
+ ������Ф���ؿ�
+
+ rb_ary_new()
+
+ ���Ǥ�0������������롥
+
+ rb_ary_new2(long len)
+
+ ���Ǥ�0������������롥len����ʬ���ΰ�򤢤餫������
+ ��ƤƤ�����
+
+ rb_ary_new3(long n, ...)
+
+ ���ǻ��ꤷ��n���Ǥ�ޤ�����������롥
+
+ rb_ary_new4(long n, VALUE *elts)
+
+ �����Ϳ����n���Ǥ�����������롥
+
+ rb_ary_push(VALUE ary, VALUE val)
+ rb_ary_pop(VALUE ary)
+ rb_ary_shift(VALUE ary)
+ rb_ary_unshift(VALUE ary, VALUE val)
+
+ Array��Ʊ̾�Υ᥽�åɤ�Ʊ��Ư���򤹤�ؿ���1����ɬ��
+ ����Ǥʤ���Фʤ�ʤ���
+
+2��Ruby�ε�ǽ��Ȥ�
+
+����Ū��Ruby�ǽ񤱤뤳�Ȥ�C�Ǥ�񤱤ޤ���Ruby���Τ�Τ�C�ǵ�
+�Ҥ���Ƥ����Ǥ����顤����Ȥ���������ʤ�Ǥ����ɡ�������
+��Ruby�γ�ĥ�˻Ȥ����Ȥ�¿�������ͽ¬����뵡ǽ���濴�˾�
+�𤷤ޤ���
+
+2.1 Ruby�˵�ǽ���ɲä���
+
+Ruby���󶡤���Ƥ���ؿ��Ȥ���Ruby���󥿥ץ꥿�˿�������ǽ
+���ɲä��뤳�Ȥ��Ǥ��ޤ���Ruby�Ǥϰʲ��ε�ǽ���ɲä���ؿ�
+�󶡤���Ƥ��ޤ���
+
+ * ���饹���⥸�塼��
+ * �᥽�åɡ��ðۥ᥽�åɤʤ�
+ * ���
+
+�ǤϽ�˾Ҳ𤷤ޤ���
+
+2.1.1 ���饹/�⥸�塼�����
+
+���饹��⥸�塼��������뤿��ˤϡ��ʲ��δؿ��Ȥ��ޤ���
+
+ VALUE rb_define_class(const char *name, VALUE super)
+ VALUE rb_define_module(const char *name)
+
+�����δؿ�Ͽ����������줿���饹��⥸�塼����֤��ޤ���
+�᥽�åɤ��������ˤ������ͤ�ɬ�פʤΤǡ��ۤȤ�ɤξ��
+������ͤ��ѿ�˳�Ǽ���Ƥ���ɬ�פ�����Ǥ��礦��
+
+���饹��⥸�塼���¾�Υ��饹������˥ͥ��Ȥ������������
+�ϰʲ��δؿ��Ȥ��ޤ���
+
+ VALUE rb_define_class_under(VALUE outer, const char *name, VALUE super)
+ VALUE rb_define_module_under(VALUE outer, const char *name)
+
+2.1.2 �᥽�å�/�ðۥ᥽�å����
+
+�᥽�åɤ��ðۥ᥽�åɤ�������ˤϰʲ��δؿ��Ȥ��ޤ���
+
+ void rb_define_method(VALUE klass, const char *name,
+ VALUE (*func)(), int argc)
+
+ void rb_define_singleton_method(VALUE object, const char *name,
+ VALUE (*func)(), int argc)
+
+
+ǰ�Τ����������ȡ��ðۥ᥽�åɡפȤϡ���������Υ��֥�����
+�Ȥ��Ф��Ƥ��ͭ��ʥ᥽�åɤǤ���Ruby�ǤϤ褯Smalltalk�ˤ�
+���륯�饹�᥽�åɤȤ��ơ����饹���Ф����ðۥ᥽�åɤ��Ȥ��
+�ޤ���
+
+�����δؿ�� argc�Ȥ�������C�δؿ���Ϥ������ο�(��
+���)����ޤ���argc��0�ʾ�λ��ϴؿ�˰��Ϥ����ο���
+̣���ޤ���16�İʾ�ΰ��ϻȤ��ޤ���(�����פ�ޤ����͡���
+��ʤ�)���ºݤδؿ�ˤ���Ƭ�ΰ��Ȥ���self��Ϳ�����ޤ���
+�ǡ����ꤷ������1¿�������Ĥ��Ȥˤʤ�ޤ���
+
+argc����λ��ϰ��ο�ǤϤʤ����������ꤷ�����Ȥˤʤ�ޤ���
+argc��-1�λ��ϰ��������������Ϥ���ޤ���argc��-2�λ��ϰ�
+���Ruby������Ȥ����Ϥ���ޤ���
+
+�᥽�åɤ�������ؿ�Ϥ⤦��Ĥ���ޤ����ҤȤĤ�private��
+���åɤ�������ؿ�ǡ�����rb_define_method()��Ʊ���Ǥ���
+
+ void rb_define_private_method(VALUE klass, const char *name,
+ VALUE (*func)(), int argc)
+
+private�᥽�åɤȤϴؿ����Ǥ����ƤӽФ����Ȥν���ʤ��᥽��
+�ɤǤ���
+
+�⤦�ҤȤĤϥ⥸�塼��ؿ���������ΤǤ����⥸�塼��ؿ�
+�Ȥϥ⥸�塼����ðۥ᥽�åɤǤ��ꡤƱ����private�᥽�åɤ�
+�⤢���ΤǤ�����򤢤����Math�⥸�塼���sqrt()�ʤɤ�����
+���ޤ������Υ᥽�åɤ�
+
+ Math.sqrt(4)
+
+�Ȥ�������Ǥ�
+
+ include Math
+ sqrt(4)
+
+�Ȥ�������Ǥ�Ȥ��ޤ����⥸�塼��ؿ��������ؿ�ϰʲ���
+�̤�Ǥ���
+
+ void rb_define_module_function(VALUE module, const char *name,
+ VALUE (*func)(), int argc)
+
+�ؿ�Ū�᥽�å�(Kernel�⥸�塼���private method)�������뤿
+��δؿ�ϰʲ����̤�Ǥ���
+
+ void rb_define_global_function(const char *name, VALUE (*func)(), int argc)
+
+
+�᥽�åɤ���̾�������뤿��δؿ�ϰʲ����̤�Ǥ���
+
+ void rb_define_alias(VALUE module, const char* new, const char* old);
+
+2.1.3 ������
+
+��ĥ�饤�֥�꤬ɬ�פ����Ϥ��餫���������Ƥ��������ɤ�
+�Ǥ��礦������������ؿ����Ĥ���ޤ���
+
+ void rb_define_const(VALUE klass, const char *name, VALUE val)
+ void rb_define_global_const(const char *name, VALUE val)
+
+��Ԥ�����Υ��饹/�⥸�塼���°���������������Ρ���
+�Ԥϥ����Х�������������ΤǤ���
+
+2.2 Ruby�ε�ǽ��C����ƤӽФ�
+
+��ˡ�1.5 Ruby�Υǡ���������٤ǰ���Ҳ𤷤��褦�ʴؿ��
+�Ȥ��С�Ruby�ε�ǽ��¸����Ƥ���ؿ��ľ�ܸƤӽФ����Ȥ�����
+�ޤ���
+
+# ���Τ褦�ʴؿ�ΰ���ɽ�Ϥ��ޤΤȤ�����ޤ��󡥥�������
+# �뤷���ʤ��Ǥ��͡�
+
+����ʳ��ˤ�Ruby�ε�ǽ��ƤӽФ���ˡ�Ϥ����Ĥ�����ޤ���
+
+2.2.1 Ruby�Υץ�����eval����
+
+C����Ruby�ε�ǽ��ƤӽФ���äȤ��ñ����ˡ�Ȥ��ơ�ʸ�����
+Ϳ����줿Ruby�Υץ�����ɾ�����ʲ��δؿ����ޤ���
+
+ VALUE rb_eval_string(const char *str)
+
+����ɾ��ϸ��ߤδĶ��ǹԤ��ޤ����Ĥޤꡤ���ߤΥ������ѿ�
+�ʤɤ��Ѥ��ޤ���
+
+2.2.2 ID�ޤ��ϥ���ܥ�
+
+C����ʸ������ͳ������Ruby�Υ᥽�åɤ�ƤӽФ����Ȥ�Ǥ���
+����������ˡ�Ruby���󥿥ץ꥿��ǥ᥽�åɤ��ѿ�̾����ꤹ��
+���˻Ȥ��Ƥ���ID�ˤĤ���������Ƥ����ޤ��礦��
+
+ID�Ȥ��ѿ�̾���᥽�å�̾��ɽ�����Ǥ���Ruby����Ǥ�
+
+ :���̻�
+
+�ǥ��������Ǥ��ޤ���C���餳��������뤿��ˤϴؿ�
+
+ rb_intern(const char *name)
+
+��Ȥ��ޤ���Ruby������Ȥ���Ϳ����줿����ܥ�(�ޤ���ʸ��
+��)��ID���Ѵ�����ˤϰʲ��δؿ��Ȥ��ޤ���
+
+ rb_to_id(VALUE symbol)
+
+2.2.3 C����Ruby�Υ᥽�åɤ�ƤӽФ�
+
+C����ʸ������ͳ������Ruby�Υ᥽�åɤ�ƤӽФ�����ˤϰʲ�
+�δؿ��Ȥ��ޤ���
+
+ VALUE rb_funcall(VALUE recv, ID mid, int argc, ...)
+
+���δؿ�ϥ��֥�������recv��mid�ǻ��ꤵ���᥽�åɤ�Ƥӽ�
+���ޤ�������¾�˰��λ���λ���㤦�ʲ��δؿ�⤢��ޤ���
+
+ VALUE rb_funcall2(VALUE recv, ID mid, int argc, VALUE *argv)
+ VALUE rb_apply(VALUE recv, ID mid, VALUE args)
+
+apply�ˤϰ��Ȥ���Ruby�������Ϳ���ޤ���
+
+2.2.4 �ѿ�/���򻲾�/��������
+
+C����ؿ��Ȥäƻ��ȡ������Ǥ���Τϡ������󥹥�����
+��Ǥ�������ѿ�ϰ���Τ�Τ�C������ѿ�Ȥ��ƥ��������Ǥ�
+�ޤ����������ѿ�򻲾Ȥ�����ˡ�ϸ��Ƥ��ޤ���
+
+���֥������ȤΥ��󥹥����ѿ�򻲾ȡ���������ؿ�ϰʲ�����
+��Ǥ���
+
+ VALUE rb_ivar_get(VALUE obj, ID id)
+ VALUE rb_ivar_set(VALUE obj, ID id, VALUE val)
+
+id��rb_intern()��������Τ�ȤäƤ��������
+
+���򻲾Ȥ���ˤϰʲ��δؿ��ȤäƤ��������
+
+ VALUE rb_const_get(VALUE obj, ID id)
+
+���򿷤��������뤿��ˤϡ�2.1.3 ������٤ǾҲ�
+��Ƥ���ؿ��ȤäƤ��������
+
+3��Ruby��C�Ȥξ���ͭ
+
+C����Ruby�δ֤Ǿ����ͭ������ˡ�ˤĤ��Ʋ��⤷�ޤ���
+
+3.1 C���黲�ȤǤ���Ruby�����
+
+�ʲ���Ruby������C�Υ�٥뤫�黲�ȤǤ��ޤ���
+
+ Qtrue
+ Qfalse
+
+ �����͡�Qfalse��C���Ǥ⵶�Ȥߤʤ���ޤ�(�Ĥޤ�0)��
+
+ Qnil
+
+ C��줫�鸫����nil�ס�
+
+3.2 C��Ruby�Ƕ�ͭ���������ѿ�
+
+C��Ruby������ѿ��Ȥäƾ����ͭ�Ǥ��ޤ�����ͭ�Ǥ������
+�ѿ�ˤϤ����Ĥ��μ��ब����ޤ������Τʤ��Ǥ�äȤ��ɤ��Ȥ�
+���Ȼפ���Τ�rb_define_variable()�Ǥ���
+
+ void rb_define_variable(const char *name, VALUE *var)
+
+���δؿ��Ruby��C�ȤǶ�ͭ��������ѿ�������ޤ����ѿ�̾��
+`$'�ǻϤޤ�ʤ����ˤϼ�ưŪ���ɲä���ޤ��������ѿ���ͤ���
+������ȼ�ưŪ��Ruby���б������ѿ���ͤ��Ѥ��ޤ���
+
+�ޤ�Ruby¦����Ϲ����Ǥ��ʤ��ѿ�⤢��ޤ�������read only��
+�ѿ�ϰʲ��δؿ�������ޤ���
+
+ void rb_define_readonly_variable(const char *name, VALUE *var)
+
+������ѿ��¾��hook��Ĥ�������ѿ�����Ǥ��ޤ���hook�դ�
+������ѿ�ϰʲ��δؿ���Ѥ��������ޤ���hook�դ�����ѿ��
+�ͤλ��Ȥ������hook�ǹԤ�ɬ�פ�����ޤ���
+
+ void rb_define_hooked_variable(const char *name, VALUE *var,
+ VALUE (*getter)(), void (*setter)())
+
+���δؿ��C�δؿ�ˤ�ä�hook�ΤĤ���줿����ѿ��������
+�����ѿ���Ȥ��줿���ˤϴؿ�getter�����ѿ���ͤ����åȤ���
+�����ˤϴؿ�setter���ƤФ�롥hook����ꤷ�ʤ�����getter��
+setter��0����ꤷ�ޤ���
+
+# getter��setter��0�ʤ��rb_define_variable()��Ʊ���ˤʤ롥
+
+���줫�顤C�δؿ�ˤ�äƼ¸������Ruby������ѿ��������
+�ؿ����ޤ���
+
+ void rb_define_virtual_variable(const char *name,
+ VALUE (*getter)(), void (*setter)())
+
+���δؿ�ˤ�ä������줿Ruby������ѿ���Ȥ��줿���ˤ�
+getter�����ѿ���ͤ����åȤ��줿���ˤ�setter���ƤФ�ޤ���
+
+getter��setter�λ��ͤϰʲ����̤�Ǥ���
+
+ (*getter)(ID id, void *data, struct global_entry* entry);
+ (*setter)(VALUE val, ID id, void *data, struct global_entry* entry);
+
+3.3 C�Υǡ�����Ruby���֥������Ȥˤ���
+
+C������������줿�ǡ���(��¤��)��Ruby�Υ��֥������ȤȤ���
+��갷��������礬���ꤨ�ޤ������Τ褦�ʾ��ˤϡ�Data�Ȥ���
+Ruby���֥������Ȥ�C�ι�¤��(�ؤΥݥ���)�򤯤�ळ�Ȥ�Ruby
+���֥������ȤȤ��Ƽ�갷����褦�ˤʤ�ޤ���
+
+Data���֥������Ȥ������ƹ�¤�Τ�Ruby���֥������Ȥ˥��ץ���
+�����뤿��ˤϡ��ʲ��Υޥ����Ȥ��ޤ���
+
+ Data_Wrap_Struct(klass, mark, free, ptr)
+
+���Υޥ��������ͤ������줿Data���֥������ȤǤ���
+
+klass�Ϥ���Data���֥������ȤΥ��饹�Ǥ���ptr�ϥ��ץ��벽����
+C�ι�¤�ΤؤΥݥ��󥿤Ǥ���mark�Ϥ��ι�¤�Τ�Ruby�Υ��֥���
+���Ȥؤλ��Ȥ�������˻Ȥ��ؿ�Ǥ������Τ褦�ʻ��Ȥ�ޤޤʤ�
+���ˤ�0����ꤷ�ޤ���
+
+# ���Τ褦�ʻ��Ȥϴ�����ޤ���
+
+free�Ϥ��ι�¤�Τ��⤦���פˤʤä����˸ƤФ��ؿ�Ǥ�������
+�ؿ�����١������쥯������ƤФ�ޤ���
+
+C�ι�¤�Τγ����Data���֥������Ȥ�����Ʊ���˹Ԥ��ޥ����
+���ưʲ��Τ�Τ��󶡤���Ƥ��ޤ���
+
+ Data_Make_Struct(klass, type, mark, free, sval)
+
+���Υޥ��������ͤ������줿Data���֥������ȤǤ���
+
+klass, mark, free��Data_Wrap_Struct��Ʊ��Ư���򤷤ޤ���type
+�ϳ����Ƥ�C��¤�Τη��Ǥ��������Ƥ�줿��¤�Τ��ѿ�sval
+����������ޤ��������ѿ�η��� (type*) �Ǥ���ɬ�פ�����ޤ���
+
+Data���֥������Ȥ���ݥ��󥿤���Ф��Τϰʲ��Υޥ�����Ѥ�
+�ޤ���
+
+ Data_Get_Struct(obj, type, sval)
+
+C�ι�¤�ΤؤΥݥ��󥿤��ѿ�sval����������ޤ���
+
+������Data�λȤ���Ϥ��ä�ʬ����ˤ����Τǡ�����������
+����򻲾Ȥ��Ƥ��������
+
+4������ - dbm�ѥå���������
+
+�����ޤǤ�����ǤȤꤢ������ĥ�饤�֥��Ϻ���Ϥ��Ǥ���
+Ruby��ext�ǥ��쥯�ȥ�ˤ��Ǥ˴ޤޤ�Ƥ���dbm�饤�֥������
+�����ʳ�Ū��������ޤ���
+
+(1) �ǥ��쥯�ȥ����
+
+ % mkdir ext/dbm
+
+Ruby 1.1�����Ǥ�դΥǥ��쥯�ȥ�ǥ���ʥߥå��饤�֥����
+�뤳�Ȥ��Ǥ���褦�ˤʤ�ޤ�����Ruby����Ū�˥�󥯤������
+��Ruby��Ÿ�������ǥ��쥯�ȥ�β���ext�ǥ��쥯�ȥ����˳�ĥ
+�饤�֥���ѤΥǥ��쥯�ȥ����ɬ�פ�����ޤ���̾���Ŭ���
+���ǹ����ޤ���
+
+(2) MANIFEST�ե��������
+
+ % cd ext/dbm
+ % touch MANIFEST
+
+��ĥ�饤�֥��Υǥ��쥯�ȥ�β��ˤ�MANIFEST�Ȥ����ե����뤬
+ɬ�פʤΤǡ��Ȥꤢ������Υե�������äƤ����ޤ�����Ǥ���
+�ե�����ˤ�ɬ�פʥե�����������뤳�Ȥˤʤ�ޤ���
+
+MANIFEST�Ȥ����ե�����ϡ���Ū��󥯤�make�λ��˥ǥ��쥯�ȥ�
+����ĥ�饤�֥���ޤ�Ǥ��뤫�ɤ���Ƚ�ꤹ�뤿��˻Ȥ����
+���ޤ�������ʥߥå��饤�֥�������ˤ�ɬ������ɬ�פǤ�
+����ޤ���
+
+(3) �߷פ���
+
+�ޤ�������ʤ�Ǥ����ɡ��ɤ�������ǽ��¸����뤫�ɤ����ޤ���
+�פ���ɬ�פ�����ޤ����ɤ�ʥ��饹��Ĥ��뤫�����Υ��饹�ˤ�
+�ɤ�ʥ᥽�åɤ����뤫�����饹���󶡤������ʤɤˤĤ����߷�
+���ޤ���
+
+(4) C�����ɤ��
+
+��ĥ�饤�֥�����ΤȤʤ�C���Υ�������񤭤ޤ���C���Υ���
+�����ҤȤĤλ��ˤϡ֥饤�֥��̾.c�פ���֤��ɤ��Ǥ��礦��C
+���Υ�������ʣ��ξ��ˤϵդˡ֥饤�֥��̾.c�פȤ����ե�
+����̾���򤱤�ɬ�פ�����ޤ������֥������ȥե�����ȥ⥸�塼
+�����������Ū���������֥饤�֥��̾.o�פȤ����ե�����
+�Ȥ����ͤ��뤫��Ǥ���
+
+Ruby�ϳ�ĥ�饤�֥�����ɤ�����ˡ�Init_�饤�֥��̾�פ�
+�����ؿ��ưŪ�˼¹Ԥ��ޤ���dbm�饤�֥��ξ���Init_dbm��
+�Ǥ������δؿ����ǥ��饹���⥸�塼�롤�᥽�åɡ����ʤɤ�
+����Ԥ��ޤ���dbm.c���������Ѥ��ޤ���
+
+--
+Init_dbm()
+{
+ /* DBM���饹�������� */
+ cDBM = rb_define_class("DBM", rb_cObject);
+ /* DBM��Enumerate�⥸�塼��򥤥󥯥롼�ɤ��� */
+ rb_include_module(cDBM, rb_mEnumerable);
+
+ /* DBM���饹�Υ��饹�᥽�å�open(): ����C������Ǽ�� */
+ rb_define_singleton_method(cDBM, "open", fdbm_s_open, -1);
+
+ /* DBM���饹�Υ᥽�å�close(): ���Ϥʤ� */
+ rb_define_method(cDBM, "close", fdbm_close, 0);
+ /* DBM���饹�Υ᥽�å�[]: ����1�� */
+ rb_define_method(cDBM, "[]", fdbm_fetch, 1);
+ :
+
+ /* DBM�ǡ������Ǽ���륤�󥹥����ѿ�̾�Τ����ID */
+ id_dbm = rb_intern("dbm");
+}
+--
+
+DBM�饤�֥���dbm�Υǡ������б����륪�֥������Ȥˤʤ�Ϥ���
+�����顤C�������dbm��Ruby������˼�����ɬ�פ�����ޤ���
+
+
+dbm.c�Ǥ�Data_Make_Struct��ʲ��Τ褦�˻ȤäƤ��ޤ���
+
+--
+struct dbmdata {
+ int di_size;
+ DBM *di_dbm;
+};
+
+
+obj = Data_Make_Struct(klass, struct dbmdata, 0, free_dbm, dbmp);
+--
+
+�����Ǥ�dbmstruct��¤�ΤؤΥݥ��󥿤�Data�˥��ץ��벽���Ƥ�
+�ޤ���DBM*��ľ�ܥ��ץ��벽���ʤ��Τ�close()�������ν�����
+���ƤΤ��ȤǤ���
+
+Data���֥������Ȥ���dbmstruct��¤�ΤΥݥ��󥿤���Ф�����
+�˰ʲ��Υޥ����ȤäƤ��ޤ���
+
+--
+#define GetDBM(obj, dbmp) {\
+ Data_Get_Struct(obj, struct dbmdata, dbmp);\
+ if (dbmp->di_dbm == 0) closed_dbm();\
+}
+--
+
+���ä�ʣ���ʥޥ���Ǥ������פ����dbmdata��¤�ΤΥݥ���
+�μ��Ф��ȡ�close����Ƥ��뤫�ɤ����Υ���å���ޤȤ�Ƥ�
+�����Ǥ���
+
+DBM���饹�ˤϤ�������᥽�åɤ�����ޤ�����ʬ�ह���3�����
+���μ����ޤ����ҤȤĤϰ��ο����Τ�Τǡ����
+���Ƥ�delete�᥽�åɤ�����ޤ���delete�᥽�åɤ����Ƥ���
+fdbm_delete()�Ϥ��Τ褦�ˤʤäƤ��ޤ���
+
+--
+static VALUE
+fdbm_delete(obj, keystr)
+ VALUE obj, keystr;
+{
+ :
+}
+--
+
+���ο����Υ����פ���1���self����2���ʹߤ��᥽�å�
+�ΰ��Ȥʤ�ޤ���
+
+���ο�����Τ�Τ�C������Ǽ���Τ�Ruby������Ǽ�
+���ΤȤ�����ޤ���dbm�饤�֥�����ǡ�C������Ǽ����
+��DBM�Υ��饹�᥽�åɤǤ���open()�Ǥ�����������Ƥ����
+��fdbm_s_open()�Ϥ����ʤäƤ��ޤ���
+
+--
+static VALUE
+fdbm_s_open(argc, argv, klass)
+ int argc;
+ VALUE *argv;
+ VALUE klass;
+{
+ :
+ if (rb_scan_args(argc, argv, "11", &file, &vmode) == 1) {
+ mode = 0666; /* default value */
+ }
+ :
+}
+--
+
+���Υ����פδؿ����1���Ϳ����줿���ο���2���Ϳ��
+��줿�������äƤ�������ˤʤ�ޤ���self����3���Ȥ���Ϳ
+�����ޤ���
+
+���������Ϳ����줿������Ϥ��뤿��δؿ�open()�Ǥ�Ȥ�
+��Ƥ���rb_scan_args()�Ǥ�����3���˻��ꤷ���ե����ޥåȤ�
+��������4�ѿ�ʹߤ˻��ꤷ���ѿ���ͤ��������Ƥ���ޤ�������
+�ե����ޥåȤϡ���1ʸ���ܤ���ά�Ǥ��ʤ����ο���2ʸ���ܤ�
+��ά�Ǥ�����ο���3ʸ���ܤ��б�������̵꤬�����ޤ�ΰ�
+����뤫�ɤ����򼨤�"*"�Ǥ���2ʸ���ܤ�3ʸ���ܤϾ�ά�Ǥ���
+����dbm.c����Ǥϡ��ե����ޥåȤ�"11"�Ǥ����顤���Ϻ���1��
+�ǡ�2�Ĥޤǵ���Ȥ�����̣�ˤʤ�ޤ�����ά����Ƥ������
+�ѿ���ͤ�nil(C���Υ�٥�Ǥ�Qnil)�ˤʤ�ޤ���
+
+Ruby������ǰ�������Τ�indexes������ޤ�������Ϥ�
+���Ǥ���
+
+--
+static VALUE
+fdbm_indexes(obj, args)
+ VALUE obj, args;
+{
+ :
+}
+--
+
+��1����self����2����Ruby������Ǥ���
+
+** ��ջ��
+
+Ruby�ȶ�ͭ�Ϥ��ʤ���Ruby�Υ��֥������Ȥ��Ǽ�����ǽ��Τ���
+C������ѿ�ϰʲ��δؿ��Ȥä�Ruby���󥿥ץ꥿���ѿ��¸��
+�򶵤��Ƥ����Ƥ���������Ǥʤ���GC�ǥȥ�֥�򵯤����ޤ���
+
+ void rb_global_variable(VALUE *var)
+
+(5) extconf.rb���Ѱդ���
+
+Makefile������ο�ˤʤ�extconf.rb�Ȥ����ե��������
+�ޤ���extconf.rb�ϥ饤�֥��Υ���ѥ����ɬ�פʾ��Υ����
+���ʤɤ�Ԥ����Ȥ���Ū�Ǥ����ޤ���
+
+ require 'mkmf'
+
+��extconf.rb����Ƭ���֤��ޤ���extconf.rb����Ǥϰʲ���Ruby��
+���Ȥ����Ȥ�����ޤ���
+
+ have_library(lib, func): �饤�֥���¸�ߥ���å�
+ have_func(func, header): �ؿ��¸�ߥ���å�
+ have_header(header): �إå�ե������¸�ߥ���å�
+ create_makefile(target): Makefile����
+
+�ʲ����ѿ��Ȥ����Ȥ��Ǥ��ޤ���
+
+ $CFLAGS: ����ѥ�������ɲ�Ū�˻��ꤹ��ե饰(-I�ʤ�)
+ $LDFLAGS: ��󥯻����ɲ�Ū�˻��ꤹ��ե饰(-L�ʤ�)
+
+�饤�֥��򥳥�ѥ��뤹���郎·�鷺�����Υ饤�֥��򥳥�
+�ѥ��뤷�ʤ����ˤ�create_makefile��ƤФʤ����Makefile���
+����줺������ѥ����Ԥ��ޤ���
+
+(6) depend���Ѱդ���
+
+�⤷���ǥ��쥯�ȥ��depend�Ȥ����ե����뤬¸�ߤ���С�
+Makefile����¸�ط������å����Ƥ���ޤ���
+
+ % gcc -MM *.c > depend
+
+�ʤɤǺ�뤳�Ȥ�����ޤ������ä�»��̵���Ǥ��礦��
+
+(7) MANIFEST�ե�����˥ե�����̾�������
+
+ % find * -type f -print > MANIFEST
+ % vi MANIFEST
+
+*.o, *~�ʤ���ɬ�פʥե�����ʳ���MANIFEST���ɲä��Ƥ����ޤ���
+make���ˤ�MANIFEST�����Ƥϻ��Ȥ��ޤ���Τǡ���ΤޤޤǤ�����
+�ϵ����ޤ��󤬡��ѥå������󥰤λ��˻��Ȥ��뤳�Ȥ�����Τȡ�
+ɬ�פʥե��������̤Ǥ���Τǡ��Ѱդ��Ƥ��������ɤ��Ǥ���
+����
+
+(8) Makefile��������
+
+Makefile��ºݤ������뤿��ˤ�
+
+ ruby extconf.rb
+
+�Ȥ��ޤ���extconf.rb�� require 'mkmf' �ιԤ��ʤ����ˤϥ��顼
+�ˤʤ�ޤ��Τǡ������ɲä���
+
+ ruby -r mkmf extconf.rb
+
+�Ȥ��Ƥ��������
+
+�ǥ��쥯�ȥ��ext�ʲ����Ѱդ������ˤ�Ruby��Τ�make�λ���
+��ưŪ��Makefile��������ޤ��Τǡ����Υ��ƥåפ����פǤ���
+
+(9) make����
+
+ưŪ��󥯥饤�֥�����������ˤϤ��ξ��make���Ƥ����
+����ɬ�פǤ���� make install �ǥ��󥹥ȡ��뤵��ޤ���
+
+ext�ʲ��˥ǥ��쥯�ȥ���Ѱդ������ϡ�Ruby�Υǥ��쥯�ȥ��
+make��¹Ԥ����Makefile��������make��ɬ�פˤ�äƤϤ��Υ�
+���塼���Ruby�ؤΥ�󥯤ޤǼ�ưŪ�˼¹Ԥ��Ƥ���ޤ���
+extconf.rb��񤭴�����ʤɤ���Makefile�κ�����ɬ�פʻ��Ϥ�
+��Ruby�ǥ��쥯�ȥ��make���Ƥ��������
+
+��ĥ�饤�֥���make install��Ruby�饤�֥��Υǥ��쥯�ȥ��
+���˥��ԡ�����ޤ����⤷��ĥ�饤�֥��ȶ�Ĵ���ƻȤ�Ruby�ǵ�
+�Ҥ��줿�ץ���ब���ꡤRuby�饤�֥����֤��������ˤϡ�
+��ĥ�饤�֥���ѤΥǥ��쥯�ȥ�β��� lib �Ȥ����ǥ��쥯�ȥ�
+���ꡤ������ ��ĥ�� .rb �Υե�������֤��Ƥ�����Ʊ���˥���
+���ȡ��뤵��ޤ���
+
+(10) �ǥХå�
+
+�ޤ����ǥХå����ʤ���ư���ʤ��Ǥ��礦�͡�ext/Setup�˥ǥ���
+���ȥ�̾��񤯤���Ū�˥�󥯤���ΤǥǥХå����Ȥ���褦�ˤ�
+��ޤ�������ʬ����ѥ��뤬�٤��ʤ�ޤ����ɡ�
+
+(11) �Ǥ�������
+
+��Ϥ��ä���Ȥ��ʤꡤ��������ʤꡤ���ʤꡤ����ͳ�ˤ�
+�Ȥ����������Ruby�κ�Ԥϳ�ĥ�饤�֥��˴ؤ��ư��ڤθ����
+��ĥ���ޤ���
+
+Appendix A. Ruby�Υ����������ɤ�ʬ��
+
+Ruby�Υ������Ϥ����Ĥ���ʬ�ह�뤳�Ȥ�����ޤ������Τ������
+���饤�֥�����ʬ�ϴ���Ū�˳�ĥ�饤�֥���Ʊ�������ˤʤ�
+�Ƥ��ޤ��������Υ������Ϻ��ޤǤ�����ǤۤȤ�����Ǥ����
+�פ��ޤ���
+
+Ruby������
+
+ class.c
+ error.c
+ eval.c
+ gc.c
+ object.c
+ parse.y
+ variable.c
+
+�桼�ƥ���ƥ��ؿ�
+
+ dln.c
+ regex.c
+ st.c
+ util.c
+
+Ruby���ޥ�ɤμ���
+
+ dmyext.c
+ inits.c
+ main.c
+ ruby.c
+ version.c
+
+���饹�饤�֥��
+
+ array.c
+ bignum.c
+ compar.c
+ dir.c
+ enum.c
+ file.c
+ hash.c
+ io.c
+ marshal.c
+ math.c
+ numeric.c
+ pack.c
+ prec.c
+ process.c
+ random.c
+ range.c
+ re.c
+ signal.c
+ sprintf.c
+ string.c
+ struct.c
+ time.c
+
+Appendix B. ��ĥ�Ѵؿ��ե����
+
+C��줫��Ruby�ε�ǽ�����Ѥ���API�ϰʲ����̤�Ǥ��롥
+
+** ��
+
+VALUE
+
+ Ruby���֥������Ȥ�ɽ�����뷿��ɬ�פ˱����ƥ��㥹�Ȥ����Ѥ��롥
+ �Ȥ߹��߷���ɽ������C�η���ruby.h�˵��Ҥ��Ƥ���R�ǻϤޤ빽¤
+ �ΤǤ��롥VALUE���򤳤��˥��㥹�Ȥ��뤿���R�ǻϤޤ빽¤��
+ ̾�������ʸ��ˤ���̾��Υޥ����Ѱդ���Ƥ��롥
+
+** �ѿ����
+
+Qnil
+
+ ���: nil���֥�������
+
+Qtrue
+
+ ���: true���֥�������(���Υǥե������)
+
+Qfalse
+
+ ���: false���֥�������
+
+** C�ǡ����Υ��ץ��벽
+
+Data_Wrap_Struct(VALUE klass, void (*mark)(), void (*free)(), void *sval)
+
+ C��Ǥ�դΥݥ��󥿤򥫥ץ��벽����Ruby���֥������Ȥ��֤�����
+ �Υݥ��󥿤�Ruby���饢����������ʤ��ʤä�����free�ǻ��ꤷ��
+ �ؿ�ƤФ�롥�ޤ������Υݥ��󥿤λؤ��ǡ�����¾��Ruby����
+ �������Ȥ�ؤ��Ƥ����硤mark�˻��ꤹ��ؿ�ǥޡ�������ɬ��
+ �����롥
+
+Data_Make_Struct(klass, type, mark, free, sval)
+
+ type���Υ����malloc�����ѿ�sval�����������塤����򥫥ץ�
+ �벽�����ǡ������֤��ޥ���
+
+Data_Get_Struct(data, type, sval)
+
+ data����type���Υݥ��󥿤���Ф��ѿ�sval����������ޥ���
+
+** ������å�
+
+TYPE(value)
+FIXNUM_P(value)
+NIL_P(value)
+void Check_Type(VALUE value, int type)
+void Check_SafeStr(VALUE value)
+
+** ���Ѵ�
+
+FIX2INT(value)
+INT2FIX(i)
+NUM2INT(value)
+INT2NUM(i)
+NUM2DBL(value)
+rb_float_new(f)
+STR2CSTR(value)
+rb_str_new2(s)
+
+** ���饹/�⥸�塼�����
+
+VALUE rb_define_class(const char *name, VALUE super)
+
+ super�Υ��֥��饹�Ȥ��ƿ�����Ruby���饹�������롥
+
+VALUE rb_define_class_under(VALUE module, const char *name, VALUE super)
+
+ super�Υ��֥��饹�Ȥ��ƿ�����Ruby���饹��������module��
+ ���Ȥ��������롥
+
+VALUE rb_define_module(const char *name)
+
+ ������Ruby�⥸�塼��������롥
+
+VALUE rb_define_module_under(VALUE module, const char *name, VALUE super)
+
+ ������Ruby�⥸�塼���������module�����Ȥ��������롥
+
+void rb_include_module(VALUE klass, VALUE module)
+
+ �⥸�塼��򥤥󥯥롼�ɤ��롥class�����Ǥ�module�򥤥�
+ �롼�ɤ��Ƥ�����ˤϲ��⤷�ʤ�(¿�ť��󥯥롼�ɤζػ�)��
+
+void rb_extend_object(VALUE object, VALUE module)
+
+ ���֥������Ȥ�⥸�塼��(��������Ƥ���᥽�å�)�dz�ĥ���롥
+
+** ����ѿ����
+
+void rb_define_variable(const char *name, VALUE *var)
+
+ Ruby��C�ȤǶ�ͭ���륰���Х��ѿ�������롥�ѿ�̾��`$'��
+ �Ϥޤ�ʤ����ˤϼ�ưŪ���ɲä���롥name�Ȥ���Ruby�μ��̻�
+ �Ȥ��Ƶ��ʤ�ʸ��(�㤨��` ')��ޤ���ˤ�Ruby�ץ���
+ �फ��ϸ����ʤ��ʤ롥
+
+void rb_define_readonly_variable(const char *name, VALUE *var)
+
+ Ruby��C�ȤǶ�ͭ����read only�Υ����Х��ѿ�������롥
+ read only�Ǥ��뤳�Ȱʳ���rb_define_variable()��Ʊ����
+
+void rb_define_virtual_variable(const char *name,
+ VALUE (*getter)(), void (*setter)())
+
+ �ؿ�ˤ�äƼ¸������Ruby�ѿ�������롥�ѿ���Ȥ��줿
+ ���ˤ�getter�����ѿ���ͤ����åȤ��줿���ˤ�setter���ƤФ�
+ �롥
+
+void rb_define_hooked_variable(const char *name, VALUE *var,
+ VALUE (*getter)(), void (*setter)())
+
+ �ؿ�ˤ�ä�hook�ΤĤ���줿�����Х��ѿ�������롥�ѿ�
+ �����Ȥ��줿���ˤ�getter�����ؿ���ͤ����åȤ��줿���ˤ�
+ setter���ƤФ�롥getter��setter��0����ꤷ�����ˤ�hook��
+ ���ꤷ�ʤ��Τ�Ʊ����ˤʤ롥
+
+void rb_global_variable(VALUE *var)
+
+ GC�Τ��ᡤRuby�ץ���फ��ϥ�����������ʤ���, Ruby����
+ �������Ȥ�ޤ�����ѿ��ޡ������롥
+
+** ���
+
+void rb_define_const(VALUE klass, const char *name, VALUE val)
+
+ ���������롥
+
+void rb_define_global_const(const char *name, VALUE val)
+
+ ������������롥
+
+ rb_define_const(rb_cObject, name, val)
+
+ ��Ʊ����̣��
+
+** �᥽�å����
+
+rb_define_method(VALUE klass, const char *name, VALUE (*func)(), int argc)
+
+ �᥽�åɤ������롥argc��self�����ο�argc��-1�λ�,
+ �ؿ�ˤϰ��ο�(self��ޤޤʤ�)����1���, �����������2
+ ���Ȥ�������Ϳ������(��3����self)��argc��-2�λ�,
+ ��1���self, ��2���args(args�ϰ���ޤ�Ruby������)��
+ ���������Ϳ�����롥
+
+rb_define_private_method(VALUE klass, const char *name, VALUE (*func)(), int argc)
+
+ private�᥽�åɤ������롥����rb_define_method()��Ʊ����
+
+rb_define_singleton_method(VALUE klass, const char *name, VALUE (*func)(), int argc)
+
+ �ðۥ᥽�åɤ������롥����rb_define_method()��Ʊ����
+
+rb_scan_args(int argc, VALUE *argv, const char *fmt, ...)
+
+ argc, argv�����Ϳ����줿����ʬ�򤹤롥fmt��ɬ�ܰ��ο�,
+ �ղð��ο�, �Ĥ�ΰ����뤫����ꤹ��ʸ�����, "���
+ ���*"�Ȥ�������Ǥ��롥 2 ���ܤο���"*"�Ϥ��줾���ά��
+ ǽ�Ǥ��롥ɬ�ܰ���Ĥ�ʤ�����0����ꤹ�롥��3����
+ �ߤ��ѿ�ؤΥݥ��󥿤�, ��������Ǥ������ѿ�˳�Ǽ����롥
+ �ղð����б�������Ϳ�����Ƥ��ʤ������ѿ��Qnil��
+ ��������롥
+
+** Ruby�᥽�åɸƤӽФ�
+
+VALUE rb_funcall(VALUE recv, ID mid, int narg, ...)
+
+ �᥽�åɸƤӽФ���ʸ���󤫤�mid����뤿��ˤ�rb_intern()��
+ �Ȥ���
+
+VALUE rb_funcall2(VALUE recv, ID mid, int argc, VALUE *argv)
+
+ �᥽�åɸƤӽФ�������argc, argv������Ϥ���
+
+VALUE rb_eval_string(const char *str)
+
+ ʸ�����Ruby������ץȤȤ��ƥ���ѥ��롦�¹Ԥ��롥
+
+ID rb_intern(const char *name)
+
+ ʸ������б�����ID���֤���
+
+char *rb_id2name(ID id)
+
+ ID���б�����ʸ������֤�(�ǥХå���)��
+
+char *rb_class2name(VALUE klass)
+
+ ���饹��̾����֤�(�ǥХå���)�����饹��̾����ʤ����ˤ�,
+ ������̤ä�̾����ĥ��饹��̾����֤���
+
+int rb_respond_to(VALUE obj, ID id)
+
+ obj��id�Ǽ������᥽�åɤ��Ĥ��ɤ������֤���
+
+** ���󥹥����ѿ�
+
+VALUE rb_iv_get(VALUE obj, const char *name)
+
+ obj�Υ��󥹥����ѿ���ͤ���롥`@'�ǻϤޤ�ʤ����󥹥���
+ ���ѿ�� Ruby�ץ���फ�饢�������Ǥ��ʤ��ֱ��줿�ץ���
+ �������ѿ�ˤʤ롥������ʸ���̾����ĥ��饹(�ޤ���
+ �⥸�塼��)�Υ��󥹥����ѿ�Ȥ��Ƽ����Ƥ��롥
+
+VALUE rb_iv_set(VALUE obj, const char *name, VALUE val)
+
+ obj�Υ��󥹥����ѿ��val�˥��åȤ��롥
+
+** ��湽¤
+
+VALUE rb_iterate(VALUE (*func1)(), VALUE arg1, VALUE (*func2)(), VALUE arg2)
+
+ func2��֥�å��Ȥ������ꤷ, func1�򥤥ƥ졼���Ȥ��ƸƤ֡�
+ func1�ˤ� arg1�����Ȥ����Ϥ���, func2�ˤ���1���˥��ƥ졼
+ ������Ϳ����줿��, ��2����arg2���Ϥ���롥
+
+VALUE rb_yield(VALUE val)
+
+ val���ͤȤ��ƥ��ƥ졼���֥�å���ƤӽФ���
+
+VALUE rb_rescue(VALUE (*func1)(), VALUE arg1, VALUE (*func2)(), VALUE arg2)
+
+ �ؿ�func1��arg1����˸ƤӽФ���func1�μ¹�����㳰��ȯ�
+ �������ˤ� func2��arg2����Ȥ��ƸƤ֡�����ͤ��㳰��ȯ�
+ ���ʤ��ä�����func1�������, �㳰��ȯ��������ˤ�func2����
+ ���ͤǤ��롥
+
+VALUE rb_ensure(VALUE (*func1)(), VALUE arg1, void (*func2)(), VALUE arg2)
+
+ �ؿ�func1��arg1����Ȥ��Ƽ¹Ԥ�, �¹Խ�λ��(���Ȥ��㳰��
+ ȯ����Ƥ�) func2��arg2����Ȥ��Ƽ¹Ԥ��롥����ͤ�func1
+ ������ͤǤ���(�㳰��ȯ������������ʤ�)��
+
+** �㳰�����顼
+
+void rb_warning(const char *fmt, ...)
+
+ rb_verbose����ɸ�२�顼���Ϥ˷ٹ�����ɽ�����롥����
+ printf()��Ʊ����
+
+void rb_raise(rb_eRuntimeError, const char *fmt, ...)
+
+ RuntimeError�㳰��ȯ������롥����printf()��Ʊ����
+
+void rb_raise(VALUE exception, const char *fmt, ...)
+
+ exception�ǻ��ꤷ���㳰��ȯ������롥fmt�ʲ��ΰ���
+ printf()��Ʊ����
+
+void rb_fatal(const char *fmt, ...)
+
+ ��̿Ū�㳰��ȯ������롥�̾���㳰����ϹԤʤ�줺, ���󥿡�
+ �ץ꥿����λ����(�����ensure�ǻ��ꤵ�줿�����ɤϽ�λ���
+ �¹Ԥ����)��
+
+void rb_bug(const char *fmt, ...)
+
+ ���󥿡��ץ꥿�ʤɥץ����ΥХ��Ǥ���ȯ�����Ϥ��Τʤ�
+ ��λ��Ƥ֡����󥿡��ץ꥿�ϥ������פ�ľ��˽�λ���롥
+ �㳰����ϰ��ڹԤʤ��ʤ���
+
+** Ruby�ν��¹�
+
+Ruby�򥢥ץꥱ����������������ˤϰʲ��Υ��󥿥ե�����
+��Ȥ����̾�γ�ĥ�饤�֥��ˤ�ɬ�פʤ���
+
+void ruby_init()
+
+ Ruby���󥿥ץ꥿�ν���Ԥʤ���
+
+void ruby_options(int argc, char **argv)
+
+ Ruby���󥿥ץ꥿�Υ��ޥ�ɥ饤����ν����Ԥʤ���
+
+void ruby_run()
+
+ Ruby���󥿥ץ꥿��¹Ԥ��롥
+
+void ruby_script(char *name)
+
+ Ruby�Υ�����ץ�̾($0)�����ꤹ�롥
+
+
+Appendix B. extconf.rb�ǻȤ���ؿ��
+
+extconf.rb����Ǥ����Ѳ�ǽ�ʥ���ѥ��������å��δؿ�ϰ�
+�����̤�Ǥ��롥
+
+have_library(lib, func)
+
+ �ؿ�func�������Ƥ���饤�֥��lib��¸�ߤ����å����롥
+ �饤�֥�꤬¸�ߤ������true���֤���
+
+find_library(lib, func, path...)
+
+ �ؿ�func�������Ƥ���饤�֥��lib��¸�ߤ� -Lpath ���ɲ�
+ ���ʤ������å����롥�饤�֥�꤬���դ��ä�����true���֤���
+
+have_func(func, header)
+
+ �إå�ե�����header�򥤥󥯥롼�ɤ��ƴؿ�func��¸�ߤ�����
+ �����롥func��ɸ��Ǥϥ�󥯤���ʤ��饤�֥����Τ�ΤǤ�
+ ����ˤ����have_library�Ǥ��Υ饤�֥������å����Ƥ���
+ ��ؿ�¸�ߤ����true���֤���
+
+have_header(header)
+
+ �إå�ե������¸�ߤ����å����롥�إå�ե����뤬¸�ߤ�
+ ���true���֤���
+
+create_makefile(target)
+
+ ��ĥ�饤�֥���Ѥ�Makefile�������롥���δؿ��ƤФʤ���
+ �Ф��Υ饤�֥��ϥ���ѥ��뤵��ʤ���target�ϥ⥸�塼��̾
+ ��ɽ����
+
+with_config(withval[, default=nil])
+
+ ���ޥ�ɥ饤����--with-<withval>�ǻ��ꤵ�줿���ץ�����ͤ���롥
+
+dir_config(target[, default_dir])
+dir_config(target[, default_include, default_lib])
+
+ ���ޥ�ɥ饤����--with-<target>-dir, --with-<target>-include,
+ --with-<target>-lib�Τ����줫�ǻ��ꤵ���ǥ��쥯�ȥ��
+ $CFLAGS �� $LDFLAGS ���ɲä��롥--with-<target>-dir=/path��
+ --with-<target>-include=/path/include --with-<target>-lib=/path/lib
+ �����Ǥ��롥�ɲä��줿 include �ǥ��쥯�ȥ�� lib �ǥ��쥯�ȥ��
+ ������֤��� ([include_dir, lib_dir])
+
+/*
+ * Local variables:
+ * fill-column: 60
+ * end:
+ */
View
153 README.ja
@@ -0,0 +1,153 @@
+* Ruby�Ȥ�
+
+Ruby�ϥ���ץ뤫�Ķ��Ϥʥ��֥������Ȼظ�������ץȸ��Ǥ���
+Ruby�Ϻǽ餫����ʥ��֥������Ȼظ����Ȥ����߷פ���Ƥ���
+�����顤���֥������Ȼظ��ץ���ߥ󥰤��ڤ˹Ԥ�������
+����������̾�μ�³�����Υץ���ߥ󥰤��ǽ�Ǥ���
+
+Ruby�ϥƥ����Ƚ���ط���ǽ�Ϥʤɤ�ͥ�졤Perl��Ʊ�����餤����
+�Ǥ�������˥���ץ��ʸˡ�ȡ��㳰����䥤�ƥ졼���ʤɤε���
+�ˤ�äơ����ʬ����䤹���ץ���ߥ󥰤�����ޤ���
+
+
+* Ruby����Ĺ
+
+ + ����ץ��ʸˡ
+ + ���̤Υ��֥������Ȼظ���ǽ(���饹���᥽�åɥ�����ʤ�)
+ + �ü�ʥ��֥������Ȼظ���ǽ(Mixin, �ðۥ᥽�åɤʤ�)
+ + �黻�ҥ����С�����
+ + �㳰����ǽ
+ + ���ƥ졼���ȥ�������
+ + �����١������쥯��
+ + ����ʥߥå����ǥ��� (�������ƥ����ˤ��)
+ + �ܿ�����⤤��¿����UNIX���ư������Ǥʤ���DOS��Windows��
+ Mac��BeOS�ʤɤξ�Ǥ�ư��
+
+
+* ����ˡ
+
+** ftp��
+
+�ʲ��ξ��ˤ����Ƥ���ޤ���
+
+ ftp://ftp.ruby-lang.org/pub/ruby/
+
+** CVS��
+
+ $ cvs -d :pserver:anonymous@cvs.ruby-lang.org:/src login
+ (Logging in to anonymous@cvs.ruby-lang.org)
+ CVS password: anonymous
+ $ cvs -z4 -d :pserver:anonymous@cvs.ruby-lang.org:src checkout ruby
+
+
+* �ۡ���ڡ���
+
+Ruby�Υۡ���ڡ�����URL��
+
+ http://www.ruby-lang.org/
+
+�Ǥ���
+
+
+* �᡼��󥰥ꥹ��
+
+Ruby�Υ᡼��󥰥ꥹ�Ȥ�����ޤ������ô�˾�����
+
+ ruby-list-ctl@ruby-lang.org
+
+�ޤ���ʸ��
+
+ subscribe YourFirstName YourFamilyName
+
+�Ƚ񤤤���äƲ�������
+
+Ruby��ȯ�Ը����᡼��󥰥ꥹ�Ȥ⤢��ޤ��������Ǥ�ruby�Υ�
+��������λ��ͳ�ĥ�ʤɼ���������ˤĤ��Ƶ������Ƥ��ޤ���
+���ô�˾�����
+
+ ruby-dev-ctl@ruby-lang.org
+
+�ޤ�ruby-list��Ʊ�ͤ���ˡ�ǥ᡼�뤷�Ƥ��������
+
+Ruby��ĥ�⥸�塼��ˤĤ����ä��礦ruby-ext�᡼��󥰥ꥹ�Ȥ�
+��شط�������ˤĤ����ä��礦ruby-math�᡼��󥰥ꥹ�Ȥ�
+�Ѹ���ä��礦ruby-talk�᡼��󥰥ꥹ�Ȥ⤢��ޤ���������ˡ
+�Ϥɤ��Ʊ���Ǥ���
+
+
+* ����ѥ��롦���󥹥ȡ���
+
+�ʲ��μ��ǹԤäƤ��������
+
+ 1. �⤷configure�ե����뤬���Ĥ���ʤ����⤷����
+ configure.in���Ť��褦�ʤ顢autoconf��¹Ԥ���
+ ������configure��������
+
+ 2. configure��¹Ԥ���Makefile�ʤɤ�������
+
+ 3. (ɬ�פʤ��)defines.h���Խ�����
+
+ ¿ʬ��ɬ��̵���Ȼפ��ޤ���
+
+ 4. (ɬ�פʤ��)ext/Setup����Ū�˥�󥯤����ĥ�⥸�塼���
+ ���ꤹ��
+
+ ext/Setup�˵��Ҥ����⥸�塼�����Ū�˥�󥯤���ޤ���
+
+ ����ʥߥå����ǥ��󥰤򥵥ݡ��Ȥ��Ƥ��ʤ��������ƥ�
+ ���Ǥ�Setup��1���ܤΡ�option nodynamic�פȤ����ԤΥ�
+ ���Ȥ򳰤�ɬ�פ�����ޤ����ޤ������Υ������ƥ�����
+ ��ĥ�⥸�塼������Ѥ��뤿��ˤϡ����餫������Ū�˥��
+ �����Ƥ���ɬ�פ�����ޤ���
+
+ 5. make��¹Ԥ��ƥ���ѥ��뤹��
+
+ 6. make test�ǥƥ��Ȥ�Ԥ���
+
+ ��test succeeded�פ�ɽ�����������Ǥ���������ƥ���
+ �����Ƥⴰ�����ݾڤ���Ƥ�����ǤϤ���ޤ���
+
+ 7. make install
+
+ root�Ǻ�Ȥ���ɬ�פ����뤫�⤷��ޤ���
+
+�⤷������ѥ�����˥��顼��ȯ��������ˤϥ��顼�Υ��ȥ�
+����OS�μ����ޤ�Ǥ������ܤ�����ݡ��Ȥ��Ԥ���äƤ�
+������¾����Τ���ˤ�ʤ�ޤ���
+
+
+* �ܿ�
+
+UNIX�Ǥ����configure���ۤȤ�ɤκ��ۤ�ۼ�Ƥ����Ϥ���
+�������פ�̸���Ȥ������ä����(����˰㤤�ʤ�)����Ԥˤ���
+���Ȥ��ݡ��Ȥ���С����Ǥ��뤫���Τ�ޤ���
+
+�������ƥ����ˤ�äȤ��¸����Τ�GC��Ǥ���Ruby��GC���о�
+�Υ������ƥ���㤬setjmp()�ˤ�ä���ƤΥ쥸������ jmp_buf��
+��Ǽ���뤳�Ȥȡ�jmp_buf�ȥ����å���32bit���饤����Ȥ����
+���뤳�Ȥ��ꤷ�Ƥ��ޤ����ä���Ԥ��Ω���ʤ������б�����
+��˺���Ǥ��礦����Ԥβ������Ū��ñ�ǡ�gc.c�ǥ����å���
+�ޡ������Ƥ�����ʬ�˥��饤����ȤΥХ��ȿ������餷�ƥޡ�
+�����륳���ɤ��ɲä������ǺѤߤޤ�����defined(THINK_C)�פ�
+����Ƥ�����ʬ�򻲹ͤˤ��Ƥ������
+
+# �ºݤˤ�Ruby��Think C�Ǥϥ���ѥ���Ǥ��ޤ���
+
+�쥸����������ɥ�����CPU�Ǥϡ��쥸����������ɥ��򥹥���
+���˥ե�å��夹�륢����֥饳���ɤ��ɲä���ɬ�פ����뤫����
+��ޤ���
+
+
+* ���۾��
+
+COPYING.ja�ե�����򻲾Ȥ��Ƥ��������
+
+
+* ���
+
+�����ȡ��Х���ݡ��Ȥ���¾�� matz@zetabits.com �ޤǡ�
+-------------------------------------------------------
+created at: Thu Aug 3 11:57:36 JST 1995
+Local variables:
+mode: indented-text
+end:
View
81 doc/forwardable.rd.ja
@@ -0,0 +1,81 @@
+ -- forwatable.rb
+ $Release Version: 1.1 $
+ $Revision$
+ $Date$
+
+=begin
+= Forwardable
+
+���饹���Ф��᥽�åɤΰѾ�ǽ�������ޤ�.
+
+== �Ȥ���
+
+���饹���Ф���extend���ƻȤ��ޤ�.
+
+ class Foo
+ extend Forwardable
+
+ def_delegators("@out", "printf", "print")
+ def_delegators(:@in, :gets)
+ def_delegator(:@contents, :[], "content_at")
+ end
+ f = Foo.new
+ f.printf ...
+ f.gets
+ f.content_at(1)
+
+== �᥽�å�
+
+--- Forwardable#def_instance_delegators(accessor, *methods)
+
+ ((|methods|))���Ϥ��줿�᥽�åɤΥꥹ�Ȥ�((|accessor��|))�Ѿ��
+ �褦�ˤ��ޤ�.
+
+--- Forwardable#def_instance_delegator(accessor, method, ali = method)
+
+ ((||method|))���Ϥ��줿�᥽�åɤ�((|accessor|))�˰Ѿ��褦�ˤ�
+ �ޤ�. ((|ali|))�����Ȥ����Ϥ��줿�Ȥ���, �᥽�å�((|ali|))���Ƥ�
+ �줿�Ȥ��ˤ�, ((|accessor|))���Ф�((|method|))��ƤӽФ��ޤ�.
+
+--- Forwardable#def_delegators(accessor, *methods)
+
+ ((|Forwardable#def_instance_delegators|))����̾�Ǥ�.
+
+--- Forwardable#def_delegator(accessor, method, ali = method)
+
+ ((|Forwardable#def_instance_delegator|))����̾�Ǥ�.
+
+= SingleForwardable
+
+���֥������Ȥ��Ф�, �᥽�åɤΰѾ�ǽ�������ޤ�.
+
+== �Ȥ���
+
+���֥������Ȥ��Ф���((|extend|))���ƻȤ��ޤ�.
+
+ g = Goo.new
+ g.extend SingleForwardable
+ g.def_delegator("@out", :puts)
+ g.puts ...
+
+== �᥽�å�
+
+--- SingleForwardable#def_singleton_delegators(accessor, *methods)
+
+ ((|methods|))���Ϥ��줿�᥽�åɤΥꥹ�Ȥ�((|accessor|))�˰Ѿ��
+ �褦�ˤ��ޤ�.
+
+--- SingleForwardable#def_singleton_delegator(accessor, method, ali = method)
+
+ ((|method|))���Ϥ��줿�᥽�åɤ�((|accessor|))�˰Ѿ��褦�ˤ���
+ ��. ((|ali|))�����Ȥ����Ϥ��줿�Ȥ���, �᥽�å�((|ali|))���ƤФ�
+ ���Ȥ��ˤ�, ((|accessor|))���Ф�((|method|))��ƤӽФ��ޤ�.
+
+--- SingleForwardable#def_delegators(accessor, *methods)
+
+ ((|SingleForwardable#def_singleton_delegators|))����̾�Ǥ�.
+
+--- SingleForwardable#def_delegator(accessor, method, ali = method)
+
+ ((|SingleForwardable#def_singleton_delegator|))����̾�Ǥ�.
+=end
View
185 doc/irb/irb-tools.rd.ja
@@ -0,0 +1,185 @@
+irb��Ϣ���ޤ����ޥ�ɤȥ饤�֥��
+ $Release Version: 0.7.1 $
+ $Revision$
+ $Date$
+ by Keiju ISHITSUKA(Nihon Rational Co.,Ltd.)
+
+=begin
+
+:���ޥ��:
+* rtags -- ruby tags command
+
+:�ؿ�饤�֥��:
+* xmp -- irb version of gotoken xmp-function
+
+:���饹�饤�֥��:
+* frame.rb -- frame tracer
+* completion.rb -- irb completor
+
+= rtags
+
+rtags��emacs�ڤ�vi�Ѥ�, TAG�ե������Ĥ��륳�ޥ�ɤǤ�.
+
+== �Ȥ���
+
+ rtags [-vi] file....
+
+�����ȥǥ��쥯�ȥ��emacs�Ѥ�TAGS�ե����뤬�Ǥ��ޤ�. -vi���ץ�����
+�Ĥ������ˤ�vi�Ѥ�tags�ե�����������ޤ�.
+
+emacs�ξ��, �̾��etags.el�����Τޤ޻Ȥ��ޤ�. �����ǽ�ʤΤ�,
+
+* ���饹
+* �᥽�å�
+* �ðۥ᥽�å�
+* alias
+* attr�������줿��������(�ѥ�᡼��������ܥ뤫ʸ�����ƥ��˸¤�)
+* attr_XXX�������줿��������(�ѥ�᡼��������ܥ뤫ʸ�����ƥ��˸¤�)
+
+�Ǥ�.
+
+C�ʤɤǻȤäƤ���ΤȰ㤦�Τ�, ����ץ꡼�����˴ؤ�����ʬ��,
+
+�ؿ�̾��,
+
+ �ؿ�̾(
+
+���饹��,
+
+ ::���饹̾::....::���饹̾
+
+�᥽�åɤ�,
+
+ ::���饹̾::....::���饹̾#�᥽�å�̾
+
+�ðۥ᥽�å�(���饹�᥽�å�)��
+
+ ::���饹̾::....::���饹̾.�᥽�å�̾
+
+�ǥ���ץ꡼������Ԥʤ��Ȥ���Ǥ�.
+
+= xmp.rb
+
+���Ȥ���xmp�ξ�̸ߴ��С������Ǥ�. ����, ���˽Ť��ΤǤ��Ȥ���xmp��
+���б��Ǥ��ʤ�����, ���Ѥ�����ɤ��Ǥ��礦.
+
+== �Ȥ���
+
+=== �ؿ�Ȥ��ƻȤ�.
+
+ require "irb/xmp"
+ xmp <<END
+ foo = 1
+ foo
+ END
+ ---
+ foo = 1
+ ==>1
+ foo
+ ==>1
+
+=== XMP���󥹥��󥹤��Ѥ���.
+
+���ξ���, XMP������ƥ����Ⱦ�����ĤΤ�, �ѿ���ͤʤɤ��ݻ�Ƥ�
+�ޤ�.
+
+ require "irb/xmp"
+ xmp = XMP.new
+ xmp.puts <<END
+ foo = 1
+ foo
+ END
+ xmp.puts <<END
+ foo
+ END
+ ===
+ foo = 1
+ ==>1
+ foo
+ ==>1
+ foo
+ ==>1
+
+== ����ƥ����Ȥ˴ؤ���
+
+XMP�᥽�åɷ��Υ���ƥ����Ȥ�, �ƤӽФ���Υ���ƥ����Ȥ�ɾ�����ޤ�.
+���Ū�˥���ƥ����Ȥ���ꤹ��Ȥ��Υ���ƥ����Ȥ�ɾ����ޤ�.
+
+��:
+
+ xmp "foo", an_binding
+
+:��:
+�ޥ�����åɤˤ��б����Ƥ��ޤ���.
+
+= frame.rb
+���߼¹���Υե졼�������갷������Υ��饹�Ǥ�.
+
+* IRB::Frame.top(n = 0)
+ �夫��n���ܤΥ���ƥ����Ȥ���Ф��ޤ�. n��0���Ǿ�̤ˤʤ�ޤ�.
+* IRB::Frame.bottom(n = 0)
+ ������n���ܤΥ���ƥ����Ȥ���Ф��ޤ�. n��0���Dz��̤ˤʤ�ޤ�.
+* IRB::Frame.sender
+ �����ˤʤäƤ��륪�֥������Ȥ���Ф��ޤ�. �����Ȥ�, ���Υ᥽��
+ �ɤ�ƤӽФ���¦��self�Τ��ȤǤ�.
+
+:��:
+set_trace_func���Ѥ���Ruby�μ¹Ԥ�ȥ졼�����Ƥ��ޤ�. �ޥ�����åɤ�
+���б����Ƥ��ޤ���.
+
+= completion.rb
+irb��completion��ǽ���󶡤����ΤǤ�.
+
+== �Ȥ���
+
+ % irb -r irb/completion
+
+�Ȥ��뤫, ~/.irbrc ���
+
+ require "irb/completion"
+
+������Ƥ������. irb�¹���� require "irb/completion" ���Ƥ�褤�Ǥ�.
+
+irb�¹���� (TAB) �򲡤��ȥ���ץ졼����󤷤ޤ�.
+
+�ȥåץ�٥��(TAB)�򲡤��Ȥ��٤Ƥι�ʸ����, ���饹, �᥽�åɤθ��䤬��
+�ޤ�. ���䤬ͣ��ʤ�д�����䴰���ޤ�.
+
+ irb(main):001:0> in
+ in inspect instance_eval
+ include install_alias_method instance_of?
+ initialize install_aliases instance_variables
+ irb(main):001:0> inspect
+ "main"
+ irb(main):002:0> foo = Object.new
+ #<Object:0x4027146c>
+
+ ((|�ѿ�̾.|))�θ��(TAB)�򲡤���, ���Υ��֥������ȤΥ᥽�åɰ���Ǥ�
+ ��.
+
+ irb(main):003:0> foo.
+ foo.== foo.frozen? foo.protected_methods
+ foo.=== foo.hash foo.public_methods
+ foo.=~ foo.id foo.respond_to?
+ foo.__id__ foo.inspect foo.send
+ foo.__send__ foo.instance_eval foo.singleton_methods
+ foo.class foo.instance_of? foo.taint
+ foo.clone foo.instance_variables foo.tainted?
+ foo.display foo.is_a? foo.to_a
+ foo.dup foo.kind_of? foo.to_s
+ foo.eql? foo.method foo.type
+ foo.equal? foo.methods foo.untaint
+ foo.extend foo.nil?
+ foo.freeze foo.private_methods
+
+=end
+
+% Begin Emacs Environment
+% Local Variables:
+% mode: text
+% comment-column: 0
+% comment-start: "%"
+% comment-end: "\n"
+% End:
+%
+
View
391 doc/irb/irb.rd.ja
@@ -0,0 +1,391 @@
+irb -- interactive ruby
+ $Release Version: 0.6 $
+ $Revision$
+ $Date$
+ by Keiju ISHITSUKA(keiju@ishitsuka.com)
+=begin
+= irb�Ȥ�?
+
+irb��interactive ruby��ά�Ǥ�. ruby�μ���ɸ�����Ϥ����ñ������/�¹Ԥ�
+�뤿��Υġ���Ǥ�.
+
+= ��ư
+
+ % ruby -r irb -e0
+ % irb
+
+�Τ����줫�ǹԤʤ��ޤ�. ��Ԥξ��irb�ؤΥ��ץ��������, �ʲ��Τ褦��
+�ʤ�ޤ�.
+
+ % ruby -r irb -e0 -- -v
+
+= �Ȥ���
+
+irb�λȤ����, Ruby�����ΤäƤ���Ф����äƴ�ñ�Ǥ�. ����Ū�ˤ� irb ��
+�������ޥ�ɤ�¹Ԥ������Ǥ�. irb��¹Ԥ����, �ʲ��Τ褦�ʥץ���
+�Ȥ�ɽ��Ƥ��ޤ�. ���, ruby�μ�������Ʋ�����. �������뤷������Ǽ¹�
+����ޤ�.
+
+ dim% irb
+ irb(main):001:0> 1+2
+ 3
+ irb(main):002:0> class Foo
+ irb(main):003:1> def foo
+ irb(main):004:2> print 1
+ irb(main):005:2> end
+ irb(main):006:1> end
+ nil
+ irb(main):007:0>
+
+�ޤ�, irb��Readline�⥸�塼��ˤ��б����Ƥ��ޤ�. Readline�⥸�塼�뤬
+���󥹥ȡ��뤵��Ƥ�����ˤ�, �����Ȥ��Τ�ɸ���ư��ˤʤ�ޤ�.
+
+= ���ޥ�ɥ��ץ����
+
+ irb.rb [options] file_name opts
+ options:
+ -f ~/.irbrc ���ɤ߹��ޤʤ�.
+ -m bc�⡼��(ʬ��, ����η׻����Ǥ���)
+ -d $DEBUG ��true�ˤ���(ruby -d ��Ʊ��)
+ -r load-module ruby -r ��Ʊ��.
+ --inspect ��̽��Ϥ�inspect���Ѥ���(bc�⡼�ɰʳ��ϥǥե����).
+ --noinspect ��̽��Ϥ�inspect���Ѥ��ʤ�.
+ --readline readline�饤�֥������Ѥ���.
+ --noreadline readline�饤�֥������Ѥ��ʤ�. �ǥե���Ȥ�ư���,
+ inf-reuby-mode�ʳ���readline�饤�֥������Ѥ��褦
+ �Ȥ���.
+ --prompt prompt-mode
+ --prompt-mode prompt-mode
+ �ץ��ץȥ⡼�ɤ����ؤ��ޤ�. ����������Ƥ����
+ ���ץȥ⡼�ɤ�, default, simple, xmp, inf-ruby��
+ �Ѱդ���Ƥ��ޤ�. �ǥե���Ȥ�default�ץ��ץȥ⡼
+ �ɤˤʤäƤ��ޤ�.
+
+ --inf-ruby-mode emacs��inf-ruby-mode�ѤΥץ��ץ�ɽ����Ԥʤ�. ��
+ �˻��꤬�ʤ��¤�, readline�饤�֥��ϻȤ�ʤ��ʤ�.
+ --simple-prompt
+ ���˥���ץ�ʥץ��ץȤ��Ѥ���⡼�ɤǤ�.
+ --noprompt �ץ��ץ�ɽ����Ԥʤ�ʤ�.
+ --tracer ���ޥ�ɼ¹Ի��˥ȥ졼����Ԥʤ�.
+ --back-trace-limit n
+ �Хå��ȥ졼��ɽ����Хå��ȥ졼����Ƭ���� n, ���
+ ����n����Ԥʤ�. �ǥե���Ȥ�16
+ --irb_debug n irb�ΥǥХå��ǥХå���٥��n�����ꤹ��(���Ѥ���
+ ����̵��Ǥ��礦).
+ -v, --version irb�ΥС�������ɽ������
+
+= ����ե�����졼�����
+
+irb��ư����``~/.irbrc''���ɤ߹��ߤޤ�. �⤷¸�ߤ��ʤ�����,
+``.irbrc'', ``irb.rc'', ``_irbrc'', ``$irbrc''�ν��load���ߤޤ�.
+
+���ץ��������ꤹ�������, �ʲ��Υ��ޥ�ɤǤ�ǥե���Ȥ�ư�������
+�Ǥ��ޤ�.
+
+ IRB.conf[:IRB_NAME]="irb"
+ IRB.conf[:MATH_MODE]=false
+ IRB.conf[:USE_TRACER]=false
+ IRB.conf[:USE_LOADER]=false
+ IRB.conf[:IGNORE_SIGINT]=true
+ IRB.conf[:IGNORE_EOF]=false
+ IRB.conf[:INSPECT_MODE]=nil
+ IRB.conf[:IRB_RC] = nil
+ IRB.conf[:BACK_TRACE_LIMIT]=16
+ IRB.conf[:USE_LOADER] = false
+ IRB.conf[:USE_READLINE] = nil
+ IRB.conf[:USE_TRACER] = false
+ IRB.conf[:IGNORE_SIGINT] = true
+ IRB.conf[:IGNORE_EOF] = false
+ IRB.conf[:PROMPT_MODE] = :DEFALUT
+ IRB.conf[:PROMPT] = {...}
+ IRB.conf[:DEBUG_LEVEL]=0
+ IRB.conf[:VERBOSE]=true
+
+== �ץ��ץȤ�����
+
+�ץ��ץȤ򥫥����ޥ������������ˤ�,
+
+ IRB.conf[:PROMPT]
+
+���Ѥ��ޤ�. �㤨��, .irbrc����Dz��Τ褦�ʼ��򵭽Ҥ��ޤ�:
+
+ IRB.conf[:PROMPT][:MY_PROMPT] = { # �ץ��ץȥ⡼�ɤ�̾�
+ :PROMPT_I => nil, # �̾�Υץ��ץ�
+ :PROMPT_S => nil, # ʸ����ʤɤη�³�ԤΥץ��ץ�
+ :PROMPT_C => nil, # ������³���Ƥ�����Υץ��ץ�
+ :RETURN => " ==>%s\n" # �꥿������Υץ��ץ�
+ }
+
+�ץ��ץȥ⡼�ɤ���ꤷ�������ˤ�,
+
+ irb --prompt my-prompt
+
+�Ǥ��Υץ��ץȥ⡼�ɤǵ�ư����ޤ�. �ޤ���, .irbrc�˲����򵭽Ҥ��Ƥ�
+OK�Ǥ�.
+
+ IRB.conf[:PROMPT_MODE] = :MY_PROMPT
+
+PROMPT_I, PROMPT_S, PROMPT_C��, �ե����ޥåȤ���ꤷ�ޤ�.
+
+ %N ��ư���Ƥ��륳�ޥ��̾�����Ϥ����.
+ %m main���֥�������(self)��to_s�ǽ��Ϥ����.
+ %M main���֥�������(self)��inspect����ƽ��Ϥ����.
+ %l ʸ������Υ����פ�ɽ��(", ', /, ], `]'��%w����λ�)
+ %NNi ����ǥ�ȤΥ�٥��ɽ��. NN�Ͽ������printf��%NNd��Ʊ��. ��
+ ά��ǽ
+ %NNn ���ֹ��ɽ���ޤ�.
+ %% %
+
+�㤨��, �ǥե���ȤΥץ��ץȥ⡼�ɤ�:
+
+ IRB.conf[:PROMPT_MODE][:DEFAULT] = {
+ :PROMPT_I => "%N(%m):%03n:%i> ",
+ :PROMPT_S => "%N(%m):%03n:%i%l ",
+ :PROMPT_C => "%N(%m):%03n:%i* ",
+ :RETURN => "%s\n"
+ }
+
+�ȤʤäƤ��ޤ�.
+
+RETURN��, ���ߤΤȤ���printf����Ǥ�. ������ͤ��Ѥ�뤫���Τ�ޤ���.
+
+== ����irb������
+
+���ޥ�ɥ饤�󥪥ץ���󤪤��IRB.conf��(����)irb��ư���Υǥե���Ȥ�
+���������Τ�, `5. ���ޥ��'�ˤ���conf�Ǹ��̤�(����)irb�����꤬��
+����褦�ˤʤäƤ��ޤ�.
+
+IRB.conf[:IRB_RC]��proc�����ꤵ��Ƥ����, ����irb��ư������ˤ���
+proc��irb�Υ���ƥ����Ȥ���Ȥ��ƸƤӽФ��ޤ�. ����ˤ�äƸ��̤Υ�
+��irb���Ȥ�������Ѥ��뤳�Ȥ��Ǥ���褦�ˤʤ�ޤ�.
+
+
+= ���ޥ��
+
+irb��ĥ���ޥ�ɤ�, ��ñ��̾���Ƭ��`irb_'��Ĥ���̾���ξ���������
+���ޤ�. �����, ��ñ��̾���override���줿���Τ���Ǥ�.
+
+--- exit, quit, irb_exit
+ �����.
+ ����irb��, ������irb�����.
+ cb���Ƥ�����, ���ΥХ���ǥ��󥰤Υ⡼�ɤ�λ����.
+
+--- conf, irb_context
+ irb�θ��ߤ������ɽ������. ������ѹ���, conf�˥�å���������뤳
+ �Ȥˤ�äƹԤʤ���.
+
+--- conf.back_trace_limit
+ �Хå��ȥ졼��ɽ����Хå��ȥ졼����Ƭ����n, �����n����Ԥʤ�.
+ �ǥե���Ȥ�16
+
+--- conf.debug_level = N
+ irb�ѤΥǥХå���٥������
+
+--- conf.ignore_eof = true/false
+ ^D�����Ϥ��줿����ư������ꤹ��. true�λ���^D��̵�뤹��, false��
+ ����irb�����.
+
+--- conf.ignore_sigint= true/false
+ ^C�����Ϥ��줿����ư������ꤹ��. false����, irb��λ����. true��
+ ����ư��ϰʲ��Τ褦�ˤʤ�:
+ ������: ����ޤ����Ϥ�����Τ򥭥�󥻥뤷�ȥåץ�٥�����.
+ �¹���: �¹Ԥ���ߤ���.
+
+--- conf.inf_ruby_mode = true/false
+ inf-ruby-mode�ѤΥץ��ץ�ɽ����Ԥʤ�. �ǥե���Ȥ�false.
+
+--- conf.inspect_mode = true/false/nil
+ ���󥹥ڥ��ȥ⡼�ɤ����ꤹ��.
+ true: ���󥹥ڥ��Ȥ���ɽ������.
+ false: �̾��print��ɽ������.
+ nil: �̾�⡼�ɤǤ����, inspect mode�Ȥʤ�, math�⡼�ɤλ���, non
+ inspect mode�Ȥʤ�.
+
+--- conf.irb_level
+ ���ȤΤ�. irb������cb���Ƥ��뤫?
+
+--- conf.math_mode
+ ���ȤΤ�. bc�⡼��(ʬ��, ����η׻����Ǥ��ޤ�)���ɤ���?
+
+--- conf.use_loader = true/false
+ load/require����irb��file�ɤ߹��ߵ�ǽ���Ѥ���⡼�ɤΥ����å�(�ǥե�
+ ��Ȥ��Ѥ��ʤ�). ���Υ⡼�ɤ�IRB��Τ�ȿ�Ǥ����.
+
+--- conf.prompt_c
+ if��ľ��ʤ�, �Ԥ���³���Ƥ�����Υץ��ץ�.
+
+--- conf.prompt_i
+ �̾�Υץ��ץ�.
+
+--- conf.prompt_s
+ ʸ������ʤɤ�ɽ���ץ��ץ�.
+
+--- conf.rc
+ ~/.irbrc���ɤ߹������ɤ���?
+
+--- conf.use_prompt = true/false
+ �ץ��ץ�ɽ�����뤫�ɤ���? �ǥե���ȤǤϥץ��ץȤ�ɽ������.
+
+--- conf.use_readline = true/false/nil
+ readline��Ȥ����ɤ���?
+ true: readline��Ȥ�.
+ false: readline��Ȥ�ʤ�.
+ nil: (�ǥե����)inf-reuby-mode�ʳ���readline�饤�֥������Ѥ���
+ ���Ȥ���.
+
+--- conf.verbose=T/F
+ irb���餤����ʥ�å���������Ϥ��뤫?
+
+--- cb, irb_change_binding [obj]
+ �������ѿ�Υ������פ��㤦������binding�˰ܤ�. obj�����ꤵ�줿
+ ����, ����obj��self�Ȥ���.
+
+--- irb [obj]
+ ����irb��Ω�������. obj�����ꤵ�줿����, ����obj��self�Ȥ���.
+
+--- jobs, irb_jobs
+ ����irb�Υꥹ��
+
+--- fg n, irb_fg n
+ ���ꤷ������irb�˥����å����. n��, ���Τ�Τ���ꤹ��.
+
+ irb�ֹ�
+ ����å�
+ irb���֥�������
+ self(irb obj�ǵ�ư��������obj)
+
+--- kill n, irb_kill n
+ ����irb��kill����. n��fg��Ʊ��.
+
+
+= �����ƥ��ѿ�
+
+ _ ��η׻��μ¹Է�̤�Ф��Ƥ���(�������ѿ�).
+
+= ������
+
+�ʲ��Τ褦�ʴ����Ǥ�.
+
+ dim% ruby irb.rb
+ irb(main):001:0> irb # ����irb�������
+ irb#1(main):001:0> jobs # ����irb�Υꥹ��
+ #0->irb on main (#<Thread:0x400fb7e4> : stop)
+ #1->irb#1 on main (#<Thread:0x40125d64> : running)
+ nil
+ irb#1(main):002:0> fg 0 # job�Υ����å�
+ nil
+ irb(main):002:0> class Foo;end
+ nil
+ irb(main):003:0> irb Foo # Foo�򥳥�ƥ����Ȥ���irb
+ # �����
+ irb#2(Foo):001:0> def foo # Foo#foo�����
+ irb#2(Foo):002:1> print 1
+ irb#2(Foo):003:1> end
+ nil
+ irb#2(Foo):004:0> fg 0 # job�򥹥��å�
+ nil
+ irb(main):004:0> jobs # job�Υꥹ��
+ #0->irb on main (#<Thread:0x400fb7e4> : running)
+ #1->irb#1 on main (#<Thread:0x40125d64> : stop)
+ #2->irb#2 on Foo (#<Thread:0x4011d54c> : stop)
+ nil
+ irb(main):005:0> Foo.instance_methods # Foo#foo�����������
+ # ��Ƥ���
+ ["foo"]
+ irb(main):006:0> fg 2 # job�򥹥��å�
+ nil
+ irb#2(Foo):005:0> def bar # Foo#bar�����
+ irb#2(Foo):006:1> print "bar"
+ irb#2(Foo):007:1> end
+ nil
+ irb#2(Foo):010:0> Foo.instance_methods
+ ["bar", "foo"]
+ irb#2(Foo):011:0> fg 0
+ nil
+ irb(main):007:0> f = Foo.new
+ #<Foo:0x4010af3c>
+ irb(main):008:0> irb f # Foo�Υ��󥹥��󥹤�irb��
+ # �������.
+ irb#3(#<Foo:0x4010af3c>):001:0> jobs
+ #0->irb on main (#<Thread:0x400fb7e4> : stop)
+ #1->irb#1 on main (#<Thread:0x40125d64> : stop)
+ #2->irb#2 on Foo (#<Thread:0x4011d54c> : stop)
+ #3->irb#3 on #<Foo:0x4010af3c> (#<Thread:0x4010a1e0> : running)
+ nil
+ irb#3(#<Foo:0x4010af3c>):002:0> foo # f.foo�μ¹�
+ nil
+ irb#3(#<Foo:0x4010af3c>):003:0> bar # f.bar�μ¹�
+ barnil
+ irb#3(#<Foo:0x4010af3c>):004:0> kill 1, 2, 3# job��kill
+ nil
+ irb(main):009:0> jobs
+ #0->irb on main (#<Thread:0x400fb7e4> : running)
+ nil
+ irb(main):010:0> exit # ��λ
+ dim%
+
+= ���Ѿ�����
+
+irb��, ɾ��Ǥ������(�����Ĥ�������)�Ǥ��༡�¹Ԥ�Ԥʤ��ޤ�. ��������
+��, ruby��ľ�ܻȤä�����, �㴳�ۤʤ�ư���Ԥʤ���礬����ޤ�.
+
+������餫�ˤʤäƤ����������������ޤ�.
+
+== �������ѿ�����
+
+ruby�Ǥ�, �ʲ��Υץ����ϥ��顼�ˤʤ�ޤ�.
+
+ eval "foo = 0"
+ foo
+ --
+ -:2: undefined local variable or method `foo' for #<Object:0x40283118> (NameError)
+ ---
+ NameError
+
+�Ȥ���, irb���Ѥ����
+
+ >> eval "foo = 0"
+ => 0
+ >> foo
+ => 0
+
+�Ȥʤ�, ���顼�򵯤����ޤ���. �����, ruby���ǽ�˥�����ץ���Τ򥳥�
+�ѥ��뤷�ƥ������ѿ����ꤹ�뤫��Ǥ�. ������Ф�, irb�ϼ¹Բ�ǽ��
+�ʤ�(�����Ĥ���)�ȼ�ưŪ��ɾ����Ƥ��뤫��Ǥ�. �嵭����Ǥ�,
+
+ evel "foo = 0"
+
+��Ԥʤä������ɾ���Ԥʤ�, ���λ�����ѿ�������뤿��, ������
+�ѿ�foo��������Ƥ��뤫��Ǥ�.
+
+���Τ褦��ruby��irb��ư��ΰ㤤���褷��������, begin...end�dz�ä�
+�Хå�Ū�˼¹Ԥ��Ʋ�����:
+
+ >> begin
+ ?> eval "foo = 0"
+ >> foo
+ >> end
+ NameError: undefined local variable or method `foo' for #<Object:0x4013d0f0>
+ (irb):3
+ (irb_local_binding):1:in `eval'
+
+== �ҥ��ɥ������
+
+���ߤΤȤ���ҥ��ɥ�����Ȥμ�����Դ���Ǥ�.
+
+== ����ܥ�
+
+����ܥ�Ǥ��뤫�ɤ�����Ƚ�Ǥ�ְ㤨�뤳�Ȥ�����ޤ�. ����Ū�ˤϼ�����λ
+���Ƥ���Τ˷�³�Ԥȸ��ʤ����Ȥ�����ޤ�.
+
+=end
+
+% Begin Emacs Environment
+% Local Variables:
+% mode: text
+% comment-column: 0
+% comment-start: "%"
+% comment-end: "\n"
+% End:
+%
+
View
336 doc/shell.rd.ja
@@ -0,0 +1,336 @@
+ -- shell.rb
+ $Release Version: 0.6.0 $
+ $Revision$
+ $Date$
+ by Keiju ISHITSUKA(keiju@ishitsuka.com)
+
+=begin
+
+= ��Ū
+
+ruby���sh/csh�Τ褦�˥��ޥ�ɤμ¹Եڤӥե��륿��󥰤��ڤ˹Ԥ�.
+sh/csh�����ʸ��ruby�ε�ǽ���Ѥ��Ƽ¸�����.
+
+= ��ʥ��饹����
+
+== Shell
+
+Shell���֥������Ȥϥ����ȥǥ��쥯�ȥ����, ���ޥ�ɼ¹ԤϤ��������
+���Хѥ��ˤʤ�ޤ�.
+
+--- Shell#cwd
+--- Shell#dir
+--- Shell#getwd
+--- Shell#pwd
+
+ �����ȥǥ��쥯�ȥ���֤���
+
+--- Shell#system_path
+
+ ���ޥ�ɥ�����ѥ���������֤���
+
+--- Shell#umask
+
+ umask���֤���
+
+== Filter
+
+���ޥ�ɤμ¹Է�̤Ϥ��٤�Filter�Ȥ��Ƥ�����ޤ�. Enumerable��include��
+�Ƥ��ޤ�.
+
+= ��ʥ᥽�åɰ���
+
+== ���ޥ�����
+
+OS��Υ��ޥ�ɤ�¹Ԥ���ˤϤޤ�, Shell�Υ᥽�åɤȤ��������ޤ�.
+
+��) ���ޥ�ɤ������ʤ��Ȥ�ľ�ܼ¹ԤǤ���Shell#system���ޥ�ɤ⤢��ޤ�.
+
+--- Shell.def_system_command(command, path = command)
+
+ Shell�Υ᥽�åɤȤ���command����Ͽ���ޤ�.
+
+ ��)
+ Shell.def_system_command "ls"
+ ls �����
+
+ Shell.def_system_command "sys_sort", "sort"
+ sort���ޥ�ɤ�sys_sort�Ȥ������
+
+--- Shell.undef_system_command(command)
+
+ command����ޤ�.
+
+--- Shell.alias_command(ali, command, *opts) {...}
+
+ command��alias�򤷤ޤ�.
+
+ ��)
+ Shell.alias_command "lsC", "ls", "-CBF", "--show-control-chars"
+ Shell.alias_command("lsC", "ls"){|*opts| ["-CBF", "--show-control-chars", *opts]}
+
+--- Shell.unalias_command(ali)
+
+ command��alias����ޤ�.
+
+--- Shell.install_system_commands(pre = "sys_")
+
+ system_path��ˤ�����Ƥμ¹Բ�ǽ�ե������Shell��������. �᥽��
+ ��̾�ϸ��Υե�����̾��Ƭ��pre��Ĥ�����ΤȤʤ�.
+
+== ��
+
+--- Shell.new
+
+ �ץ����Υ����ȥǥ��쥯�ȥ�򥫥��ȥǥ��쥯�ȥ�Ȥ���Shell��
+ �֥������Ȥ������ޤ�.
+
+--- Shell.cd(path)
+
+ path�򥫥��ȥǥ��쥯�ȥ�Ȥ���Shell���֥������Ȥ������ޤ�.
+
+== �ץ�������
+
+--- Shell#jobs
+
+ �������塼��󥰤���Ƥ���job�ΰ�����֤�.
+
+--- Shell#kill sig, job
+
+ job�˥����ʥ�sig�����
+
+== �����ȥǥ��쥯�ȥ����
+
+--- Shell#cd(path, &block)
+--- Shell#chdir
+
+ �����ȥǥ��쥯�ȥ��path�ˤ���. ���ƥ졼���Ȥ��ƸƤФ줿�Ȥ��ˤ�
+ �֥�å��¹���Τߥ����ȥǥ��쥯�ȥ���ѹ�����.
+
+--- Shell#pushd(path = nil, &block)
+--- Shell#pushdir
+
+ �����ȥǥ��쥯�ȥ��ǥ��쥯�ȥꥹ���å��ˤĤ�, �����ȥǥ��쥯
+ �ȥ��path�ˤ���. path����ά���줿�Ȥ��ˤ�, �����ȥǥ��쥯�ȥ��
+ �ǥ��쥯�ȥꥹ���å��Υȥåפ�򴹤���. ���ƥ졼���Ȥ��ƸƤФ줿��
+ ���ˤ�, �֥�å��¹���Τ�pushd����.
+
+--- Shell#popd
+--- Shell#popdir
+
+ �ǥ��쥯�ȥꥹ���å�����ݥåפ�, ����򥫥��ȥǥ��쥯�ȥ�ˤ���.
+
+== �ե�����/�ǥ��쥯�ȥ����
+
+--- Shell#foreach(path = nil, &block)
+
+ path���ե�����ʤ�, File#foreach
+ path���ǥ��쥯�ȥ�ʤ�, Dir#foreach
+
+--- Shell#open(path, mode)
+
+ path���ե�����ʤ�, File#open
+ path���ǥ��쥯�ȥ�ʤ�, Dir#open
+
+--- Shell#unlink(path)
+
+ path���ե�����ʤ�, File#unlink
+ path���ǥ��쥯�ȥ�ʤ�, Dir#unlink
+
+--- Shell#test(command, file1, file2)
+--- Shell#[command, file1, file2]
+
+ �ե�����ƥ��ȴؿ�test��Ʊ��.
+ ��)
+ sh[?e, "foo"]
+ sh[:e, "foo"]
+ sh["e", "foo"]
+ sh[:exists?, "foo"]
+ sh["exists?", "foo"]
+
+--- Shell#mkdir(*path)
+
+ Dir.mkdir��Ʊ��(ʣ���)
+
+--- Shell#rmdir(*path)
+
+ Dir.rmdir��Ʊ��(ʣ���)
+
+== ���ޥ�ɼ¹�
+
+--- System#system(command, *opts)
+
+ command��¹Ԥ���.
+ ��)
+ print sh.system("ls", "-l")
+ sh.system("ls", "-l") | sh.head > STDOUT
+
+--- System#rehash
+
+ ��ϥå��夹��
+
+--- Shell#transact &block
+
+ �֥�å���Ǥ�shell��self�Ȥ��Ƽ¹Ԥ���.
+ ��)
+ sh.transact{system("ls", "-l") | head > STDOUT}
+
+--- Shell#out(dev = STDOUT, &block)
+
+ transact��ƤӽФ����η�̤�dev�˽��Ϥ���.
+
+== ����ޥ��
+
+--- Shell#echo(*strings)
+--- Shell#cat(*files)
+--- Shell#glob(patten)
+--- Shell#tee(file)
+
+ �����ϼ¹Ԥ����, ���������ƤȤ���Filter���֥������Ȥ��֤��ޤ�.
+
+--- Filter#each &block
+
+ �ե��륿�ΰ�Ԥ��Ĥ�block���Ϥ�.
+
+--- Filter#<(src)
+
+ src��ե��륿�����ϤȤ���. src��, ʸ����ʤ�Хե������, IO�Ǥ���
+ �Ф���򤽤Τޤ����ϤȤ���.
+
+--- Filter#>(to)
+
+ src��ե��륿�ν��ϤȤ���. to��, ʸ����ʤ�Хե������, IO�Ǥ���
+ �Ф���򤽤Τޤ޽��ϤȤ���.
+
+--- Filter#>>(to)
+
+ src��ե��륿���ɲä���. to��, ʸ����ʤ�Хե������, IO�Ǥ����
+ ����򤽤Τޤ޽��ϤȤ���.
+
+--- Filter#|(filter)
+
+ �ѥ��׷��
+
+--- Filter#+(filter)
+
+ filter1 + filter2 �� filter1�ν��Ϥθ�, filter2�ν��Ϥ�Ԥ�.
+
+--- Filter#to_a
+--- Filter#to_s
+
+== �ȹ��ߥ��ޥ��
+
+--- Shell#atime(file)
+--- Shell#basename(file, *opt)
+--- Shell#chmod(mode, *files)
+--- Shell#chown(owner, group, *file)
+--- Shell#ctime(file)
+--- Shell#delete(*file)
+--- Shell#dirname(file)
+--- Shell#ftype(file)
+--- Shell#join(*file)
+--- Shell#link(file_from, file_to)
+--- Shell#lstat(file)
+--- Shell#mtime(file)
+--- Shell#readlink(file)
+--- Shell#rename(file_from, file_to)
+--- Shell#split(file)
+--- Shell#stat(file)
+--- Shell#symlink(file_from, file_to)
+--- Shell#truncate(file, length)
+--- Shell#utime(atime, mtime, *file)
+
+ ������File���饹�ˤ���Ʊ̾�Υ��饹�᥽�åɤ�Ʊ���Ǥ�.
+
+--- Shell#blockdev?(file)
+--- Shell#chardev?(file)
+--- Shell#directory?(file)
+--- Shell#executable?(file)
+--- Shell#executable_real?(file)
+--- Shell#exist?(file)/Shell#exists?(file)
+--- Shell#file?(file)
+--- Shell#grpowned?(file)
+--- Shell#owned?(file)
+--- Shell#pipe?(file)
+--- Shell#readable?(file)
+--- Shell#readable_real?(file)
+--- Shell#setgid?(file)
+--- Shell#setuid?(file)
+--- Shell#size(file)/Shell#size?(file)
+--- Shell#socket?(file)
+--- Shell#sticky?(file)
+--- Shell#symlink?(file)
+--- Shell#writable?(file)
+--- Shell#writable_real?(file)
+--- Shell#zero?(file)
+
+ ������FileTest���饹�ˤ���Ʊ̾�Υ��饹�᥽�åɤ�Ʊ���Ǥ�.
+
+--- Shell#syscopy(filename_from, filename_to)
+--- Shell#copy(filename_from, filename_to)
+--- Shell#move(filename_from, filename_to)
+--- Shell#compare(filename_from, filename_to)
+--- Shell#safe_unlink(*filenames)
+--- Shell#makedirs(*filenames)
+--- Shell#install(filename_from, filename_to, mode)
+
+ ������FileTools���饹�ˤ���Ʊ̾�Υ��饹�᥽�åɤ�Ʊ���Ǥ�.
+
+ ����¾, �ʲ��Τ�Τ������ꥢ������Ƥ��ޤ�.
+
+--- Shell#cmp <- Shell#compare
+--- Shell#mv <- Shell#move
+--- Shell#cp <- Shell#copy
+--- Shell#rm_f <- Shell#safe_unlink
+--- Shell#mkpath <- Shell#makedirs
+
+= ����ץ�
+
+== ex1
+
+ sh = Shell.cd("/tmp")
+ sh.mkdir "shell-test-1" unless sh.exists?("shell-test-1")
+ sh.cd("shell-test-1")
+ for dir in ["dir1", "dir3", "dir5"]
+ if !sh.exists?(dir)
+ sh.mkdir dir
+ sh.cd(dir) do
+ f = sh.open("tmpFile", "w")
+ f.print "TEST\n"
+ f.close
+ end
+ print sh.pwd
+ end
+ end
+
+== ex2
+
+ sh = Shell.cd("/tmp")
+ sh.transact do
+ mkdir "shell-test-1" unless exists?("shell-test-1")
+ cd("shell-test-1")
+ for dir in ["dir1", "dir3", "dir5"]
+ if !exists?(dir)
+ mkdir dir
+ cd(dir) do
+ f = open("tmpFile", "w")
+ f.print "TEST\n"
+ f.close
+ end
+ print pwd
+ end
+ end
+ end
+
+== ex3
+
+ sh.cat("/etc/printcap") | sh.tee("tee1") > "tee2"
+ (sh.cat < "/etc/printcap") | sh.tee("tee11") > "tee12"
+ sh.cat("/etc/printcap") | sh.tee("tee1") >> "tee2"
+ (sh.cat < "/etc/printcap") | sh.tee("tee11") >> "tee12"
+
+== ex4
+
+ print sh.cat("/etc/passwd").head.collect{|l| l =~ /keiju/}
+
+=end
View
11 ext/digest/MANIFEST
@@ -0,0 +1,11 @@
+MANIFEST
+defs.h
+digest.c
+digest.h
+digest.txt
+digest.txt.ja
+extconf.rb
+lib/md5.rb
+lib/sha1.rb
+test.rb
+test.sh
View
111 ext/digest/digest.txt.ja
@@ -0,0 +1,111 @@
+.\" digest.txt.ja - -*- Indented-Text -*- created at: Fri May 25 08:22:19 JST 2001
+$RoughId: digest.txt.jp,v 1.8 2001/07/13 15:38:27 knu Exp $
+$Id$
+
+** MD5(���饹)
+
+RFC1321�˵��Ҥ���Ƥ���RSA Data Security, Inc. �� MD5 Message-Digest
+Algorithm�����륯�饹��
+
+Superclass: Digest::Base
+
+require 'digest/md5'
+
+** SHA1(���饹)
+
+FIPS PUB 180-1�˵��Ҥ���Ƥ���NIST (the US' National Institute of
+Standards and Technology) �� SHA-1 Secure Hash Algorithm�����륯�饹��
+
+Superclass: Digest::Base
+
+require 'digest/sha1'
+
+** SHA256(���饹)
+** SHA384(���饹)
+** SHA512(���饹)
+
+FIPS PUB 180-2�˵��Ҥ���Ƥ���NIST (the US' National Institute of
+Standards and Technology) �� SHA-256/384/512 Secure Hash Algorithm��
+����륯�饹��
+
+Superclass: Digest::Base
+
+require 'digest/sha2'
+
+** RMD160(���饹)
+
+Hans Dobbertin, Antoon Bosselaers, Bart Preneel �ˤ�ä��߷פ��줿
+RIPEMD-160 �ϥå���ؿ�����륯�饹��
+
+Superclass: Digest::Base
+
+require 'digest/rmd160'
+
+
+�����Υ��饹�ϰʲ��Τ褦�ʶ��̤Υ��󥿡��ե��������󶡤��롣
+
+
+Class Methods:
+
+ new([str])
+
+ ����������������ȥ��֥������Ȥ������롥ʸ������Ϳ������
+ �Ȥ�����ɲä���(see update)��
+
+ digest(str)
+
+ Ϳ����줿ʸ������Ф���ϥå����ͤ�ʸ������֤���
+ new(str).digest ������
+
+ hexdigest(str)
+
+ Ϳ����줿ʸ������Ф���ϥå����ͤ�ASCII�����ɤ�Ȥä�
+ 16�ʿ����򼨤�ʸ����˥��󥳡��ɤ����֤���
+ new(str).hexdigest ������
+
+Methods:
+
+ clone
+
+ ����������ȥ��֥������Ȥ�ʣ����롣
+
+ digest
+
+ ���ޤǤ��ɲä���ʸ������Ф���ϥå����ͤ�ʸ������֤���MD5�Ǥ�
+ 16�Х���Ĺ��SHA1�����RMD160�Ǥ�20�Х���Ĺ��SHA256�Ǥ�32�Х���Ĺ��
+ SHA384�Ǥ�48�Х���Ĺ��SHA512�Ǥ�64�Х���Ĺ�Ȥʤ롣
+
+ hexdigest
+ to_s
+
+ ���ޤǤ��ɲä���ʸ������Ф���ϥå����ͤ�ASCII�����ɤ�Ȥä�
+ 16�ʿ����򼨤�ʸ����˥��󥳡��ɤ����֤���MD5�Ǥ�32�Х���Ĺ��
+ SHA1�����RMD160�Ǥ�40�Х���Ĺ��SHA256�Ǥ�64�Х���Ĺ��SHA384�Ǥ�
+ 96�Х���Ĺ��SHA512�Ǥ�128�Х���Ĺ�Ȥʤ롣Ruby�ǽ񤯤Ȱʲ���Ʊ����
+
+ def hexdigest
+ digest.unpack("H*")[0]
+ end
+
+ update(str)
+ << str
+
+ ʸ������ɲä��롣ʣ���update��Ƥ֤��Ȥ�ʸ�����Ϣ�뤷��
+ update��Ƥ֤��Ȥ��������ʤ�� m.update(a); m.update(b) ��
+ m.update(a + b) �ȡ� m << a << b �� m << a + b �Ȥ��줾�����
+ �Ǥ��롣
+
+ == md
+
+ Ϳ����줿����������ȥ��֥������Ȥ���Ӥ��롣
+
+ == str
+
+ Ϳ����줿ʸ����� digest �͡��⤷���� hexdigest �ͤ���Ӥ��롣
+ ��������ͤȸ��뤫��Ϳ����줿ʸ�����Ĺ���ˤ�äƼ�ưȽ��
+ ����롣
+
+-------------------------------------------------------
+Local variables:
+fill-column: 70
+end:
View
72 ext/etc/etc.txt.ja
@@ -0,0 +1,72 @@
+.\" etc.txt.ja - -*- Indented-Text -*- created at: Fri Jul 14 00:47:15 JST 1995
+
+** Etc(モジュール)
+
+/etcディレクトリ以下の情報を得るためのモジュール.クラスにインクルード
+して使うこともできる.
+
+Module Function:
+
+ getlogin
+
+ 自分のlogin名を返す.これが失敗した場合はgetpwuid()を用いると
+ 良い.
+
+ getpwnam(name)
+
+ /etc/passwdファイル(あるいはDBMファイルやNISデータベース)を検
+ 索し,nameの名前を持つpasswdエントリを返す.戻り値はpasswd構造
+ 体で以下のメンバを持つ.
+
+ struct passwd
+ name # ユーザ名(文字列)
+ passwd # パスワード(文字列)
+ uid # ユーザID(整数)
+ gid # グループID(整数)
+ gecos # gecosフィールド(文字列)
+ dir # ホームディレクトリ(文字列)
+ shell # ログインシェル(文字列)
+ # 以降のメンバはシステムによっては提供されない.
+ change # パスワード変更時間(整数)
+ quota # クォータ(整数)
+ age # エージ(整数)
+ class # ユーザアクセスクラス(文字列)
+ comment # コメント(文字列)
+ expire # アカウント有効期限(整数)
+ end
+
+ 詳細はgetpwnam(3)を参照のこと.
+
+ getpwuid([uid])
+
+ uidをユーザIDとするpasswdエントリを返す.戻り値はgetpwnam()と
+ 同様である.引数を省略した場合にはgetuid()の値を用いる.詳細は
+ getpwuid(3)を参照のこと.
+
+ getgrgid(gid)
+
+ /etc/groupファイル(あるいは…getpwnam参照)を検索し,gidをグルー
+ プIDとするグループエントリを返す.戻り値はgroup構造体で以下の
+ メンバを持つ.
+
+ struct group
+ name # グループ名(文字列)
+ passwd # グループのパスワード(文字列)
+ gid # グループID(整数)
+ mem # グループメンバ名の配列
+ end
+
+ 詳細はgetgrgid(3)を参照のこと.
+
+ getgrnam(name)
+
+ nameという名前のグループエントリを返す.戻り値はgetgrgid()と同
+ 様である.詳細はgetgrnam(3)を参照.
+
+ group
+
+ 全てのグループエントリを順にアクセスするためのイテレータ.
+
+ passwd
+
+ 全てのpasswdエントリを順にアクセスするためのイテレータ.
View
21 ext/pty/README.expect.ja
@@ -0,0 +1,21 @@
+ README for expect
+ by A. Ito, 28 October, 1998
+
+ Expect�饤�֥��ϡ�tcl �� expect �ѥå������Ȼ�褦�ʵ�ǽ��
+IO���饹���ɲä��ޤ���
+
+ �ɲä����᥽�åɤλȤ���ϼ����̤�Ǥ���
+
+ IO#expect(pattern,timeout=9999999)
+
+pattern �� String �� Regexp �Υ��󥹥��󥹡�timeout �� Fixnum
+�Υ��󥹥��󥹤Ǥ���timeout �Ͼ�ά�Ǥ��ޤ���
+ ���Υ᥽�åɤ��֥�å��ʤ��ǸƤФ줿��硤�ޤ��쥷���ФǤ���
+IO���֥������Ȥ��� pattern �˥ޥå����ѥ������ɤߤ��ޤ��
+�ޤ��Ԥ�ޤ����ѥ��������줿�顤���Υѥ�����˴ؤ��������
+�֤��ޤ�������κǽ�����Ǥϡ�pattern �˥ޥå����ޤǤ��ɤߤ�
+�ޤ줿���Ƥ�ʸ����Ǥ���2���ܰʹߤ����Ǥϡ�pattern �����ɽ��
+����˥��󥫡������ä����ˡ����Υ��󥫡��˥ޥå������ʬ�Ǥ���
+�⤷�����ॢ���Ȥ����������ϡ����Υ᥽�åɤ�nil���֤��ޤ���
+ ���Υ᥽�åɤ��֥�å��դ��ǸƤФ줿���ˤϡ��ޥå�������Ǥ�
+���󤬥֥�å����Ȥ����Ϥ��졤�֥�å���ɾ�����ޤ���
View
89 ext/pty/README.ja
@@ -0,0 +1,89 @@
+pty ��ĥ�⥸�塼�� version 0.3 by A.ito
+
+1. �Ϥ����
+
+���γ�ĥ�⥸�塼��ϡ�����tty (pty) ���̤���Ŭ��ʥ��ޥ�ɤ�
+�¹Ԥ��뵡ǽ�� ruby ���󶡤��ޤ���
+
+2. ���󥹥ȡ���
+
+���Τ褦�ˤ��ƥ��󥹥ȡ��뤷�Ƥ��������
+
+(1) ruby extconf.rb
+
+ ��¹Ԥ���� Makefile ��������ޤ���
+
+(2) make; make install ��¹Ԥ��Ƥ��������
+
+3. �����Ǥ��뤫
+
+���γ�ĥ�⥸�塼��ϡ�PTY �Ȥ����⥸�塼��������ޤ���������
+�ˤϡ����Τ褦�ʥ⥸�塼��ؿ�ޤޤ�Ƥ��ޤ���
+
+ getpty(command)
+ spawn(command)
+
+ ���δؿ�ϡ�����tty����ݤ������ꤵ�줿���ޥ�ɤ򤽤β���tty
+ �θ������Ǽ¹Ԥ���������֤��ޤ�������ͤ�3�Ĥ����Ǥ���ʤ�
+ ����Ǥ����ǽ�����Ǥϲ���tty�����ɤ߽Ф������IO���֥������ȡ�
+ 2���ܤϽ񤭤��ि���IO���֥������ȡ�3���ܤϻҥץ����Υץ�
+ ����ID�Ǥ������δؿ���ƥ졼���Ȥ��ƸƤФ줿��硤������
+ ���Ǥϥ֥�å��ѥ�᡼���Ȥ����Ϥ��졤�ؿ��Τ�nil���֤��ޤ���
+
+ ���δؿ�ˤ�äƺ��줿���֥ץ�����ư���Ƥ���֡��ҥץ���
+ �ξ��֤�ƻ뤹�뤿��� SIGCHLD �����ʥ����ª���ޤ����ҥץ���
+ ����λ��������ߤ������ˤϡ��㳰��ȯ����ޤ������δ֡����٤Ƥ�
+ SIGCHLD �� PTY �⥸�塼��Υ����ʥ�ϥ�ɥ����ª�����Τǡ�
+ ���֥ץ�����������¾�δؿ�(system() �Ȥ� IO.popen()�ʤ�)��
+ �Ȥ��ȡ�ͽ��ʤ��㳰��ȯ����뤳�Ȥ�����ޤ���������ɤ�����
+ �ˤϡ�������protect_signal()�򻲾Ȥ��Ƥ��������
+
+ ���δؿ�֥�å��ѥ�᡼���դ��ǸƤФ줿���ˤϡ����Υ֥�å�
+ ����ǤΤ� SIGCHLD ����ª����ޤ����������äơ��֥�å��ѥ�᡼��
+ �Ȥ����Ϥ��줿IO���֥������Ȥ򡤥֥�å��γ��˻��Ф��ƻȤ���
+ �ϴ�����ޤ���
+
+
+ protect_signal
+
+ ���δؿ�ϥ��ƥ졼���Ǥ��������ǻ��ꤵ�줿�֥�å�����Ǥϡ�
+ �ҥץ�������λ���Ƥ��㳰��ȯ����ޤ��󡥤��δؿ��Ȥ����Ȥǡ�
+ PTY�λҥץ�����ư���Ƥ���֤Ǥ⡤system()�� IO.popen()�ʤɤ�
+ �ؿ�����˻Ȥ����Ȥ��Ǥ��ޤ����㤨�С�
+
+ PTY.spawn("command_foo") do |r,w|
+ ...
+ ...
+ PTY.protect_signal do
+ system "some other commands"
+ end
+ ...
+ end
+
+ ���Τ褦�ʵ��Ҥˤ�ꡤ"some other commands" ����λ�����Ȥ���
+ �㳰��ȯ�����Τ��ɤ��ޤ���
+
+ reset_signal
+
+ PTY �λҥץ�����ư���Ƥ��Ƥ⡤���Υץ����ν�λ�����㳰��ȯ�
+ ���ʤ��褦�ˤ��ޤ���
+
+4. ���ѤˤĤ���
+
+��ƣ��§��������ͭ���ޤ���
+
+�������ץ����ޤ��ϥɥ�����Ȥ˸�����ɽ�������Ѥ��줺��
+ɽ������Ƥ�����˸¤ꡤï�Ǥ⡤���Υ��եȥ�������̵���������
+���Ԥ�̵�Ǥ����ѡ����ۡ����ѤǤ��ޤ���������Ū�ϸ��ꤵ��Ƥ��ޤ�
+��
+
+���Υץ��������ѡ����ۤ���¾���Υץ����˴ط�����԰٤ˤ�
+�ä�����������ʤ�»�����Ф��Ƥ⡤��Ԥϰ�����Ǥ���餤�ޤ���
+
+5. �������
+
+�Х���ݡ��Ȥϴ��ޤ��ޤ���
+
+ aito@ei5sun.yz.yamagata-u.ac.jp
+
+�ޤ��Żҥ᡼��ǥХ���ݡ��Ȥ���꤯�������
View
63 ext/readline/README.ja
@@ -0,0 +1,63 @@
+GNU Readline Library�����Ѥ��뤿��γ�ĥ�⥸�塼��Ǥ���
+
+require "readline"
+include Readline
+
+line = readline("Prompt> ", true)
+
+�Τ褦�˻��Ѥ��Ƥ��������
+
+[Readline]
+
+<�⥸�塼��ؿ�>
+
+readline(prompt, add_history=nil)
+
+ ������Ϥ��ɤ߹��ߤޤ���
+ add_history��true�ξ�硢�ҥ��ȥ���ɤ߹����ʸ������ɲä��ޤ���