From d349889e770a2078c247d9d28070e86a54b856f4 Mon Sep 17 00:00:00 2001 From: Yukihiro Matsumoto Date: Wed, 15 Mar 1995 14:59:18 +0900 Subject: version 0.69 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit https://cache.ruby-lang.org/pub/ruby/1.0/ruby-0.69.tar.gz Wed Mar 15 14:59:18 1995 Yukihiro Matsumoto (matz@ix-02) * version 0.69 * eval.c(method_missing): unknownから名称変更. * eval.c(single_method_added): 特異メソッドが定義された時に呼ばれ るメソッド.hookとして使える.実際に定義される直前に呼ばれる. Tue Mar 14 14:46:44 1995 Yukihiro Matsumoto (matz@ix-02) * ruby.c(proc_options): 引数の解析を自分でやることにより引数指定の 方法がperlに近付いた.getopt_longはもう使わない. * dir.c(glob): `{}'のネストを許すようにした. Mon Mar 13 17:56:25 1995 Yukihiro Matsumoto (matz@ix-02) * glob.c: Glob(ワイルドカードオブジェクト)はなくなった.ワイルドカー ドの展開はDir.glob(文字列)を使う.ワイルドカードのマッチは正規表 現で代用. Fri Mar 10 18:35:46 1995 Yukihiro Matsumoto (matz@ix-02) * eval.c: Mathのようなモジュールは自分自身でextendする. * eval.c: クラスやモジュールを定義した既に同名のものがあれば追加定 義となるように.ただし.superクラスの違いなどはチェックする. * regex.c: debug. * math.c: 定数PIとEを定義. Thu Mar 9 21:35:12 1995 Yukihiro Matsumoto (matz@ix-02) * regex.c: EUC,SJISモードでは0x80以上の8進,16進リテラルを禁止. * regex.c: クラス内でも数値リテラル・文字クラスが使えるようした. Wed Mar 8 17:39:05 1995 Yukihiro Matsumoto (matz@ix-02) * regex.c: \200など括弧の数以上の表現は8進リテラルと解釈する.ただ し,\1から\9までは例外. * regex.c: \9以上のリファレンスも有効にした. Tue Mar 7 14:26:01 1995 Yukihiro Matsumoto (matz@ix-02) * eval.c(public/private): スコープ制御メソッドの名称変更.静的なア クセスも出来るようにしてみたが,不採用. Mon Mar 6 19:34:32 1995 Yukihiro Matsumoto (matz@ix-02) * eval.c(inlcude): メソッド化.動的にモジュールをインクルードでき るように.さらに任意のオブジェクトにもモジュールをインクルードで きるメソッド `extend'も用意した. * parse.y: 文法からincludeを削除.メソッド化. Tue Feb 28 15:35:10 1995 Yukihiro Matsumoto (matz@ix-02) * parse.y: 配列,連想配列の最後に`,'をおけるように. --- object.c | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) (limited to 'object.c') diff --git a/object.c b/object.c index 7aa16483e1..7fb582302d 100644 --- a/object.c +++ b/object.c @@ -207,6 +207,13 @@ Fobj_init_object(obj) return Qnil; } +static VALUE +Fobj_s_added(obj, id) + VALUE obj, id; +{ + return Qnil; +} + static VALUE Fnil_to_s(obj) VALUE obj; @@ -296,8 +303,8 @@ Fcls_attr(argc, argv, class) return Qnil; } -static VALUE -Fcls_export_internal(argc, argv, ex) +void +method_visibility(argc, argv, ex) int argc; VALUE *argv; int ex; @@ -316,24 +323,23 @@ Fcls_export_internal(argc, argv, ex) } rb_export_method(self, id, ex); } - return Qnil; } static VALUE -Fcls_export(argc, argv) +Fcls_public(argc, argv) int argc; VALUE *argv; { - Fcls_export_internal(argc, argv, 0); + method_visibility(argc, argv, NOEX_PUBLIC); return Qnil; } static VALUE -Fcls_unexport(argc, argv) +Fcls_private(argc, argv) int argc; VALUE *argv; { - Fcls_export_internal(argc, argv, 1); + method_visibility(argc, argv, NOEX_PRIVATE); return Qnil; } @@ -429,6 +435,7 @@ Init_Object() rb_define_alias(C_Kernel, "format", "sprintf"); rb_define_private_method(C_Object, "init_object", Fobj_init_object, -1); + rb_define_private_method(C_Object, "single_method_added", Fobj_s_added, 1); rb_define_method(C_Object, "clone", Fobj_clone, 0); @@ -440,8 +447,9 @@ Init_Object() rb_define_method(C_Module, "to_s", Fcls_to_s, 0); rb_define_method(C_Module, "clone", Fcant_clone, 0); rb_define_private_method(C_Module, "attr", Fcls_attr, -1); - rb_define_method(C_Module, "export", Fcls_export, -1); - rb_define_method(C_Module, "unexport", Fcls_unexport, -1); + + rb_define_method(C_Module, "public", Fcls_public, -1); + rb_define_method(C_Module, "private", Fcls_private, -1); rb_define_method(C_Class, "new", Fcls_new, -1); -- cgit v1.2.3