summaryrefslogtreecommitdiff
path: root/spec
diff options
context:
space:
mode:
Diffstat (limited to 'spec')
-rw-r--r--spec118
1 files changed, 63 insertions, 55 deletions
diff --git a/spec b/spec
index cf7e380..a067075 100644
--- a/spec
+++ b/spec
@@ -68,13 +68,13 @@ tab), CR(carriage return),改頁(form feed)である.改行(newline)は明ら
予約語は以下の通りである
- alias def if resque when
- and else in retry while
- begin elsif include return yield
- break end module self __END__
- case ensure nil super __FILE__
- class fail or then __LINE__
- continue for redo undef
+ alias def if retry while
+ and else in return yield
+ begin elsif module self __END__
+ break end nil super __FILE__
+ case ensure or then __LINE__
+ class fail redo undef
+ continue for resque when
予約語はクラス名,メソッド名,変数名などに用いることはできない.
@@ -120,9 +120,7 @@ Rubyではnilが偽,それ以外が真と評価される.CやPerlなどとは異なり,0や
\# 文字`#'そのもの
\nnn 8進数表記(nは0-7)
\xnn 16進数表記(nは0-9,a-f)
- \^c コントロール文字(cはASCII文字)
- \C-c コントロール文字(同上)
- \M-c メタ文字(c|0x80)
+ \cx コントロール文字(xはASCII文字)
\x 文字xそのもの
また,`#'による変数展開も行われる.一方,シングルクォート(`'')で括られ
@@ -166,17 +164,6 @@ Rubyではshのようにコマンドの実行結果を文字列リテラルのように使うことが
その他に文字列と同じバックスラッシュ記法や変数展開も有効である.
-** ワイルドカード式
-
- <...>
-
- * 任意の文字列(空文字列を含む)と一致
- ? 任意の1文字と一致
- [ ] []内のいずれか1文字と一致
- {..} {}内の(コンマで区切られた)いずれかの文字列と一致
-
-その他に文字列と同じバックスラッシュ記法や変数展開も有効である.
-
** 変数展開
ダブルクォート(`"')で囲まれた文字列式,コマンド文字列,正規表現,およ
@@ -363,9 +350,10 @@ Rubyの変数はスコープ(有効範囲)と寿命(有効期限)によって4種類に分類され,
でも小文字でも構わない.変数名とは識別子の名前空間が違うので重複しても
構わない.
-クラス定義文の外で指定されたメソッドとクラスModuleのunexportメソッドで
-指定されたメソッドは関数的メソッドと呼ばれ,関数形式でしか呼び出すこと
-ができない(DEF参照).
+クラスModuleで定義されているメソッド(public,protected,private)でメソッ
+ドの呼び出し方を制御することが出来る.protectedまたは privateで指定さ
+れた制限されたメソッドは関数形式でしか呼び出すことが出来ず,さらに
+privateメソッドは同じクラスで定義されたメソッドからしか呼び出せない.
** SUPER
@@ -805,17 +793,18 @@ begin式のresque節で使い,begin式を始めから実行する.例外処理を行なって
で指定する.仮引数並びの最後に`*'がある場合,仮引数より多く与えられた
実引数は,最後の引数に配列として与えられる(足りない時にはエラー).
-メソッドには関数的メソッドと通常メソッドがある.関数的メソッドは関数形
-式でしか呼び出すことができず,よって該当するクラスとそのサブクラスのメ
-ソッドからしか呼び出すことができない.
-新規にメソッドを定義する場合,クラス定義式の外にあるdef式は関数的メソッ
-ドを定義し,クラス定義式の中にあるdef式は通常のメソッドを定義する.スー
-パークラスのメソッドを再定義する場合には定義されるメソッドの可視性はスー
-パークラスのメソッドのものを受け継ぐ.
+メソッドには呼び出し制限を加えることが出来,制限を加えられたメソッドは,
+関数形式でしか呼び出せない(protected),あるいは関数形式でしかも同じク
+ラスのメソッドからしか呼べない(private).
+
+新規にメソッドを定義する場合,クラス定義式の外にあるdef式はデフォルト
+ではprotectedメソッドを定義し,クラス定義式の中にあるdef式はpublicメソッ
+ドを定義する.スーパークラスのメソッドを再定義する場合には定義されるメ
+ソッドの可視性はスーパークラスのメソッドのものを受け継ぐ.
-メソッドの可視性を変更する場合にはModuleクラスのexport/unexportメソッ
-ドを用いる.
+メソッドの可視性を変更する場合にはModuleクラスで定義されているpublic,
+protected, privateの各メソッドを用いる.
** 特異メソッド定義
@@ -835,19 +824,6 @@ begin式のresque節で使い,begin式を始めから実行する.例外処理を行なって
サブクラスにも継承される.言い替えればクラスの特異メソッドは他のオブジェ
クト指向システムにおけるクラスメソッドの働きをする.
-** INCLUDE
-
-モジュールをインクルードすることによって,クラスまたはモジュールに機能
-を追加できる.現在の定義中のクラスまたはモジュール(トップレベルでは
-Objectクラス)に指定したモジュールをインクルードする構式は以下の通りで
-ある.
-
- include モジュール名 [`,' モジュール名..]
-
-モジュールをインクルードすると,そのモジュール(およびそのモジュールが
-更にインクルードしているモジュール)の全てのメソッドを受け継ぐ.別のい
-い方をすればインクルードは限定された多重継承(Mixin)といえる.
-
** ALIAS
以下の形式でメソッドに別名をつけることができる.
@@ -1204,6 +1180,9 @@ Rubyには厳密な意味では関数はないがKernelクラスの関数メソッドは(全ての
ると対応する環境変数の値が得られる.環境変数が存在しな
い場合はnilが返る.
+ KCODE 対応している漢字コードを表す文字列."EUC","SJIS"または
+ "NONE".
+
VERSION rubyのバージョンを示す文字列
* 組み込みクラスとモジュール
@@ -1797,6 +1776,18 @@ Methods:
Single Methods:
+ self[pat]
+ glob(pat)
+
+ 文字列patをsh形式のワイルドカードとして展開した結果を文字列の
+ 配列として返す.書式は以下の通りである.
+
+ * 任意の文字列(空文字列を含む)と一致
+ ? 任意の1文字と一致
+ [ ] []内のいずれか1文字と一致
+ {..} {}内の(コンマで区切られた)いずれかの文字列と
+ 一致
+
chdir(path)
カレントディレクトリをpathに変更する.
@@ -2664,20 +2655,32 @@ Private Methods:
Methods:
- export(name[, name..])
+ include(module[, module..])
- nameで指定されたメソッドを通常形式で呼び出し可能にする.すでに
- 通常メソッドである場合には何もしない.
+ 引数で指定したモジュールをインクルードして,メソッド,定数を追
+ 加する.クラス,モジュールに別のモジュールをインクルードするこ
+ とによって,限定された多重継承(Mixin)を実現できる.
to_s
モジュールの文字列表現を返す.モジュールの場合の文字列表現はモ
ジュール名である.
- unexport(name[, name..])
+ private(name[, name..])
+
+ nameで指定されたメソッドを同じクラスで定義されたメソッドからだ
+ け,関数形式でだけ呼び出し可能にする.すでにprivateメソッドで
+ ある場合には何もしない.
+
+ protected(name[, name..])
nameで指定されたメソッドを関数形式でだけ呼び出し可能にする.す
- でに関数メソッドである場合には何もしない.
+ でにprotectedメソッドである場合には何もしない.
+
+ public(name[, name..])
+
+ nameで指定されたメソッドを通常形式で呼び出し可能にする.すでに
+ publicメソッドである場合には何もしない.
** Nil(クラス)
@@ -2741,8 +2744,15 @@ SuperClass: Builtin
Methods:
+ extened(module[, module..])
+
+ 引数で指定したモジュールをselfにインクルードする.モジュールで
+ 定義されているメソッドが特異メソッドとして追加される.
+
init_object
+ オブジェクトの生成時に呼び出される.デフォルトの定義は何もしな
+ い.サブクラスで必要に応じて再定義されることが期待されている.
is_member_of(class)
@@ -2955,7 +2965,6 @@ Single Methods:
ソケットのペアを返す.引数の指定は openと同じである.
-
** Regexp(クラス)
正規表現のクラス.正規表現のリテラルは/.../という形式で表すが,動的に
@@ -3733,9 +3742,8 @@ PRIMARY : `(' EXPR `)'
| super `(' [CALL_ARGS] `)'
| super
| PRIMARY `[' [ARGS] `]'
- | `[' [ARGS] `]'
- | `{' ARGS `}'
- | `{' ASSOCS `}'
+ | `[' [ARGS [`,']] `]'
+ | `{' [ (ARGS|ASSOCS) [`,'] ] `}'
| redo
| break
| continue