diff options
author | Yukihiro Matsumoto <matz@ruby-lang.org> | 1994-07-18 10:19:15 +0900 |
---|---|---|
committer | Takashi Kokubun <takashikkbn@gmail.com> | 2019-08-17 22:09:29 +0900 |
commit | 200e0ee2fd3c1c006c528874a88f684447215524 (patch) | |
tree | df2252585f3000878a15123d98ccb08124306b90 /spec |
version 0.49v0_49
https://cache.ruby-lang.org/pub/ruby/1.0/ruby-0.49.tar.gz
Mon Jul 18 10:19:15 1994 Yukihiro Matsumoto (matz@ix-02)
* parse.y: 多重代入を処理するルールにバグがあって, 3要素以上の多重
代入に失敗していた.
* eval.c(rb_eval): 多重代入で, 右辺が配列でない時には`to_a'メソッ
ドで配列に変換して代入するようにした. 今までの仕様だと右辺値が第
1要素にそのまま代入されていたが, structなど配列に変換できるもの
は変換した方が嬉しい気がする.
* dbm.c,dict.c(delete_if): メソッド追加.
* process.c(wait,waitpid): システムコールwaitpidまたはwait4がある
時はそちらを使うように. configureもそれらをチェックするように変更.
* dbm.c, dict.c(clear): メソッド追加.
Fri Jul 15 10:54:45 1994 Yukihiro Matsumoto (matz@ix-02)
* array.c(Fary_fill,Fary_clear): メソッドを追加.
* string.c(Fstr_split): $;の値が長さ1の文字列である時, これを正規
表現化しないで, 単なる文字として分割する.
* string.c(Fstr_aset/Fstr_aref): インデックスが文字列の範囲外だっ
た時の動作をArrayを参考に修正した.
* array.c(astore,Fary_aset): 領域をreallocした後, ゼロでクリアする
ように. 今まで配列にゴミが入っていた.
* array.c: []/[]=でのインデックス関係を整理. 基本的に負のインデッ
クスに代入しない限り例外は起きないように変更した. 必要に応じて適
当に解釈して, 必要ならば領域を拡張するように.
Thu Jul 14 11:18:07 1994 Yukihiro Matsumoto (matz@ix-02)
* autoexec.c: 削除. autoload関係の機能は今後検討しよう.
* dict.c: 辞書クラスの正式名称をDictに変更した. 別名としてHashを用
意した. 今までDictionaryなどと長い名前にしていたが誰も使っていな
かったしね. *BACKWARD INCOMPATIBILITY*
* parse.y: Dictを生成する構文を追加. こちらを{..}にした.
* parse.y: 配列を生成する構文を[..]に変更した. 過去のRubyスクリプ
トとの互換性が保てないが, Dictを生成する構文を導入するに当たり,
perl5に合わせて(意識して), 変更する時期は今しかないと考えた.
*BACKWARD INCOMPATIBILITY*
* eval.c(Feval): eval()でメソッドを定義する時, 定義されるクラスを
メソッドの所属するクラスにした. 今まではObjectクラスに定義されて
いた.
* parse.y: ローカル引数がない時のeval()で落ちていた.
Thu Jul 14 11:18:07 1994 Yukihiro Matsumoto (matz@ix-02)
* eval.c: メソッドが存在しない時にはKernel:_undefined(id)が呼ばれ
るように. しかし, rubyでは個々のメソッド毎の処理よりも, クラス
単位の処理が必要な気もするなあ.
* autoexec.c: 削除. autoload関係の機能は今後検討しよう.
* dict.c: 辞書クラスの正式名称をDictに変更した. 別名としてHashを用
意した. 今までDictionaryなどと長い名前にしていたが誰も使っていな
かったしね. *BACKWARD INCOMPATIBILITY*
* parse.y: Dictを生成する構文を追加. こちらを{..}にした.
* parse.y: 配列を生成する構文を[..]に変更した. 過去のRubyスクリプ
トとの互換性が保てないが, Dictを生成する構文を導入するに当たり,
perl5に合わせて(意識して), 変更する時期は今しかないと考えた.
*BACKWARD INCOMPATIBILITY*
* eval.c(Feval): eval()でメソッドを定義する時, 定義されるクラスを
メソッドの所属するクラスにした. 今まではObjectクラスに定義されて
いた.
* parse.y: ローカル引数がない時のeval()で落ちていた.
Tue Jul 12 09:41:28 1994 Yukihiro Matsumoto (matz@ix-02)
* pack.c: uuencode形式のサポート.
* `-0'を`-R'に. 出力レコードセパレータをコマンドラインから指定する
方法はなくなった. どうも, 仕様がゆれるなあ.
Mon Jul 11 09:51:24 1994 Yukihiro Matsumoto (matz@ix-02)
* ruby.c: `-r'オプションは`-0'オプションになった. 当面は`-r'も有効
だが変更される可能性がある. `-R'は当面はそのまま.
* version.c: version表示に日付を含めた.
* parse.y: private methodの復活. RubyのprivateメソッドはC++におけ
るprotected methodに該当するもので, `@'で始まる名前を持つ.
* env.h: struct ENVIRONの定義を分離.
* parse.y: `\$var', `\@var', `%var'も許すように.
* variable.c(Fdefined): idも引数として受け付けるように.
* parse.y: if文/unless文にキーワードthenを追加. thenなしというのは,
意外と間違いが多いので. もちろん省略できる.
Sat Jul 9 02:16:04 1994 Yukihiro Matsumoto (matz@dyna)
* eval.c(rb_eval): class/moduleの評価で新しいスコープを割り当てて
いなかった. スコープ割り当て部分をrb_call()からrb_eval()に移した.
* eval.c(rb_call): realloc()に渡される事のある, ローカル変数用の領
域をalloca()していた. たまに落ちるわけだ.
* string.c(Fstr_times): 割り当てた領域を越えた部分を変更していた.
Wed Jul 6 15:52:42 1994 Yukihiro Matsumoto (matz@ix-02)
* socket.c: Socket -> BasicSocket, RawSocket -> Socket に改名.
* string.c(ucfirst,lcfirst): 最初の1文字だけの大文字/小文字変換.
* numeric.c(chr): 整数の文字列化メソッド.
* inits.c, dbm.c: DBMが使えない時はクラスそのものを定義しないよう
にした. 利用できないクラスはnilとすることを今後のポリシーとしよ
う(いままではアクセスした時点でエラーが発生していた). autoexec()
のあり方も検討が必要になりそうだ.
* bignum.c(bigadd): バグ修正.
Thu Jul 7 11:12:18 1994 Yukihiro Matsumoto (matz@ix-02)
* eval.c(Fload,Feval): eval_treeをクリアし忘れていた.
* _inspect: オブジェクトを可読形式の文字列に変換する(主にデバッグ
出力用).
Wed Jul 6 00:57:18 1994 Yukihiro Matsumoto (matz@dyna)
* numeric.c, bignum.c: 整数に対する`[]'演算子. nビット目がセットさ
れているかどうかを返す.
Tue Jul 5 12:48:39 1994 Yukihiro Matsumoto (matz@ix-02)
* io.c(Feof): 追加. コマンドラインからなる仮想ファイルについても
EOFが検出できるように.
* ruby.c: -l/-r/-R/-Xオプションの追加.
* ruby.c: -n/-pオプションのloopの付加などをメインルーチンに移動し
た. これで, オプションの解析途中で(`-c'オプションのせいで)終了な
どといったことはない.
* io.c(Fgets): 高速化. 凝ったことをしない方が速かった. 虚しい.
Mon Jul 4 15:55:48 1994 Yukihiro Matsumoto (matz@ix-02)
* Socket:getsockname/getpeername - ようやく仕様が安定した.
* io.c(Fgets): eachでgetsを記述するのではなく, getsでeachを記述す
るようにした.
Fri Jul 1 10:35:49 1994 Yukihiro Matsumoto (matz@ix-02)
* $ENV[env] = nil/$ENV.delete(env)で環境変数を削除できるようになっ
た. $ENV.deleteは環境変数の以前の値を返す.
* !~の定義が間違っていた.
* Dict,DBM:[]= - nilの代入によって要素を削除できるようになった. こ
れにともないnilはDictの要素になれなくなった.
* ソースの整理. 盲腸のような使われていないコードをなくしたり, 変数
名を付け変えたりした.
Fri Jul 1 00:21:29 1994 Yukihiro Matsumoto (matz@dyna)
* Array:join() - 要素数0の配列に対して空文字列を返す.
* RawSocket:open(),socketpair() - 文字列で指定できるドメインとタイ
プをいくつか追加した.
Thu Jun 30 13:51:29 1994 Yukihiro Matsumoto (matz@ix-02)
* -fオプションをなくした. 昔(loadのなかった頃)の名残なので, 今となっ
ては必要ないだろう.
* -sオプションを追加. perlの-sオプションと同じ動きをする.
* RawSocketクラスを提供する. Socketに対するシステムコールレベルの
アクセスが可能になった.
Thu Jun 30 00:27:19 1994 Yukihiro Matsumoto (matz@dyna)
* Socket - bug fixes.
* linuxではsyscall(SYS_select)が正常に動作しない.
* Socket:addr,peeraddr - 配列としてsockaddrの情報を返す.
Wed Jun 29 00:14:20 1994 Yukihiro Matsumoto (matz@dyna)
* Socket:setopt,getopt - setsockopt(2), getsockopt(2)へのアクセス
を実現.
* sprintf() - rubyにはunsignedは無いので, %uを取り除いた.
* sprintf() - %b, %x, %oでは2の補数表現, %B, %X, %Oでは符号付き表
現で出力するように. ここ数日でsprintf()の仕様がゆらいでいたが,
これで落ち着きそうだ.
Tue Jun 28 14:42:03 1994 Yukihiro Matsumoto (matz@ix-02)
* Bignum:<<,>> - 2の補数をとる処理を除いた. シフト演算には関係ない
処理だった.
* Bignum:^ - bug fix. 符合が反対だった.
* sprintf() - 2進出力子"%b"を追加.
* sprintf() - %x, %oでFixnumを出力する時, 2の補数表示を行なわない.
* sprintf() - %x, %oはやはり負の数の時は`-'を出力するように.
Mon Jun 27 14:56:13 1994 Yukihiro Matsumoto (matz@ix-02)
* sprintf() - Bignumについても%d, %oは(2の補数表現に変換して)正の
整数を表示するようにした.
* Bignumに対する論理演算の定義を修正した. 負の数は2の補数表現であ
るとみなし, かつ仮想的に左側に無限に1が連続しているような演算結
果を得る.
* Fixnum:<<,>> - 符合付シフトに変更.
* Bignum:>> - 負の整数のシフトに対応した.
* __END__, ^D, ^Zでスクリプトを終了できる.
* -xオプションを追加. #! ..rubyなる行まで読み飛ばす.
* -cオプションを追加. コンパイルのみを行う.
Sat Jun 25 01:37:21 1994 Yukihiro Matsumoto (matz@dyna)
* Fixnum:<< - 必要に応じてBignumに拡張して左シフトするように. よっ
て, シフト幅が32を越えるとCやPerlとは違った値を返す.
Fri Jun 24 10:01:28 1994 Yukihiro Matsumoto (matz@ix-02)
* ioctl()/fcntl() - システムコールを呼び出す前にバッファの大きさを
調節するようにした.
* String:toupper/tolower - 文字列を置き換えたコピーを作るのではな
く, 元の文字列の内容を変更するようにした.
* inplace editを実現した. perlと同じように`-i'オプションで指定する.
もっとも, こちらはMS-DOSのこととか考えてないけど.
* デフォルトの出力先を追加した. 今までは$stdoutに代入するしか方法
はなかった.
Fri Jun 17 10:55:08 1994 Yukihiro Matsumoto (matz@ix-02)
* 環境変数にアクセスする方法としてgetenv()/setenv()以外に$ENVを用
意した. $ENVは文字列-文字列の辞書であるかのように動作するEnvDict
オブジェクトが代入されている(eachはassocを与える).
* nilに代入するとcore dumpした. コンパイル時のチェックを強化.
* Struct: struct_new()の引数をGCプロテクトする必要がある. せめてス
タック領域だけでもスキャンできるようにしなければいけないんだろう
か? でも, 移植性がなあ.
Fri Jun 17 01:01:46 1994 Yukihiro Matsumoto (matz@dyna)
* Time::asctime() - 日付のフォーマットで日が落ちていた.
* Stat: StatはEtcなどと同様にStructで実現したので, Statクラスは無
くなった.
Thu Jun 16 10:32:23 1994 Yukihiro Matsumoto (matz@ix-02)
* bignum.c: いくつかのバグを修正した. Fixnumを渡すべきところで普通
のintを渡していた. 失敗.
* big2str() - 1桁ずつbaseで割る代わりに, 4桁ずつ割算を行なうように
した. これで多倍長割算の回数が1/4になる. さらに整数->数(文字)へ
の変換をテーブルを用いるようにした.
* rb_ivar_get_1() - すでに何らかのインスタンス変数を持つオブジェク
トでは, 未定義のインスタンス変数の値が不定値になっていた.
* yylex() - インスタンス変数の認識に失敗していた. attr()は正しく動
作していたので, 混用すると動作しなかった. 全部違っていたから動い
ていたのね.
* Object:attr() - すでにアクセスメソッドが定義されている時にはデフォ
ルトのアクセスメソッドを定義しないようにした. もっともアクセスメ
ソッドと同名のメソッドの区別はRubyには存在しないけど, それは仕方
がないよね.
* pack.c: エンディアンをautoconfで判定するようにしたので, v/Vが使
えるようになった. またntoh?()/hton?()も自前で用意した.
* Stat: st_rdevをアクセスするメソッドを追加. さらにシステムがstat
構造体にst_blksize, st_blockを持っているかをautoconfでチェックす
るようにした.
* ドキュメントを少し整備した.
* INT2FIX()のうち, 31bit幅が保証できないものは, int2inum()に置き換
えた.
Wed Jun 15 10:18:27 1994 Yukihiro Matsumoto (matz@ix-02)
* sprintf() - bignumの出力の時, 出力幅を正しく計算するようにした.
* str2inum() - baseが0の時, baseを自動判定するように(0xで始まる時
16 進, 0で始まる時8進).
Tue Jun 14 16:08:42 1994 Yukihiro Matsumoto (matz@ix-02)
* gc.c: Bignumを追加するのを忘れていた. 組み込み型を追加した時には
必ずmark()とsweep()にその型に関する処理を追加する必要がある.
* bignum: 割算も動いたような気がする. アルゴリズムを理解していない
ので, 自信がない.
Mon Jun 13 14:36:55 1994 Yukihiro Matsumoto (matz@ix-02)
* まだサポートしていないメソッドなどがあるが, 曲がりなりにもBignum
が使えるようになる. これでioctlも使える.
Fri Jun 10 17:26:42 1994 Yukihiro Matsumoto (matz@ix-02)
* Comparable: 基礎となるメソッドを`=='と`>'から`<=>'に変更した. 今
後Comparableのサブクラスは`<=>'だけを定義する必要がある.
Wed Jun 8 13:12:18 1994 Yukihiro Matsumoto (matz@ix-02)
* Need_Fixnum()をほとんどなくして, NUM2INT()で直接intに変換するこ
とにした. これで31bitに丸めて桁落ちをおこす問題がなくなる.
Tue Jun 7 09:45:31 1994 Yukihiro Matsumoto (matz@ix-02)
* ruby.h: マクロFIXABLE(n)を追加. ついでにFIXNUM周りの定義を変更し
て, 移植性を高めた(つもり).
* C++の予約語であるnewを削除した. しかし, もうひとつの予約語である
classに関しては, 置き換える単語が思いつかないこともあってそのま
まになっている.
* 31bitを越えそうなINT2FIX()を関数呼び出しに変えた. 将来bignumが導
入された時には自動的にbignumを返すようにする.
* readline() - 引数の`-'は標準入力を意味するようになった.
* ruby.h: 右シフトが論理シフトか算術シフトかは処理系依存のようなの
で, ruby.hでcppを使ってチェックするようにした. これでうまくいく
と思うのだが, 手元に符合付intを論理シフトする処理系がないので確
認できない. NEWS-OSのCCは確か右シフトはいつも論理シフトだったよ
うな気がするんだけど….
Mon Jun 6 10:10:22 1994 Yukihiro Matsumoto (matz@ix-02)
* FIX2INT()の定義を変更した. どうして昔はうまく動かなかったんだろ
うか? もしかして, 右シフトの符号拡張は処理系依存?
* FIX2INT()とFIX2UINT()を使い分けるようにした. もっともfixnumは31
ビットしかないので, 本質的な解決にはならないのだが(ioctlが組み込
みたかった).
* printを関数的メソッドから通常メソッドに変更. 引数が与えられない
時にはレシーバをプリントするようにした. これでprintをメッセージ
形式でも実行できるようになった. 例:
ruby -e 'readlines().sort.print'
上のスクリプトは, 引数として与えられた(あるいは標準入力から読み
込まれた)文字列を各行毎にソートして表示する.
* eval.c: argc,argvパターンで引数を受けるメソッドに引数が一つも与
えられない時, argvがnilになっていた(argv[0]にアクセスすると落ち
てしまう).
* _exit()を追加. こちらは例外処理など行なわない.
* dbmクラス: クラス名称をDBM(大文字)に統一した.
Sat Jun 4 00:51:04 1994 Yukihiro Matsumoto (matz@dyna)
* ループ変数にも属性や配列要素を指定できるようにした.
Fri Jun 3 09:49:48 1994 Yukihiro Matsumoto (matz@ix-02)
* 多重代入において, 属性代入, 配列要素への代入も行なえるようにした.
* Need_Fixnum(): nilを0に変換するように.
* Enumerable:min, max, index, includes - 追加. min, maxは要素が
`<=>'メソッドを持つことを仮定している.
* Dict/Dbm:length - 要素数を返すメソッド.
* Dbmクラスにto_aメソッドを追加.
* Sunにおけるsortの誤動作の件, 昨日の修正でfixされた. しかし, それ
でなぜ動かなかったのかは明らかではないが…. 比較関数がどんな値を
返しても指定した領域外をアクセスするのはバグではないか.
* ファイルの全内容を読んで, 各行を配列として返すメソッドはpythonを
参考にして`readlines'という名前にした. それにともないgetsに対し
てreadlineという別名を用意した.
Fri Jun 3 00:08:38 1994 Yukihiro Matsumoto (matz@dyna)
* Array:sort - 判別関数の戻り値はFixnumではなく, Intであるべきだっ
た. 間違い. Sunで動作がおかしかったのはこのせいかも知れない.
Thu Jun 2 11:48:37 1994 Yukihiro Matsumoto (matz@ix-02)
* IO:read_all() - ストリームの最後まで入力して, 各行を要素とする配
列を返すメソッドを追加. また関数メソッド read_all()も追加した.
これは引数のファイルから読み込んで各行を要素とする配列を返す. 意
味的には
def read_all()
ary = {}
while gets()
ary.push($_)
end
end
とほぼ等価である.
* String:atoiメソッドを削除. to_aメソッドからaが配列であるとの連想
を呼んで, 混乱を招かないため. 代わりにto_iメソッドを使うこと.
* 配列への変換メソッドto_aを導入した. 通常のオブジェクトは自分自身
を唯一の要素とする長さ1の配列を返す. 配列は自分自身を, 辞書はキー
と値のペアの配列を返す. Enumeratedをincludeしたクラスは, eachが
返す各要素を含む配列を返す.
* file.c: 不定個の引数を受けとるメソッド(chmod,chown,utimes)を書き
換えて, 整理した. それに伴い, 最初に全ての引数の型チェックを行な
うようにした. 型チェックに失敗すると処理を行なわずに例外を発生さ
せる.
* configure.in: 不必要なテストを行なわないように修正した.
Tue May 31 10:41:08 1994 Yukihiro Matsumoto (matz@ix-02)
* String:pack(): 2進数の文字列変換(B,b)で0と1が逆だった.
* Math.c: 実数系のメソッドに引数として整数が渡された時に自動的に変
換するようにした.
* toupper(), tolower(): 文字列の判定ミスで変換されていなかった.
* getopt_long()の仕様によって, スクリプトへの引数がインタプリタの
引数だと解釈されていた. 引数パターン文字列の先頭に`+'を追加.
* config.hを削除した. DEFINEはMakefileで与えられる.
* sprintf(): "%d"に文字列が与えられた時にはアドレスではなく内容を
整数に変換するようにした. ついでに浮動小数点数も変換するように変
更した.
* regexp.c: rubyの拡張正規表現(\d, \D, \s, \S)の処理で割り当てた領
域を越えてバッファに書き込んでいた. 処理前にバッファをきちんと拡
張するようにした. これで昨日問題にしていたメモリの問題は解決でき
たと思う.
* yylex(): ダブルクォート文字列中でダブルクォートを表現するため
のバックスラッシュ表現ができなかった.
Mon May 30 10:07:42 1994 Yukihiro Matsumoto (matz@ix-02)
* 演算子`!'の右辺も条件式であるとした. これによって, この演算子を
再定義する人は混乱するかも知れないが, 大多数のこの演算子を使う人
は混乱を避けることができると思う.
* autoconfを使って, 自動的にMakefile, config.hを生成するようにした.
これで, 大抵のマシンでは`configure'を実行した後, `make'一発でコ
ンパイルできると思う.
* clone: サブクラスに対して用いられた場合, 元のオブジェクトと同じ
クラスのインスタンスを返すように(以前はビルトインクラスの場合を
考えてなかった).
* ビルトインクラスのサブクラスも作れるように, リテラルのあるクラス
にもnewメソッドを追加した.
* malloc()で落ちる. purifyが必要かも知れない.
* re.c: rb_global_variable()の呼びだし形式の間違い. 変数へのポイン
タを渡さなければいけない.
* parse.y: ローカル変数の扱いに引数の評価順に依存する移植性のない
部分があった.
* attr(): 属性設定のバグを直した. いつ内部仕様が変わったんだろう…?
Sat May 28 23:08:18 1994 Yukihiro Matsumoto (matz@dyna)
* 正規表現キャッシュの文字列一致判定をポインタ一致から内容一致に変
更した. そういえば文字列リテラルは一回毎に新しくオブジェクトが生
成されるのだった.
Fri May 27 11:42:00 1994 Yukihiro Matsumoto (matz@ix-02)
* 正規表現の文字コードのデフォルトを漢字非対応にした. これによって
若干の高速化が図れる.
* trから文字削除(delete), 文字圧縮(squeeze)を分離した. それにとも
ないtrのオプション引数はなくなった.
Thu May 26 10:32:55 1994 Yukihiro Matsumoto (matz@ix-02)
* スクリプト読み込みルーチンを書き直して, 通常ファイル以外のファイ
ル名や空文字列がスクリプトとして与えられた場合に対応した. また,
標準入力からスクリプトを読み込む時に, 一時ファイルが/tmpに残らな
いようにした.
* Fixnum:id2name - IDから文字列に戻す関数. String:internの逆.
* Array: 配列の範囲外の要素をアクセスした時に例外を発生させずに,
nilを返すようにした. 配列は自動的に拡張される.
* string:stripを追加.
* -nオプションが-eオプションを複数指定した時も動作するように.
* parse.yで<sys/types.h>もインクルードするようにした.
* fname周りの細かいbugを修正.
Wed May 26 11:45:10 1994 Yukihiro Matsumoto (matz@dyna)
* 定数をキャッシュするようにした. 繰り返しが多い場合には有効のはず
だが, 一度しかアクセスしない場合は遅くなるなあ.
Wed May 25 00:42:24 1994 Yukihiro Matsumoto (matz@dyna)
* 多重代入文(foo, bar = 1, 2)の採用.
* 条件式部に文字列あるいは正規表現リテラルをおくと`=~'演算子によっ
て`$_'と比較される. 更に`...'の両辺では整数リテラルが`$.'と比較
される.
Mon May 23 23:27:03 1994 Yukihiro Matsumoto (matz@dyna)
* &式 形式はなくなった. 代わりにkernel:apply(id, args..)を導入.
* def op () ..形式の導入. opは再定義可能な演算子.
* constantの代入時チェック. 既に初期化されている定数に代入した場合
は例外が発生する.
* 多重代入文.
Thu May 19 22:57:07 1994 Yukihiro Matsumoto (matz@dyna)
* 複合文でもvoid valueのチェックを行うようにした.
* untilの動作の修正(do..until型だった).
Wed May 18 01:06:25 1994 Yukihiro Matsumoto (matz@dyna)
* 移植に関する若干の問題を修正.
* 別名の構文を「def a b」にした.
* until/unless: 演算子から制御文へ. 例外を捕捉する機能はそのまま.
* 選択可能な機能をconfig.hからdefines.hに移動.
Fri May 13 23:20:21 1994 Yukihiro Matsumoto (matz@dyna)
* -yオプションを新設. -dオプションからコンパイラのデバッグ部分を分
離した.
Tue Apr 25 20:17:33 1994 Yukihiro Matsumoto (matz@dyna)
* マルチバイト文字列を識別子に使えるように. 個人的には使いたくは無
いけどなあ.
* `-v'フラグの状態を$verboseでアクセスできるように.
* CVSの導入に伴い, バージョン管理の方法を変更.
* 真面目にChangeLogをつける事にした.
Tue Mar 8 10:09:25 1994 Yukihiro Matsumoto (matz at nws119)
* %変数名 によるクラス定数を導入.
* undef メソッド によるメソッド定義の取り消しを導入.
* rb_get_method_bodyではthe_envを変更せず, rb_call()で明示的に変更
するように. これでresponds_toなどで環境が破壊されない.
Mon Mar 7 17:46:15 1994 Yukihiro Matsumoto (matz at nws119)
* 「&文字列」形式. 「式.文字列」型のメッセージセンドはなくなった.
* 自己代入形式(+=. -=, ...)
* obj.attr = expr形式の採用.
Thu Feb 24 16:23:28 1994 Yukihiro Matsumoto (matz at nws119)
* toint, tofloat, print_stringをそれぞれto_i, to_f, to_sに変更.
* String:clone - Copy on Writeの実現.
Tue Feb 22 11:11:44 1994 Yukihiro Matsumoto (matz at nws119)
* re.c: マッチした文字列の保存に失敗していた.
* trap: 可能ならば処理に時間のかかるシステムコール(read, wait,
sigpause, select)をフックして割り込み処理の即答性を高める(DOSな
どでは無理だなあ).
* trap: 割り込みをその場で処理するか(迅速だが危険), 安全なタイミン
グで処理するかを選択できるように.
Tue Feb 17 11:11:12 1994 Yukihiro Matsumoto (matz at nws119)
* trap: 割り込みハンドラ.
Wed Feb 16 12:29:12 1994 Yukihiro Matsumoto (matz at nws119)
* String:crypt: 暗号化ルーチン
* "::"演算子の追加. a::b は {a, b}と同義. a::b::c は {a, {b, c}}と
同義(右結合). 同義とはいうものの, "::"演算子を使った方が少しだけ
メモリ効率が良い.
* Dir.rmdir(), File.unlink(), File.utime() -- 各システムコールへの
インタフェース.
* kill -- kill(2) I/F
* select(): readのチェックではstdioにバッファリングされているかど
うかをチェックするように.
Tue Feb 15 15:08:31 1994 Yukihiro Matsumoto (matz at nws119)
* file.c: statをキャッシュするように.
* File:utime()を追加.
* unliteralize(): フラグを破壊していた.
* Bug(): coreを吐くように.
* String:tr -- tr(1)互換. 引数パターンがちょっと違うけど….
Mon Feb 14 18:24:13 1994 Yukihiro Matsumoto (matz at nws119)
* unless, untilが例外も偽と見なすように.
* select() -- select(2) I/F
* Array:pack, String:unpack: perlのpack/unpackの同等品
Tue Feb 8 17:11:10 1994 Yukihiro Matsumoto (matz at nws119)
* setenv()のないシステムのためにputenv()を使ったコードも用意した.
Mon Feb 7 09:52:44 1994 Yukihiro Matsumoto (matz at nws119)
* 引数の一番最後に`*'を置けるようにした. これでrest引数のリストを
操作する必要が少なくなる.
Fri Feb 4 18:23:26 1994 Yukihiro Matsumoto (matz at nws119)
* ruby-mode.elを書き直す. ずいぶんましになったと思う.
* 文字列リテラルのCopy on Writeを実現. これで文字列がリテラルであ
るからといっていちいちcloneしなくても済む.
Tue Feb 1 09:21:09 1994 Yukihiro Matsumoto (matz at nws119)
* sub(), gsub()で, マッチした文字列を$&, $1..$9でアクセスできるよ
うにした. 同時にマッチした部分文字列をコピーしておくように(元の
文字列が変更されても状態を保存するため).
Mon Jan 31 15:16:58 1994 Yukihiro Matsumoto (matz at nws119)
* プライベートメソッドの仕様を変更. 今までは同じクラスのメソッドか
らしかアクセスできなかったが, サブクラスのメソッドからもアクセス
できるようにした(C++におけるprotected メンバ関数).
* メソッドサーチのアルゴリズムを改善し, 10%程度の高速化を行なった.
* 高速化. Cで記述されたメソッドを呼び出す時にはsetjmpを呼ばないよ
うにした. これでCメソッドを多用する場合には3倍程度高速になった.
Fri Jan 28 15:44:04 1994 Yukihiro Matsumoto (matz at nws119)
* sh-modeを元にruby-mode.elを作る. 演算子で終る, 2行に渡る文には対
応していないけど….
Thu Jan 27 11:35:19 1994 Yukihiro Matsumoto (matz at nws119)
* freenode(): NODE_NILの解放忘れ.
* 字句解析部のバグ修正(コメントの後の状態を戻し忘れ).
* protect .. endのバグ修正. GC_LINKのネストが不正だった.
* joinのバグ修正(使っているオブジェクトをfreeしていた).
* splitのバグ修正(アルゴリズムがおかしかった).
* fork()を追加.
Wed Jan 26 17:09:56 1994 Yukihiro Matsumoto (matz at nws119)
* ファイルテストメソッドの追加.
* rb_autoexec(): クラスを初めてアクセスした時の挙動を制御できるよ
うにした. これでautoloadも実現できる. これにともないメソッド
unknownはなくなった.
Tue Jan 25 15:51:36 1994 Yukihiro Matsumoto (matz at nws119)
* Dbmクラス, Mathモジュールを作成.
* -Iオプションでサーチパスに追加できるように.
* サーチパスを変数$load_pathに設定できるように.
* load(): ダイナミックロードを使えるようにした.
Tue Jan 18 14:14:01 1994 Yukihiro Matsumoto (matz at nws119)
* Comparable:"<=>"
* Float,Fixnum:"**"
* Array:sort
Fri Jan 14 16:53:37 1994 Yukihiro Matsumoto (matz at nws119)
* version 0.07
* メソッドに関するドキュメントを充実させた.
* String:index(): 引数positionを増やした.
Thu Jan 13 15:13:52 1994 Yukihiro Matsumoto (matz at nws119)
* 未初期化の変数アクセスをなくした.
* 無駄なhash tableのアロケーションを削除.
* Purify'd(on Sun)
* ~RE と ~STRのコンパイル時展開の抑制.
* Sunへ移植. signal()の戻り値. RDataのbug修正.
* parse.y: nlsルールを削除.
* yylex(): 改行と符合の解析部分を変更.
* missing/strftime.c: 移植用.
* Time:strftime: その他のメソッドもstrftimeを利用するように.
* メソッド再定義時にメソッドキャッシュをクリアする.
Fri Jan 7 15:23:20 1994 Yukihiro Matsumoto (matz at nws119)
* Float:coerce(): FixnumとFloat以外の引数を与えられるた時には例外
を発生するように.
* Stat: stat構造体の全てのメンバに対するアクセスメソッドを用意.
* 未定義のクラス/モジュールへの参照がunknownメソッドを呼び出すよう
にした.
* baseline - version 0.06.
Diffstat (limited to 'spec')
-rw-r--r-- | spec | 3244 |
1 files changed, 3244 insertions, 0 deletions
@@ -0,0 +1,3244 @@ +.\" spec - -*- Indented-Text -*- created at: Tue May 25 15:18:26 JST 1993 + +* Ϥ(ʤRuby?) + +RubyϡUNIXǼڤ˥֥ȻظץߥפȤ˾ +¸뤿ޤ줿. ΤɬפȻפ줿: + + * ʸˡ䵡ǽñǤ. + * ֥ȻظץߥݡȤ뵡ǽ + ĸȤ߷פƤ. + * 饦ɥबû(ץǤ). + * OS(UNIX)εǽñѤǤ. + * ץȸȤƻȤ. + * ϤfreeǤ. + +ʤɤǤ. ֥ȻظȤưŪǤSmalltalkC++ʤɤ +ξΰƤϤ뤬, ä˼ڤʥץߥȤ˷ +Ƥ, ƤΤǤϤʤä. ץȸǤPerl +Tcl˥֥Ȼظǽɲäƥ¸ߤ뤬, ϡּ +ڤ˥ץߥפȤƤϤƤ, դ˥֥Ȼظ +ǽä. ä, ξ߷ +ɬפȹͤ줿. Ƨޤ߷פ줿Rubyħ: + + * ץǤ. + * ñ㳰ξʤʸˡ. + * ʬʥ֥Ȼظǽ. + * Ǥ䤹(黻ҷʤ). + * ١쥯. + * 㳰ǽ. + * ʬ˶Ϥʥ饹Ȥ߹ޤƤ. + * OS뵡ǽ. + * ĥ䤹. + +ʤɤ. RubyshperlΤäƤͤˤȤäƤξQˤʤ뤿ä +Τ, θ줫μʰܹԤǽǤȻפ. ץޤ +RubyΥ֥ȻظǽˤĤƳؤ٤, 궯ϤʤȤǤ褦 +ʤ. + +Cǥ饹Ҥ뤳ȤRuby˶Ϥˤ뤳ȤǤ. +OSǤRubyưŪ˥֥ȥեǤ뤷, Ǥʤ +ƤRubyƥѥ뤷Ȥ߹ߥ饹ɲäΤưפǤ. + +* Rubyδ + +RubyδŪʬ˾, ʸˡ㳰ʤΤǿȤˤĤΤ +ۤʤ. + +** + +ץȸνˤʤ餤, ʸʳ'#'ޤǤϥ +ȸʤ. + +** ڤ국 + +ʸ(֤ȥڡ)Ӳ(\n)ڤ국Ȥʤ. , + + a + + b + +Τ褦˹Ԥ(ʸ)ǽ, ιԤ³Ȥʾʳϲ +ʸζڤȤǧ. + +** ̻ + +ե٥åȤ`_'ǻϤޤ, ե٥å, , `_'Ǥդ¤Ӥϼ +̻ҤǤ. ̻ҤŤϤʤ. + +** ͽ + +ͽϰʲ̤Ǥ + + break, case, class, continue, def, do, else, + elsif, end, ensure, for, func, if, in, + include, module, nil, protect, redo, resque, retry, + return, self, super, then, undef, unless, until, + using, when, while, yield, __END__ + +ͽϥ饹̾, å̾, ѿ̾ʤɤѤ뤳ȤϤǤʤ. + +** ƥ + +ʲΥƥ뤬 + + ʸƥ + + "..." # Хååβᤢ + '...' # Хååβʤ(\\\'ϲ᤹) + + Хåå嵭ˡ + + \t (0x09) + \n ʸ(0x0a) + \r ʸ(0x0d) + \f ڡʸ(0x0c) + \b Хåڡ(0x08) + \a ٥(0x07) + \e (0x1b) + \nnn 8ʿɽ(n0-7) + \xnn 16ʿɽ(n0-9,a-f) + \^c ȥʸ(cASCIIʸ) + \C-c ȥʸ(Ʊ) + \M-c ʸ(c|0x80) + + ɽƥ + + /.../ + + ɽ + + ^ Ƭ + $ + . Ǥդ1ʸ + \w ѿ. [0-9A-Za-z_]Ʊ + \W ѿ + \s ʸ. [ \t\n\r\f]Ʊ + \S ʸ + \d . [0-9] Ʊ + \D + \b 춭ʸ(ʸ饹) + \B 춭ʸ + \b (0x08)(ʸ饹) + [ ] ʸ饹 + * ľɽ0ʾη֤ + + ľɽ1ʾη֤ + {m,n} mnη֤ + ? 0ޤ1 + | + ( ) ɽޤȤ + + ¾˥Хåå嵭ˡͭǤ. + + ͥƥ + + 123 + -123 (Ĥ) + 1_234 (10ʿ`_'ޤळȤǤ) + 123.45 ư + 1.2e-3 ư + 0xffff 16 + 0377 8 + ?a ʸ`a'Υ(97) + ?\C-a ȥaΥ(1) + ?\M-a aΥ(225) + ?\M-\C-a -ȥaΥ(129) + + ?ɽǤƤΥХåå嵭ˡͭǤ. + +** 롼ԥ + +ϳ̤ˤäƥ롼ԥ뤳ȤǤ. ˳ˤϼ¤Ӥ +. ¤ӤҤ, ȼζڤˤϲԤ ';' Ѥ. +¤ӤͤϺǸɾͤǤ. Ĥޤ + + (; ; ...) + +ͤϺǸɾͤˤʤ. + +** ƥ + +Ҥο, ʸ, ɽγƥƥϼǤ. + +** + +ϰʲηǤ. + + [ , ... ] + +줾μɾ̤ޤ֤. Ǥ0뤿 +ˤ϶ + + [] + +Ѥ. + +** Ϣ + +ϢȤǤդΥ֥Ȥ(ź)ȤƻƤǤ. Ruby +ǤϢSmalltalkѸڤDict()ȤƤФ. ܺ٤ϥ +饹DictιȤ줿. ϢϢϰʲη +. + + { =>, ... } + +줾μɾ̤ͤȤϢ֥Ȥ֤. +Ǥ0Ϣ뤿ˤ϶Ϣ + + {} + +Ѥ. + +** ѿ + +ѿˤ4ढä, μѿ̾κǽΰʸǷꤵ. +ƤʤѿȤͤnilǤ. + + 饹ѿ() + + `%'ǻϤޤѿϥ饹ѿǤ, Υ饹ƤΥ֥饹 + 黲ȤǤ. ѿؤϥȥåץ٥, ʤ + åɤǤ٥ǤΤ߲ǽǤ. ѿϥ饹֤ + ͤͭ, ȥåɤͤѹ뤳ȤǤ + Τ,ȤѤ. + + ѿ + + `@'ǻϤޤѿϥѿǤ, Υ饹ޤϥ֥ + Υåɤ黲ȤǤ. μ̿ϥ֥Ȥμ̿. + + Хѿ + + `$'ǻϤޤѿΥפϥХǤ, μ̿ϥץ + μ̿. + + 饹̾/⥸塼̾/ѿ + + ե٥åȤޤ`_'ǻϤޤѿϼ̻ҤȤƤФ, + ѿ, 饹̾ޤϥ⥸塼̾Ǥ. + + ֤Ǥϼ̻Ҥϥ饹/⥸塼̾Ȥߤʤ뤬(륯 + ¸ߤʤͤnil), κդ˸줿̻Ҥ,Υ + ǤϥѿȤƸʤ, Ʊ̾Υ饹⥸塼 + . ΰ̣Ǽ̻ҤؤȤƤƯ. + + Array # 饹 Array + Array = 15 # . ʸArrayϥѿ + print(Array, "\n") # `15'Ϥ + + ϥѥ˲ᤵ뤿, ̻Ҥؤºݤ˼ + ԤƤ, ʤƤ, ʹߤΥǤϤμ̻Ҥϥ + ѿȤߤʤ. + + Array # 饹 Array + if %FALSE + Array = 15 # Υɤϼ¹Ԥʤ, + # ʹArrayϥѿȤߤʤ. + end + print(Array, "\n") # `nil'Ϥ + + Υ롼ϰ츫ʣ, 饹/⥸塼̾ȥѿ̾ + ʣʤ¤, ̤ΥѿͤnilǤȹͤƤ⺹ + ٤Ϥʤ. + + RubyȤ߹ߴؿʸΥե٥åȤǻϤޤ̾ĤƤ, + 桼⥯饹/⥸塼̾ˤʸǻϤޤ뼱̻Ҥ, + ̾ˤϾʸޤ`_'ǻϤޤ뼱̻ҤȤȤ侩. + + ѿμ̿ϤΥåɤλޤ(ȥåץ٥Υ + ѿϥץνλޤ)Ǥ. + +˵ѿȸƤФüѿȤselfnil. selfϸߤΥ +åɤμ¹ԼΤؤѿǤ, nilNil饹ͣΥ +(ɽ)ؤѿǤ. εѿˤäƤ +ѹ뤳ȤϤǤʤ. ѿؤ㳰ȯ. + +** å + +֥Ȥ˥åŪʹʸåǤ, δ +ܷϰʲ̤Ǥ. + + 1.å̾(...) + + 1ɾ륪֥Ȥ, ̻Ҥǻꤵ + ɤƤӽФ. ֺǸΰ'*'³(ñ)Ǥ, + μɾ(Ǥɬפ)Ÿ, Ȥ + ɲä. + + Ĥʤˤϳ̤άǤ. + +å̾ȤƤǤդμ̻ҤѤ뤳ȤǤ. ѿ̾Ȥϼ̻Ҥ +֤̾㤦ΤǽʣƤʤ. + +** ؿ + +å, 쥷Фselfξ, 쥷Фάƴؿǥ +ɤƤӽФȤǤ. ξ1ĤʤǤ̤ξάϤ +ʤ. + +ؿǤ`@'ǻϤޤ̾ĥåɤƤӽФȤǤ. `@' +ϤޤåɤϴؿǤƤӽФȤǤʤ, 륯 +ޤ, Υ֥饹餷ƤФʤΤ, ץ饤١ȥåɤ +ƤФ. ץ饤١ȥåɤC++ˤprotected member function +. + +** ѡ饹ΥåɸƤӽФ + +åüʥȤƥѡ饹ΥåɤθƤӽФ +. ηϥåɤ˥ѡ饹Ѥ뤿 +˻Ȥ. + + super + + ߤΥåɤͿ줿Τޤޥѥ饹Ʊ̾Υ + ɤƤӽФ. + + super(...) + + ȤȤ˥ѡ饹Ʊ̾ΥåɤƤӽФ. ֺǸ + ΰ`*'³̾ΥåɸƤӽФƱ. + +** 黻 + +ץߥؤΤ˰ΥåɸƤӽФ湽¤ϱ黻ҷ +Ȥ. Rubyˤϰʲˤ黻Ҥ. ΤΤۤɷ̤, +Ʊα黻Ҥη̤ƱǤ. + + -(unary) +(unary) ! ~ + ** + * / % + + - + << >> + > >= < <= + <=> == != =~ !~ + & + | ^ + && + || + .. ... + :: + =() (+=, -=, ..) + yield + +ۤȤɤα黻ˤϥåɸƤӽФȤƲᤵ(饹˺ +Ǥ), ǤʤüʤΤ. Ǥʤü黻 +Ҥ + + &&(), ||(), =(), ...(ϰϻ), + yield(֥åƤӽФ) + +5ĤǤ. + +Ǥü黻Ұʳα黻ҷϥåɸƤӽФȸʤ. +ñ黻(+, -, !, ~) + + 1."黻"() + +Ȥ, 2黻Ҥ + + 1."黻"(2) + +Ȳᤵ. ¿黻(λȤ[])ϱ黻ҷ̤ʷȤ + + recv[arg..] + +, + + recv."[]"(arg..) + +Ȳᤵ. ǤƱͤǤ. + +** P + +if, unless, while, untilξȽμ, ü黻`&&', `||', +`...'ξդμ, ̾黻`!'αդϾPȸƤФ. PǤʸ +ɽƥϼ$_=~ƥפξάǤȤߤʤ. +黻`...'ξդǤƥ뤬$.==ƥפξάȲᤵ. + +: 黻`!'ü黻ҤǤϤʤΤ, Ԥʤ˵Ĥ +뤳. + + ! ʸƥ + ! ɽƥ + +ηǸƤӽФåɤΰ, ƥɽ֥ȤǤϤʤ. +`!'åɤϺʤɤȻפ. + +** + +ˤѿФ(), ץñˤ뤿Υ +å奬ȤƤ. ϰʲηǤ. + + ѿ = + +ϼɾ, ѿͤȤ. 饹⥸塼䵿ѿ +ˤǤʤ. 饹⥸塼ѹ뤿ˤclassʸ, +moduleʸѤ. ϱ黻ҷȤäƤ뤬, åɤǤϤʤ +Ǻ뤳ȤϤǤʤ. + +å奬ȤƤϰʲΤΤ. + + Ǥؤ + + 1[2,..] = n + + 1ɾ륪֥Ȥ, 2鼰nޤǤȤ + , "[]="ȤåɤƤӽФ. + + ° + + 1.̻ = 2 + + 1ɾ륪֥ȤФ"̻="Ȥ + ɤ, 2ȤƸƤӽФ. + + + + 1 op= 2 # 1ǽǤʤФʤʤ. + + ηŪˡּ1 = 1 op 2פŸ, ¹Ԥ. + ϥץޤΥ餹ŪΤ¸ߤǤ + . opȤƻȤ黻Ҥ + + +, -, *, /, %, **, &, |, ^, <<, >> + + 11Ǥ. 黻Ҥ`='δ֤˥ڡƤϤʤ. + +*** ¿ + +ƱʣѿԤʤȤǤ. ηϰʲ̤Ǥ. + + ѿ, [ѿ,...] = [, ] + +դμĤʤ, , ͤǤˤǤ +ѿ. ʳξˤ, 줾μͤѿ +. դѿοȱդǤοʤˤʤѿˤ +nil, ;äǤ̵뤵. + + foo, bar = [1, 2] # foo = 1; bar = 2 + foo, bar = 1, 2 # foo = 1; bar = 2 + foo, bar = 1 # foo = 1; bar = nil + + foo, bar, baz = 1, 2 # foo = 1; bar = 2; baz = nil + foo, bar = 1, 2, 3 # foo = 1; bar = 2 + +** ʬ + + if 1 [then] + ʸ1 + [ elsif 2 [then] + ʸ2 ]... + [ else + ʸn ] + end [ if ] + + Ƚʸ. else if ǤelifǤʤelsififϢ³ԤʤȤ + դ뤳. + + unless 1 [then] + ʸ1 + [ else + ʸ2 ] + end [ unless ] + + 1(nil)֤, 2ɾ㳰ȯʸ1ɾ + . + + 1 && 2 + + 1ɾ, ͤ(nilʳ)Ǥ, 2ɾ. + + 1 || 2 + + 1ɾ, ͤǤ, 2ɾ. + + 1 ... 2 + + 1ˤʤޤǤϵ֤, θϼ2֤ޤǤϿ֤. + 2ˤʤо֤ϵ + + case 0 + [ when 1 [, 2]... + ʸ1 ]... + [ else + ʸn ] + end [ case ] + + ʬ, CswitchPascalcase˻Ƥ. breakæФ뤳 + Ȥʸ˷³뤳ȤʤΤ. + + ΰפϡּn =~ 0]ǹԤʤ. Ĥޤ, + + case expr0 + when expr1, expr2 + stmt1 + when expr3, expr4 + stmt2 + else + stmt3 + end + + ϰʲifʸǤ. + + _tmp = expr0 + if expr1 =~ _tmp || expr2 =~ _tmp + stmt1 + elsif expr3 =~ _tmp || expr4 =~ _tmp + stmt2 + else + stmt3 + end + +** ֤ + + while + ʸ + end [ while ] + + 郎δ, ʸ֤¹Ԥ. + + until + ʸ + end [ until ] + 1 until 2 + + (nil)֤, ɾ㳰ȯ, ʸ֤ + Ԥ. + +** ƥ졼 + +ƥ졼Ȥ湽¤(ä˥롼)ݲΤѤåɤ +Ǥ. ƥ졼θƤӽФϰʲιʸǹԤʤ. + + do + ʸ1 + using ѿ + ʸ2 + end [ do ] + + ʸ2פ֥åȤꤷ, ʸ1Υåɤƥ졼Ȥɾ + . ʸ1Υȥåץ٥Υåɤƥ졼ȤƸƤӽФ, + 쥷Фɽ, μϥƥ졼ȤƤϸƤӽФʤ. ʸ + 1ʣμгơƥ졼Ȥƽ˸ƤФ. + +ƥ졼yield value¹Ԥ, ͤdoʸǻꤵ줿ѿ +֥å¹Ԥ. ֥åμ¹ԤλȤͤ +yieldͤȤ֤. åɤƥ졼ȤƸƤӽФ줿 +ɤϴؿiterator_p()Τ뤳ȤǤ. ˤEnumerable⥸塼 +grepåɤΤ褦˥ƥ졼ȤƸƤФ줿̤ΥåɤȤ +ƸƤФ줿Ȥưۤʤåɤ⤢. + + for ѿ in + ʸ + end [ for ] + + γǤФʸ¹Ԥ. ϰʲdoʸǤ. + + do ().each using ѿ + ʸ + end + + äƼͤΥ֥Ȥåeachʤ, for¹ + 㳰ȯ. + +** 㳰 + +ͽʤ֤ȯˤ㳰ȯ. RubyǤ㳰 +ª, ƻԤ, Ԥʤäꤹ뤳ȤǤ. + + protect + ʸ1 + [ resque + ʸ2 ] + [ ensure + ʸ3 ] + end [ protect ] + + ʸ1¹Ԥ, μ¹㳰ȯresqueǻꤵ줿ʸ2 + ¹Ԥ. ensure¸ߤprotectʸλɬ( + ェλǤʤ, 㳰, return, break, continue, redoʤɤˤ + æФǤ)ʸ3¹Ԥ. + +protectʳ, unless黻, until黻Ҥϱդͤ㳰ȯ +, դͤȤƵͿ줿ȸʤΤ, ۤ㳰 +ԤʤäƤ뤳Ȥˤʤ. + +** æ + + return [] + + åɤμ¹Ԥλ. + + continue + redo + break + + 嵭3Ĥϥ롼ǻȤ. + + continueϤäȤ¦Υ롼פμη֤Ϥ. redoϥ롼 + Υ롼ΥåԤʤ鷺, ߤη֤ľ. break + ϥ롼פæФ. CȰ㤤, breakϤäȤ¦Υ롼פæФ + Ѥ, caseȴѤϻʤ. + + retry + + protectʸresqueǻȤ, protectʸϤᤫ¹Ԥ. 㳰 + ԤʤäƤƻԤΤ˻Ȥ. + + fail([å]) * Kernel饹ΥåɤǤ. + + 㳰ȯ. åͿ줿ˤȯե + ̾, ֹ$@˥å$!˥åȤ. + +** ƥ졼ǤΥ֥åƤӽФ + + yield + + ƥ졼ǥ֥åθƤӽФԤʤ. yield¹Ԥ + ɤƥ졼ȤƸƤӽФƤʤˤ㳰ȯ. + +** 饹 + +饹빽ʸϰʲ̤Ǥ. + + class 饹̾ [ : ѡ饹̾ ] + + end [ class ] + +ͤnil. 饹̾ʸǻϤޤ뼱̻ҤǤ. 饹ΥͥȤϤ +ʤΤ¾ʸǤϥ饹Ǥʤ. + +** ⥸塼 + +⥸塼빽ʸϰʲ̤Ǥ. + + module 饹̾ + + end [ module ] + +⥸塼̾ʸǻϤޤ뼱̻ҤǤ. 饹Ʊ, ⥸塼 +ͥȤǤʤ. + +** 롼 + +饹˥⥸塼롼ɤ빽ʸϰʲ̤Ǥ. + + include ⥸塼̾ [, ⥸塼̾...] + +ߤΥ饹ޤϥ⥸塼(ȥåץ٥ǤObject)˻ꤷ +⥸塼롼ɤ. ˤä¿ŷѾߥ졼ȤǤ. + +** å + +̾(ðۥåɤǤʤ)åηϰʲ̤Ǥ. ̾ +ϥͥȤǤʤΤ, åʸǤϥåʸƤӸ +ӽФʤ. + + def [func] å̾ [ ( [, ...][, * ] ) ] + + end [ def ] + +å̾ϼ̻ҤޤʸǤ. 黻Ҥκˤʸ +ǻꤹ. ¤ӤκǸ`*', ¿Ϳ줿 +°, ǸΰȤͿ(ʤˤϥ顼). + +`func'ꤵ줿ˤϤΥåɤϴؿǤƤӽФ +ȤǤؿŪåɤˤʤ. + +** ðۥå + +åˤϤ⤦ðۥåɤ. ϰʲ̤Ǥ +. + + def .å̾ [ ( [, ...][, * ] ) ] + + end [ def ] + +ηϼͤǤ륪֥Ȥðۥåɤ. ͤ +(ӥȥ饹Ǥʤ)̾索֥Ȥ, 饹ޤϥ⥸塼Ǥ +ɬפ. ̾åȤϰۤʤ, ϥåǤ +ȤƸƤӽФȤǤ. + +ðۥåɤΥ֥Ȥˤ°åɤǤ. ä̾ +ϷѾʤ, 㳰Ȥƥ饹ðۥåɤϤΥ֥饹ˤ +. ؤХ饹ðۥåɤ¾Υ֥Ȼظ +ˤ륯饹åɤƯ. + +** åɤ̾ + +ʲηǥåɤ̾Ĥ뤳ȤǤ. + + def å̾1 å̾2 + +̾դ줿åɤ, λǤΥåѤ, Υ +åɤƤ, ŤåɤƤӽФ줿ΤƱƯ +. + +** åä + +åɤäˤundefѤ. + + undef å̾ + +̻Ҥޤʸǻꤷåɤä. + +defˤ̾undefˤäȤȥ饹Υե +ѥ饹Ωѹ뤳ȤǤ. , ʬȤ˥å +äƤդʤȴ¸Υåɤưʤʤǽ +. + +* RubyȤ߹ߵǽ + +Rubyץߥδܤϥ饹, ⥸塼ȤΥåɤνǤ. +RubyˤϽϤΤΤ˰ʲεǽȤ߹ޤƤ. 饤֥ +ɤ뤳ȤˤäƵǽ뤬, ˴ؤƤϤ줾Υ饤֥ +ΥɥȤȤƤ餤. + +ü`+'ΤĤåɤϴؿåɤǤ. + +** ؿ + +Rubyˤϸ̩ʰ̣ǤϴؿϤʤKernel饹Υåɤΰ( +饹ؿǸƤӽФΤ), ؿŪѤ. ؿŪѤ +åɤʲˤ. Υåɤݤˤϸߴ +ͤƹԤʤ٤Ǥ. + + _exit(status) + + + ץμ¹Ԥλ. statusλơȤ. + exit()Ȥϰä, 㳰ʤɤϰڹԤʤʤ. fork()θ, + ץλʤɤѤ. + + caller + + caller(level) + + + åե졼फ, åɤθƤӽФΥե + ̾, ֹ, ǤȤ֤. levelͿ줿 + ϸߤΥåե졼levelʾξ֤. + + eof() + + + ޥɥ饤ϤEOFãƤ, ֤. + + eval(expr) + + + exprȤͿ줿ʸrubyץȤƲ,¹Ԥ. + + exec(command) + + + ¹ԤƤץλ, commandʸǻꤵ + ̥ץư. + + exit([status]) + + + ץμ¹Ԥλ. statusȤͿ줿, + ͤRubyޥɤνλơȤ. ǥեȤ0. + + fail([message]) + + + 㳰ȯ. åͿ줿ˤϤƥ + ѿ`$!'˥åȤ, ȯ֤ƥѿ`$@'˥åȤ. + + fork() + + + forkƥॳ¹Ԥ, ҥץ. ܺ٤ + fork(2)ȤΤ. ƥץ¦ǤϻҥץΥץid + ֤, ҥץ¦Ǥnil֤. 餫θǻҥץ + ˼Ԥˤ㳰ȯ. + + format(format, ...) + + + եޥåȤȤͿ줿ʸCsprintfƱ褦 + ᤷ, Ÿʸ֤. åsprintf()̾. + + RubyˤformatҤγĥˤĤƤsprintf()ιȤ + . + + getc() + + + ɸϤʸФ. ͤɤ߹ʸʸ + (ASCII)ɽFixnumǤ. + + getenv(name) + + + name˳ĶѿФ. + + gets(pattern, replace) + + + ȤͿ줿ե(ʤɸ)ɤ߹ + , ɤ߹ߤˤϤʸ֤. եν + ãˤnil֤. Ԥζڤϥƥѿ`$/'ˤä + ѹǤ. ɤ߹ʸϥƥѿ`$_'ˤ⥻åȤ. + + gsub() + + + ƥѿ`$_'λؤʸФִԤʤ. ʸ + pattern˥ޥåʬreplace֤. String饹 + gsubåɤβȤΤ. + + iterator_p() + + + åɤƥ졼ȤƸƤӽФ줿˿, Ǥʤ˵ + ֤Ҹ. + + kill(signal, pid...) + + + pidǻꤵ줿ץ˥ʥ. ʥϥʥ + 椫̾ǻꤹ. ͤĥʥ(뤤ϥʥ̾ + `-')ͿȥץǤϤʤץ롼פ˥ʥ + . + + load(file) + + + fileɤ. fileɤѥϥƥѿ$LOAD_PATH + Ƿꤵ. + + open(file[, mode]) + + + fileץ, File֥Ȥ֤. ե̾ϥ + ե. ե̾`|'ǻϤޤˤ³ʸ + ޥɤȤƵư, ѥץ饤. + + ޥ̾"-"Ǥ, open()Rubyλҥץ, + λҥץȤΥѥפ֤. + + modeϥեΥ⡼ɤꤹ. ϰʲΤΤ + 줫ʸǤ. + + r ɤ߹. openեϤ餫¸ߤƤ + ɬפ. + + r+ ɤ߽ξ. openեϤ餫¸ߤƤ + ɬפ. + + w . ե뤬¸ߤƤ, Ĺ0ˤ + . ¸ߤƤʤп˥ե. + + w+ ɤ߽ξ. ɤ߹ߤԤʤ뤳Ȱʳ"w"ƱƯ + . + + a ɲý. եϤ餫¸ߤƤɬ + . ߤϥեκǸɲä. + + a+ ɤ߽ξ. ե뤬¸ߤƤʤп˺ + . ֤ϥեκǸ˽. + + ⡼ɤά줿ΥǥեȤ"r"Ǥ. + + print(arg1, ..., argn) + + ˽Ϥ. Ϳʤˤϥ쥷ФϤ. + ʸʳΥ֥ȤȤͿ줿ˤ, + ֥Ȥto_såɤˤäʸѴƤϤ. + ƥѿ`$;'(ϥեɥѥ졼)nilǤʤͤ + ȤƤˤ, ưδ֤ˤʸϤ. ƥ + ѿ`$\'(ϥեɥѥ졼)nil ǤʤͤåȤ + ˤ, ǸˤϤ. + + printf([port, ]format, arg1, ..., argn) + + + Cprintf()Ʊformat˽ʸѴ, Ϥ + . 1IOΥ֥饹ΥǤäϤΥ + ֥ȤФƽϤԤʤ. ǥեȤ$stdout˽Ϥ. + + RubyˤformatҤγĥˤĤƤsprintf()ιȤ + . + + rand(max) + + + 0maxۤʤϰϤȯ. ͤFixnum. + + require(file) + + fileɤ. loadȤưΰ㤤requireϥɤե + Υեѥѿ$LOAD_FILES˳ФƤ, ˥ɤե + ϺƥɤʤǤ. ºݤ˥ɤˤ%TRUE, + ˥ɤƤˤ%FALSE֤. + + select(reads[, writes[, execpts[, timeout]]]) + + + select(2)¹Ԥ. reads/writes/execptsˤIO(ޤϤΥ + 饹)ΥͿ. timeoutFixnum / Float + / TimeΤ줫ǻꤹ. ͤtimeoutΩˤ + nil, ǤʤȤ3Ǥ֤, γǤ// + 㳰ԤΥ֥ȤǤȤƻ. + + setenv(name, value) + + + nameǻꤵĶѿvalue˥åȤ. + + sleep([sec]) + + + secäץμ¹Ԥߤ. secά줿, ץ + SIGALRMʤ¤, ʵפ˥פ. ºݤ˥ + פÿ֤. + + sprintf(format, ...) + + + formatʸCsprintfƱ褦˲ᤷ, Ÿ + ʸ֤. åformat()̾. + + + formatҤCsprintf()դ(, Ruby + unsignedʤΤ, %uϽ)˲ä, %b, %B, %O, %XȤ + ȤǤ. %bϿͤ2ɽ, %B, %O, %X, 줾, 2, + 8 , 16ʿɽԤʤ, ονκݤ2ɽ + Ϥʤ, ɽƬ`-'ĤΤɽ. + + srand([]) + + + νͤꤷ, Ť֤ͤ. ͤά줿 + time(3)֤ͤǥեȤȤ. + + sub() + + + ƥѿ`$_'λؤʸФִԤʤ. ʸǺ + pattern˥ޥåʬreplace֤. String饹 + subåɤβȤΤ. + + system(command) + + + ޥɤ¹Ԥ, νλơ֤. + + system2(command) + + + ޥɤ¹Ԥ, νϤʸȤ֤. + + trap(command, signal...) + + + signalγߤäcommand¹Ԥ. signalϥ + ʥ̾ʥֹ. commandȤSIG_IGNޤIGNORE + ˤϤΥʥ̵뤹(ǽʤ). SIG_DFLޤ + DEFAULTꤷϥǥեȤưԤʤ. + + wait() + + + ҥץλΤԤ, λҥץpid֤. + ҥץĤʤnil֤. + + waitpid(pid, flags) + + + λҥץνλԤ, Υץλ˿ + . ҥץ¸ߤʤ, Υ֥å⡼ɤǻҥץ + ޤλƤʤˤnil֤. waitpid(2)wait4(2) + ƤʤޥǤflagsϤĤnilޤ0ǤʤФ + ʤ. + +** ƥѿ + + $! 顼å. fail()ꤹ. + + $@ 顼ȯΥե̾ȹֹ椬 + + "ե:ֹ[:å̾()]" + + ηdzǼ. + + $& Ǹѥޥå + + $1..$9 Ǹѥޥånܤγ̤˥ޥå + ͤǼ. ̤ʤniläƤ. + + $~ ǸΥޥå˴ؤ. åȤ$&$1..$9 + ͤѲ. + + $= ѿͤnilǤʤ, ѥޥåʸ + Ӥǥե٥åȤʸʸ̤ʤ. ǥե + Ȥnil(̤). + + $/ ϥ쥳ɥѥ졼. եʸФeach + Ԥʤʬʸꤹ. $/˶ʸ("")ꤹ + ñ̤ϤԤʤ, nilꤹΤ + ɤ߹. $/ˤɽϻȤʤ. ǥեȤ + "\n". + + $\ ϥ쥳ɥѥ졼. ѿʸꤹ + write()print()٤˺ǸˤʸղäƽϤ + . ǥեȤnil(ʤˤɲäʤ). + + $, Array:join()ΥǥեȤζڤʸ. print()γư + δ֤˽Ϥʸ. + + $; String:split()ΥǥեȤζڤʸ. + + $. Ǹɤϥեιֹ. + + $_ Ǹgets()ʤɤɤ߹ʸ. + + $0 rubyץȤ̾ + + $* rubyץȤͿ줿. rubyȤФ + Ƥ. + + $$ ¹rubyץpid. + + $? Ǹ˼¹Ԥҥץstatus. + + $ARGV $*Ʊ. + + $ENV Ķѿ˥Ϣ(EnvDict). ѿ + `for'Ԥʤѿ̾ͤΥڥͿ. + + $FILENAME ؿgets()Ǹɤ߹Υե̾. + + $DEBUG `-d'ե饰ξ() + + $LOAD_PATH եɤ˸ǥ쥯ȥؤΥѥ + ޤ. ưˤϥǥե(ѥ˻ꤹ + )˲ä, ĶѿRUBYLIBͤrubyư-Iץ + ǻꤵ줿ͤɲä. + + $stdin ɸ + $stdout ɸ + $stderr ɸ२顼 + + $VERBOSE `-v'ե饰ξ() + + $VERSION rubyΥСʸ + +** ƥ + + %TRUE 1(Fixnum) + %FALSE nil + + 줾쿿ͤɽ. ȽǤnil, ʳƤͤ + ȤȽǤ뤿, ֤ͤåɤ%TRUEʳͤ + Τ¸ߤΤ, ӤѤΤŬڤǤʤȤդ + Ǥ. 㤨мμϿˤʤʤ. + + (2 < 3) == %TRUE + + å"<"Ͽλ֤ͤΤ, ξͤ3Ǥ, + %TRUE1Ȥϰۤʤ. %FALSE˴ؤƤ, Τ褦 + ʤ. + +** 饹/⥸塼 + +*** Array(饹) + +źȤΥ饹Ǥ. ϰŪˤ``[...]'' +Ԥʤ. + +SuperClass: Object + +Included Modules: Enumerable + +Methods: + + self[nth] + self[start..end] + self[start, length] + + Ǥ˥. ǽηǤnthܤǤ + ֤, 2ܤηǤstartܤǤendܤǤޤ + ʬ֤. 3ܤηǤstartܤlengthĤǤޤ + ʬ֤. + + self[nth] = val + self[start..end] = val + self[start, length] = val + + Ǥѹ. ǽηǤnthܤǤval + ѹ. 2ܤηstartܤǤendܤǤޤǤ + valѹ. 3ܤηǤstartܤlengthĤǤval + ѹ. + + 2, 3ܤηǤvalǤʤФʤʤ. + + : + + ary = [1, 2, 3, 4, 5] + ary[0..2] = [0, 0] # Ƥ [0, 0, 4, 5] + ary[1, 0] = [7] # Ƥ [0, 7, 0, 6, 5] + + self + other + + Ϣ. selfotherξƤҤ + ֤. + + self * times + + η֤. + + self << obj + + objɲä. self֤ΤC++ŪϢǤ. + + assoc(key) + + Ϣۥꥹ(2ǤǤȤ), 1Ǥkey + ("=="Ӥ)֤. + + clear + + 礭0ˤ. + + delete(item) + + itemȰפǤ. + + delete_if + + Ǥ륤ƥ졼. ֥åɾͤλ, б + Ǥ. + + each + + γǤͿ륤ƥ졼. + + fill(val) + fill(val, start[, length]) + fill(val, start..end) + + (λꤵ줿ʬ)Ǥͤvalꤹ. 2֤η + lengthά줿νޤǤĹȤ. ꤵ줿 + ʬϰϤۤϼưŪ˳ĥ. + + join([sep]) + + ǤϢ뤷ʸ֤. ǤʸѴ, + sepϢ뤵. sepά줿ˤϥƥѿ`$,' + ͤѤ. + + length + + Ĺ(ǿ)֤. + + push(obj) + + objɲä. + + pack(template) + + Ƥtemplateʸˤä, 1Ĥʸ˥ѥå + . ѥåʸ֤. ƥץ졼ȤϷʸȤĹ + (ά1)¤٤ΤǤ. ĹȤ`*'ꤵ줿 + ֻĤΥǡơפĹɽ. + + ʸϰʲΤΤ. + + a ASCIIʸ(nullʸͤ) + A ASCIIʸ(ڡͤ) + b ӥåȥȥ(̥ӥåȤ̥ӥå) + B ӥåȥȥ(̥ӥåȤ鲼̥ӥå) + h 16ʸ(̥˥֥뤬) + H 16ʸ(̥˥֥뤬) + c char + C unsigned char + s sort + S unsigned sort + i int + I unsigned int + l long + L unsigned int + n ͥåȥХȥshort + N ͥåȥХȥlong + f ñư(¸) + d ư(¸) + x ʥХ + X 1Хȸ + @ а֤ؤΰư + + pop + + Ǥ, ֤. + + rassoc(value) + + Ϣۥꥹ(2ǤǤȤ), 2Ǥ + value("=="Ӥ)֤. + + shift + + ƬǤ, ֤. + + sort + + ƤȤ. ƥ졼ȤƸƤӽФ줿ϥ֥ + ɾͤǤ羮ꤹ. 礭, + 0, . ̾ΥåɤȤƸƤӽФ줿ϳ + `<=>'Ӥ. + + to_a + + ʬȤ֤. оΤѰդƤåɤǤޤ + ʤ. + + unshift(obj) + + objƬɲä. + +*** Bignum(饹) + +̵¿ĹΥ饹. 黻η̤FixnumϰǤˤϼ +ưŪ˥饹FixnumѴ. ŪRubyץǤFixnum +BignumѴϰۤΤ˹ԤΤ, ռɬפ̵. FloatȤ +˴ؤƤ, Bignum Floatgenericity⤤Τˤؤ餺, +Bignum, 礭ͤɽǤΤ, Ѵ˷ǽ +. + + +SuperClass: Integer + +Methods: + + self + other + self - other + self * other + self / other + self % other + self ** other + + ѱ黻. 줾, , , , ;, Ѿ֤. + + ~ self + self | other + self & other + self ^ other + + ӥåȱ黻. 줾ӥåȿž, , , ¾Ū¤ + ֤. + + self << bits + self >> bits + + եȱ黻. 줾bitsӥåȤ˥ӥåȥեȤԤʤ. + + divmod(other) + + Ⱦ;2Ǥ֤. + +*** Class(饹) + +饹Υ饹. 긷̩ȥ饹ðۥåɤѾ뤿 +, 줾饹ȸƤФ̾Τʤ饹饹Ȥƻ, +ClassϤΥ饹Υ饹Ǥ(ʬä?). , β⤬ +ǤʤƤ, RubyȤȤ˲λپʤ. + +SuperClass: Module + +Methods: + + attr(name[, public]) + + Υ饹ΥФnameǻꤵ°. + ܤModuleattråɤιȤΤ. + + new(...) + + 饹Υ. ¿ξ礳Υåɤϥ֥ + 饹ðۥåɤˤäƥС饤ɤ, 饹ˤäư + ۤʤ. + +*** Comparable(⥸塼) + + ӱ黻饹ΤMixin. Υ⥸塼롼ɤ뤳 + Ȥˤä, `<=>'¾α黻ҤϤѤ + . + +Methods: + + self > other + + selfother礭֤. + + self >= other + + selfother礭֤. + + self < other + + selfother꾮֤. + + self <= other + + selfother꾮֤. + + between(min, max) + + selfminmaxϰˤ֤. + +*** DBM(饹) + +NDBMե륯饹. , ǡȤʸǤʤФ +ʤȤ¤, ǡե¸ȤƤ +Dict饹Ʊͤ˰ȤǤ. NDBMƤʤƥǤ +Υ饹ؤΥ㳰ȯ. + +SuperClass: Object + +Included Modules: Enumerable + +Methods: + + self [key] + + keyȤ֤ͤ. + + self [key]= value + + keyȤ, valueǼ. valueȤnilꤹ, + keyФܤκȤʤ. + + clear + + DBMեȤˤ. + + close + + DBMե. ʸ㳰ȯ. + + delete(key) + + keyȤȤ. + + delete_if + + Ǥ륤ƥ졼. [key, value]ȤͿ, ֥ + ɾͤλ, ܤ. + + each + each_value + + ƤvalueФƷ֤ƥ졼. + + each_key + + ƤkeyФƷ֤ƥ졼. + + each_pair + + [key, value]ʤͿ륤ƥ졼. + + includes(key) + has_key(key) + + keyǡ١¸ߤ, ֤ + + has_value(value) + + valueͤȤȤǡ١¸ߤ, + ֤ + + keys + + ǡ١¸ߤ륭Ƥޤ֤. + + length + + ǡ١Ǥο֤. (:ߤμ¸Ǥǿ + 뤿˥ǡ١Τ, 빽Ȥ⤤. + ĤƻȤ.) + + to_a + + ǡ١key-valueڥǤȤ֤. + + values + + ǡ١¸ߤƤޤ֤. + +Single Methods: + + open(dbname[, mode]) + + dbnameǻꤷǡ١⡼ɤmodeꤷƥץ + . modeξάͤ0666Ǥ. modeȤnilꤹȥǡ + ١¸ߤʤˤϿ˥ץ, nil֤. + +*** Dict(饹) + +뤤Ϣ. ǤդΥ֥ȤźȤǤΥ饹Ǥ +. HashȤ̾Ǥ⥢Ǥ. Ϣ֥Ȥϰ +ŪˤϢ``{a=>b,..}'' ǹԤʤ. + +SuperClass: Object + +Included Modules: Enumerable + +Methods: + + self [key] + + keyȤ֤ͤ. + + self [key]= value + + keyȤ, valueǼ. valueȤnilꤹȤ + keyФܤκȤʤ. Ĥޤ, DictͤȤnil + ȤϤǤʤ. + + clear + + Ϣˤ. + + delete(key) + + keyȤȤ. + + delete_if + + Ǥ륤ƥ졼. [key, value]ȤͿ, ֥ + ɾͤλ, ܤ. + + each + each_value + + ƤvalueФƷ֤ƥ졼. + + each_key + + ƤkeyФƷ֤ƥ졼. + + each_pair + + [key, value]ʤͿ륤ƥ졼. + + includes(key) + has_key(key) + + key¸ߤ, ֤ + + has_value(value) + + valueͤȤȤ¸ߤ, ֤ + + keys + + ¸ߤ륭Ƥޤ֤. + + length + + Ǥο֤. + + to_a + + key-valueڥǤȤ֤. + + values + + ¸ߤƤޤ֤. + +Single Methods: + + new + + ()֥Ȥ֤. + +*** Directory(饹) + +ǥ쥯ȥǤ֤ǥ쥯ȥꥹȥΤΥ饹. +DirȤ̾Ǥ⥢Ǥ. + +SuperClass: Object + +Included Modules: Enumerable + +Methods: + + close + + ǥ쥯ȥꥹȥ. ʸ㳰ȯ + . + + each + + ǥ쥯ȥγǤͿ륤ƥ졼. + + getwd + pwd + + ȥǥ쥯ȥ֤. + + rewind + + ǥ쥯ȥꥹȥƬ˥ꥻåȤ. + + seek(pos) + + ǥ쥯ȥꥹȥΰ֤posꤹ. + + tell + + ǥ쥯ȥꥹȥθߤΰ֤֤. + +Single Methods: + + chdir(path) + + ȥǥ쥯ȥpathѹ. + + chroot(path) + + ץΥ롼ȥǥ쥯ȥѹ, Ʊ̾Υƥॳ + ƱƯ. ϼ¸uidѥ桼Ǥ + ¤Ƥ. 롼ȥǥ쥯ȥ᤹(롼ȥǥ쥯 + ѹ)ˡƤʤ. + + mkdir(path[, mode]) + + modeǻꤵ줿⡼ɤĥǥ쥯ȥpath. ⡼ + umaskˤäƽ. modeΥǥեͤ0777. + + open(path) + + pathФǥ쥯ȥꥹȥץ. + + rmdir(path) + + pathǻꤵ줿ǥ쥯ȥ. ǥ쥯ȥ϶Ǥ + ɬפ. + +*** Enumerable(⥸塼) + +ǤФ뷫֤Ԥʤ饹ΤMixin. Υ⥸塼 +롼ɤ뤿ˤ, å`each'ɬפ. + +Methods: + + collect + + ǤФƥ֥åɾ̤ƴޤ֤ + + find + + ǤФƥ֥åɾͤˤʤäǽǤ֤. + + find_all + + ǤФƥ֥åɾͤǤäǤƴޤ + ֤. + + grep(pattern) + + pattern =~ ǡפΩƤǤޤ֤. + 졼ȤѤ줿Ͼ嵭ξΩǤФƥ֥ + ¹Ԥ. + + includes(val) + + val`=='δطˤǤĻ, ֤. + + index(val) + + val`=='δطˤ륪֥Ȥܤ˸줿֤. + ֺǽǤ0ˤʤ. Ǥ¸ߤʤˤnil֤. + ʤ饹ФƤϤޤ̣ʤ. + + min + + ǾǤ֤. Ǥ`<=>'åɤĤȤۤΤ + ˲ꤷƤ. + + max + + Ǥ֤. Ǥ`<=>'åɤĤȤۤΤ + ˲ꤷƤ. + + reverse + + ƤǤս¤٤֤. + + sort + + ƤǤȤ֤. + +*** EnvDict(饹) + +Ķѿ뤿Υ饹. ƥѿ$ENVͣΥ +Ƥ. + +SuperClass: Object + +Included Modules: Enumerable + +Methods: + + [name] + + Ķѿ֤ͤ. + + [name]= val + + Ķѿͤvalꤹ. valȤnilꤷˤ, + Ķѿ. + + delete(name) + + Ķѿ. + + each + + Ķѿ̾ͤΥڥͿ륤ƥ졼. + +*** Etc(⥸塼) + +/etcǥ쥯ȥʲξ뤿Υ⥸塼. 饹˥롼 +ƻȤȤǤ. + +Methods: +Single Methods: + + 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ȥ˥뤿Υƥ졼. + +*** File(饹) + +ե륢ΤΥ饹. ؿåopen(). ޤ, +Υ饹ðۥåɤȤtestΥեƥȱ黻Υå +Ƥ. + +SuperClass: IO + +Methods: + + atime + + եκǽ֤. + + ctime + + եκǽơѹ֤. + + chmod(mode) + + եΥѡߥåѹ(cf chmod(2)). + + chmod(owner, group) + + եνͭԤȥ롼פѹ(cf chown(2)). nil-1 + ꤹ뤳ȤˤäƽͭԤ䥰롼פߤΤޤѤʤǤ + ȤǤ. + + eof + + եνüã˿֤. + + lstat + + ե˴ؤStat¤Τ֤. lstatϥե뤬ܥ + ǤХΤΤ˴ؤStat¤Τ֤. ¤ + ƤˤĤƤstat ȤΤ. + + mtime + + եκǽ֤. + + rewind + + եΥեݥΰ֤Ƭ˰ư. + + path + + եΥѥ֤̾. + + seek(offset, ptrname) + + եΥեݥΰ֤offset˰ư. ptrname + 0, 1, 2Τ줫Ǥä, 줾եƬ, ߰, + եνüΤΤ줫Ф. + + stat() + + ե˴ؤStat¤Τ֤(Struct ). + + struct stat + dev # ե¸ߤǥХ + ino # եi-nodeֹ + mode # ⡼ + nlink # ϡɥο + uid # ͭԤΥ桼ID + gid # ͭԤΥ롼ID + rdev # ǥХID(ڥեΤ) + size # ե륵(byte) + blksize # ե륷ƥˤŬڤʥ֥å + blocks # ֥å + atime # ǽ + mtime # ǽ + ctime # ǽѹ + end + + ܺ٤fstat(2)ȤΤ. ƥƤ + stat¤Τ˳Фʤ0ꤵƤ. + + tell + + եθߤΥեݥΰ֤֤. + + truncate(length) + + եڤΤƤƺlengthХȤˤ. եwrite⡼ + ɤǥץƤʤФʤʤ. + +Single Methods: + + atime(filename) + + filenameκǽ֤. + + b(filename) + + filenameΥե뤬֥åڥեǤ, + . + + c(filename) + + filenameΥե뤬饯ڥեǤ, + ֤. + + ctime(filename) + + filenameκǽơѹ֤. + + chmod(mode, path, file...) + + եΥѡߥåѹ(cf chmod(2)). + + chown(owner, group, file...) + + եνͭԤȥ롼פѹ(cf chown(2)). nil-1 + ꤹ뤳ȤˤäƽͭԤ䥰롼פߤΤޤѤʤǤ + ȤǤ. + + executable(filename) + x(filename) + + filenameΥե뤬¹Բǽλ, ֤. + + exists(filename) + e(filename) + a(filename) + + filenameΥե뤬¸ߤ, ֤. + + G(filename) + + filenameΥեgid¸롼פgidƱ, ֤. + + isdirectory(filename) + d(filename) + + filenameǥ쥯ȥλ, ֤. + + isfile(filename) + f(filename) + + filenameΥե뤬̾եλ, ֤. + + islink(filename) + l(filename) + + filenameΥե뤬ܥåǤ, ֤. + + ispipe(filename) + p(filename) + + filenameΥե뤬̾Ĥѥ(FIFO)Ǥ, ֤. + + issocket(filename) + S(filename) + + filenameΥե뤬åȤǤ, ֤. + + link(old, new) + + oldؤΥϡɥnew. link(2)Ʊ¤. + + mtime(filename) + + filenameκǽ֤. + + owned(filename) + O(filename) + + filenameΥե¸桼ͭƤ, ֤. + + readable(filename) + r(filename) + + filenameΥեɤߤȤǽλ, ֤. + + readlink(path) + + ܥåpathƤʸȤ֤. + + rename(from, to) + + ե̾fromtoѹ. rename(2). toȤ̾ + Υե뤬¸ߤˤϤޤΥե뤬. + + R(filename) + + filenameΥեuid/gidɤߤȤǽλ, ֤. + + setuid(filename) + u(filename) + + filenameΥեsetuidӥåȤåȤƤ, ֤. + + setuid(filename) + g(filename) + + filenameΥեsetuidӥåȤåȤƤ, ֤. + + size(filename) + s(filename) + + filenameΥե뤬¸ߤ, ե礭֤. ¸ߤ + ʤnil֤. + + sticky(filename) + g(filename) + + filenameΥեstickyӥåȤåȤƤ, ֤. + + symlink(old, new) + + oldؤΥܥånew. + + truncate(path, length) + + pathǻꤵ줿եڤΤƤƺlengthХȤˤ. + + unlink(file...) + + ե. ǥ쥯ȥκˤDir.rmdirȤ. + + utime(atime, mtime, file...) + + եΥatime, mtimeꤹ. + atime, mtimeϿޤTime饹ΥǤʤФʤ + . + + writable(filename) + w(filename) + + filenameΥե뤬uid/gidǽ߲ǽλ, ֤. + + W(filename) + + filenameΥե뤬߲ǽλ, ֤. + + z(filename) + + filenameΥե뤬¸ߤ, 礭0Ǥ, ֤. + +*** Fixnum(饹) + +31bitΥ饹. builtin classǤ. Υ饹pointer¨ͤ +뤿call by valueǸƤӽФħŪǤ(¾Υ饹call +by reference). 黻η̤31bitۤˤϼưŪBignum(̵¿ +Ĺ)˳ĥ. + +ƥ졼upto(), downto(), step()Ϸ֤ΤѤ, ̤ +Range饹Ѥ®Ǥ. + +SuperClass: Integer + +Methods: + + self + other + self - other + self * other + self / other + self % other + self ** other + + ѱ黻. 줾, , , , ;, Ѿ֤. + + ~ self + self | other + self & other + self ^ other + + ӥåȱ黻. 줾ӥåȿž, , , ¾Ū¤ + ֤. + + self << bits + self >> bits + + եȱ黻. 줾bitsӥåȤ˥ӥåȥեȤԤʤ. + + self .. max + + ϰϻ. self maxޤǤϰϥ֥Ȥ֤. + + downto(min) + + ƥ졼. selfminޤDz˷֤. + + id2name + + ͤIDȤߤʤ, ʸ֤. ʸ + ¸ߤʤnil֤. + + step(max, step) + + ƥ졼. selfmaxޤstepѲʤ, ֤. + + to_f + + selfFloatѴΤ֤. + + to_i + + selfΤޤ֤. + + upto(max) + + ƥ졼. selfmaxޤǷ֤. + +*** Float(饹) + + ưΥ饹. + +SuperClass: Numeric + +Methods: + + self + other + self - other + self * other + self / other + self % other + self ** other + + ѱ黻. 줾, , , , ;, Ѿ֤. + + self == other + self > other + + ӱ黻. + + coerce(num) + + numfloatѴ. FloatǤ¾ο + FixnumǤ. + + to_f + + selfΤޤ֤. + + to_i + + floatѴ̤֤. + +Single Methods: + + new(float) + + floatƱͤĿFloat֥Ȥ֤. + +*** GC(⥸塼) + +RubyȤ߹ߤgarbage collectorԤʤΥ⥸塼. Υ +塼ΥåɤѤ뤳Ȥˤä, ŪGCߤ, GCε +륿ߥ椷Ǥ. + +gcϻϤޤˤΥ⥸塼start_hookåɤ, äˤ +end_hookåɤƤӽФ, åɤ뤳Ȥˤä +hook뤳ȤǤ. + +Methods: + + garbage_collect + + + GCϤ. GC.startפƱ. + +Single Methods: + + disable + + GCػߤ. + + enable + + GCĤ. + + start + + GCϤ. + + threshold + + GCγϥߥꤹͤθߤ֤ͤ. + + threshold=(val) + + GCͤꤹ. Ť֤ͤ. + + start_hook + end_hook + + GCγϻ, λˤ줾ƤФ. ǥեȤǤϲ⤷ʤ + åɤƤ. + +*** Integer(饹) + +饹. ºݤϤ礭ˤäFixnumBignumĤΥ֥饹 +Ǽ¸Ƥ. IntegerϤΥѡ饹Ȥʤݥ饹Ǥ +. RubyǤϤۤȤɤξ, FixnumBignumζ̤ɬפʤ, ߤѴ +ϼưŪ˹Ԥʤ. ӥåȤߤʤˤ, ̵¤Ĺ +ĥӥåȹͤƹʤ. + +SuperClass: Numeric + +Methods: + + self[idx] + + idxӥåܤåȤƤ1, åȤƤʤ + 0֤. + + chr + + οɤȤʸޤ1ʸʸ֤. ̤ + Ĺ1ʾʸˤĤ, δطΩ. + + str[0].chr == str[0,1] + + ʸϰ(0..255)ˤʤ㳰ȯ. + + is_integer + + Ĥ֤. + +*** IO(饹) + +ϤΤδܥ饹. + +SuperClass: Object + +Included Modules: Enumerable + +Methods: + + self << object + + objectϤ. objectʸǤʤˤϥåto_sѤ + ʸѴ. selfͤȤΤ, C++Τ褦`<<' + ϢȤ. + + : + + $stdout << 1 << " is a " << Fixnum + + close + + ϥݡȤ. ʸΤΥ֥ȤФ + ϥ顼ˤʤ. + + each + + Ԥɤ߹Ǥ뤿Υƥ졼. Ԥζڤϥƥ + `$/'ˤäѹǤ. ɤ߹ʸϥƥѿ`$_' + ⥻åȤ. + + each_byte() + + ʸɤ߹Ǥ뤿Υƥ졼. ʸʸɤɽ + FixnumǤ. + + fileno + + IO֥ȤȤäƤեǥץ(Fixnum)֤. + + flush + + Хåեեå夹. + + getc + + ɤ߹, ɤ߹ߤˤϤʸ֤. ե + νãˤnil֤. ؿŪåɤgetc() + $stdin.getcƱ̣Ǥ. + + gets + + ɤ߹, ɤ߹ߤˤϤʸ֤. ե + νãˤnil֤. + + isatty + + ϥݡȤttyǤ, ֤. + + puts(obj) + + objϤ. self << objפƱ̣Ǥ. + + read([length]) + + lengthХɤ߹, ʸ֤. lengthά줿 + ˤ, ƤΥǡɤ߹. + + sync + + ߤνƱ⡼ɤ֤ͤ. Ʊ⡼ɤλϽϴ + θƽ˥Хåեեå夵. + + sync=(newstate) + + Ʊ⡼ɤꤹ. + + sysread(length) + + stdioͳread(2)ѤϤԤʤ. Ϥ줿ǡ + ޤʸ֤. եνãˤnil֤. + read(2)ˤɬlengthХȤʸɤ߹ޤ櫓 + ǤϤʤ. gets()getc()ʤstdioͳåɤȺѤ + ȤϥХåեʤɤ, פư뤳Ȥ. + + syswrite(str) + + stdioͳ, wirte(2)ѤƽϤԤʤ. Υå + ϥХåեʤstdioƤ뤳ȤϰڹԤʤʤ. + print()printf()syswrite()ѤΤϿ侩Ǥʤ. + + write(str) + + strϤ. ϤХȿ֤. + +Single Methods: + + default + + printprintfΥǥեȤν֤. ͤ$stdout. + + default= + + ǥեȤνꤹ. + +*** Kernel(饹) + +ƤΥ饹δ쥯饹. RubyȤ߹ߤƤδؿŪåɤϤΥ +饹Ƥ. + +SuperClass: ʤ + +Methods: + + ! self + + . Non-nilΥ֥Ȥξ˵(nil)֤. Υ + ɤNil饹ǤϺ쿿֤. + + equal(other) + self == other + + ֥ȤΰȽ. 쥷ФȰΰפ, + ֤. Kernel饹ǤΥ֥ȤƱλ + . "=="åɤϳƥ֥Ȥ˱ƺɬפ + . "=="åɤˤ, hashåɤ⤽˹ + ƺɬפ. + + equal()åɤ"=="åɤ̾, "=="Ǥ + ֥ȤƱȽԤʤѤ. ä + equal()åɤϥ֥饹Ǻ٤ǤϤʤ. + + self != other + + "==". "=="åɤƤӽФƤΤ, Ϻ + ɬפϤʤ. + + self =~ other + + ޥå. ǥեȤ"=="ƱǤ. "=~"caseӤˤѤ + . + + !~ + + "=~". "=~"åɤƤӽФƤΤ, + ɬפϤʤ. + + self :: other + + selfotherǤȤĹ2֤. Ȥ + ̣ [self, other]ƱƯ뤬, 鷺˸ + Ψɤ. α黻ҤϱǤΤ, a::b::c (a::(b::c)) + Ȳᤵ. + + is_nil + + ֥ȤnilǤ뤫ɤ. Kernel饹ǤϿ + . Nil饹ǺƤ. + + id + + ƥ֥ȤФưդFixnum֤. , FixnumϼʬȤ + Τ, idפƤƱ֥ȤǤ뤳Ȥݾڤʤ. + Ĥޤ, + + obj1.id == obj2.id + + ΩƤ, ɤ餫FixnumǤ, obj1obj2ƱǤ + Ȥϸ¤ʤ. , ξFixnumǤʤȤݾڤǤ, 2 + ĤΥ֥ȤƱǤ뤳Ȥϳμ¤Ǥ. + + hash + + ֥ȤΥϥå(Fixnum)֤. Dict饹ǥȤʤ + ֥ȤǼΤѤƤ.A == BפΩ + ɬA.hash == B.hashפΩɬפΤ, "==" + ˤϤ⤽˹碌ƺ뤳. + +*** Math(⥸塼) + +ư黻ݡȤ륯饹. Math⥸塼ƱΥå +ðۥåɤȤξƤΤ, ðۥåɤƤӽФƻ +Ȥ, 饹˥롼ɤƻȤȤȤξǤ. + + : + + pi = Math.atan2(1, 1) * 4; + include Math + pi2 = atan2(1, 1) + +Methods: +Single Methods: + + atan2(x, y) + + С-ФϰϤX/YΥȤ֤. + + cos(x) + sin(x) + tan(x) + + 饸ɽ줿xλѴؿ֤ͤ. + + exp(x) + + xλؿؿ֤ͤ. + + log(x) + + xμп֤. + + log10(x) + + xξп֤. + + sqrt(x) + + xʿ֤. xͤǤˤ㳰ȯ. + + cbrt(x) + + xΩ֤. + +*** Module(饹) + +⥸塼Υ饹. + +SuperClass: Object + +Methods: + + attr(name[, public]) + + + Υ⥸塼롼ɤ饹ΥФ + nameǻꤵ°ղä, °Ф륢åɤ + . attr("attr")ϰʲ˼ɤȤۤƱǤ. + + def attr; @attr; end + + άǽ2publicͿ, ĤͤnilǤʤ + , °ˤ°åɤѰդ, ǽ + ʤ. attr("attr", %TRUE)ϰʲΥɤȤۤƱǤ. + + def attr; @attr; end + def attr=(val); @attr = val; end + + °åɤ뤳Ȥˤä, ư + ѹǤ. 㤨 + + attr("test", %TRUE) + def test=(val) + print("test was ", @test, "\n") + print("and now is ", @test = val, "\n") + end + + Τ褦°ͤɽ褦ʤȤǽǤ. attr + ϥåɤǤƤ, ǥեȤΥ + åɤʤ. + + to_s + + ⥸塼ʸɽ֤. ⥸塼ξʸɽϥ + 塼̾Ǥ. + +*** Nil(饹) + +ɽ֥nilΥ饹. ѿ()nilNil饹ͣΥ +Ǥ. nil饹ӥåɤդ뤬, Ӥ +ϢԤʤǤ. ӤϢȤ + + 10 < a < 13 + +Τ褦ʤΤǤ. ӱ黻ҥåɤϼԤnil֤, +ϱդΥ֥Ȥ֤Τ, nilӱ黻Ҥ˵֤Ȥˤ +ϢΩ. + +SuperClass: Kernel + +Methods: + + self + other + + other, ư, ʸ, Τ줫Ǥä, + other֤. ̤ΰФ뼫ʤ褦Ѱ + 줿åɤǤ. + + foo # ͤnil + foo += 1 # foo1ˤʤ. + + self > other + self >= other + self < other + self <= other + + ϢΤΥå. nil֤. + + ! self + + ˿֤. + + is_nil + + ˿֤. + +*** Numeric(饹) + +̤ɽݥ饹. + +SuperClass: Object + +Included Modules: Comparable + +Methods: + + + self + + ֥selfΤΤ֤ + + - self + + 0 - selfפ֤ͤ. ֥饹ǤΨŪ˺뤳 + ȤԤ. + + abs + + ֤ͤ. + + divmod(other) + + Ⱦ;2Ǥ֤. + +*** Object(饹) + +Ƥ̾說饹Υѥ饹. Υ饹Υ֥饹Ǥʤ饹 +KernelNilǤ. + +SuperClass: Kernel + +Methods: + + is_member_of(class) + + ֥self饹classΥǤ,֤. + + is_kind_of(class) + + ֥self饹classΥ֥饹Υ + , ֤. + + clone + + ֥Ȥʣ. FixnumʳΥ饹ξ, 餯 + obj.eqaul(obj.clone)פϵǤ뤬, ¿ξobj == + obj.cloneפϿǤ. + + to_s + + ֥Ȥʸɽ֤. ΥåɤŪprint() + format()åɤѤƤ. + + to_a + + ֥ȤѴ. ͥ륯饹Ƥ + եȤ, Υ֥ȼȤޤ1Ǥ֤. + +*** Process(⥸塼) + +ץ˴ؤԤʤΥ⥸塼. Math⥸塼Ʊͤ +ƤΥåɤðۥåɤȤƤ̾ΥåɤȤƤȤ. +Processϥץ֥ȤΥ饹ǤϤʤ, ץΥ +ɤޤȤΤǤ뤳Ȥդ뤳. + +Methods: +Single Methods: + + euid + + ץθߤμ¸UID֤. + + euid=(uid) + + ץθߤμ¸UIDuid˥åȤ. + + getpgrp([pid]) + + pidǻꤵ줿ץ߽°Ƥץ롼פid + ֤. pidάpid0Ϳϸ¹ԤƤ + оݤˤ. + + getpriority(which, who) + + whichwhoǻꤵץ, ץ롼, 桼θ + ̤֤ͥ. ܺ٤getpriority(2). Process⥸塼 + ǤwhichȤƻǤ%PRIO_PROCESS, %PRIO_PGRP, + %PRIO_USERƤ. + + pid + + ץΥץID֤. ϥƥѿ`$$'ͤƱ + . + + ppid + + ƥץΥץΥץID֤. UNIXǤľܤοƥץ + λ, ƥץpid1(initpid)ˤʤ. + + setpgrp(pid, pgrp) + + pidǻꤵ줿ץΥץ롼פpgrpˤ. pid0 + Ϳȸ¹Υץоݤˤ. + + setpriority(which, who, prio) + + whichwhoǻꤵץ, ץ롼, 桼θ + ̤ͥprioꤹ. ܺ٤setpriority(2)ȤΤ. + + uid + + ץθߤμUID֤. + + uid= + + ץθߤμUIDuid˥åȤ. + +*** Range(饹) + +ϰϥ֥ȤΥ饹. ϰϥ֥Ȥ`..'黻Ҥˤä, +ŪˤϰʲΤ褦ʻȤ + + for i in 1..5 + ... + end + +, ξϰʲ®. + + do 1.upto(5) + ... + end + +ϰϥ֥Ȥ`..'黻ҤξդComparableޤ९饹Υ +ǤвǤʤ. ϰϤϻȽޤळȤդ +. + +SuperClass: Object + +Included Modules: Enumerable + +Methods: + + self =~ other + + selfotherƱ饹Фϰϥ֥Ȥ, ϰ + other(start <= other <= end),֤. caseʸ + ϰϻꤹǤ. 㤨 + + case i + when 1, 3..5 + ... + end case + + Τ褦ʥɤȤǤ. + + each + + ϰ¸ߤ륪֥ȤͿ륤ƥ졼. forʸΤ + Ѥ. + + end + + ϰϤν֤ + + start + + ϰϤλ֤. + +*** Socket(饹) + +SuperClass: BasicSocket + +åȤΤΤФ륷ƥॳ٥Υ륯饹. +PerlΥåȤФ륢Ʊ٥εǽƤ. Υ +Ǥϥåȥɥ쥹pack줿ʸ, ꤹ. UDPåȤϤ +Υ饹ȤäѤ. + +Methods: + + accept + + ³դ, ³Ф륽åȤ֤. + accept(2). + + bind(addr) + + bind(2)ƱƯ. addrpack줿åȥɥ쥹¤ + ΤǤ. + + connect(addr) + + connect(2)ƱƯ. addrpack줿åȥɥ쥹 + ¤ΤǤ. + + listen(backlog) + + listen(2)ƱƯ. + + recv(len, flags) + send(mesg, flags[, to]) + sysread(len) + +Single Methods: + + open(domain, type, protocol) + new(domain, type, protocol) + + åȤ. domain, type, protocolϥ롼 + եƤͤǻꤹ. domaintype˴ؤ + , ʸǻǤ뤬, ٤ƤСƤݾڤϤʤ. + + socketpair(domain, type, protocol) + + åȤΥڥ, 2ǤȤ֤. λ + openƱǤ. + +*** Regexp(饹) + +ɽΥ饹. ɽΥƥ/.../Ȥɽ, ưŪ +뤿ˤ + + Regexp.compile(ʸ) + +Ȥ. , String饹`=~'ϤȤ¿Υåɤɽ +ؤʸͿ줿ˤŪɽΤ, +ȤȻפʳŪȻפȤϾʤ +. + +SuperClass: Object + +Methods: + + + self =~ string + + ɽʸ˥ޥå, ޥå֤֤. ޥå + ʤnil֤. + + ~ self + + $_ =~ selfפƱ. + +Single Methods: + + complie(string) + + ʸɽѴ֥Ȥ֤. + +*** BasicSocket(饹) + +åȤɽݥ饹. Ūʥåϥ֥饹. +㤨ХͥåȥɥᥤξTCPsocketѤ. + +SuperClass: IO + +Methods: + + getopt(level, optname) + + åȤΥץ. getsockopt(2)ȤΤ. + ץƤޤʸ֤. + + getpeername + + ³ΥåȤξ. ѥå줿sockaddr¤ + ٥˥פʸ֤. getpeername(2)ȤΤ. + + getsockname + + åȤξ. ѥå줿sockaddr¤Τ٥˥ + ʸ֤. getsockname(2)ȤΤ. + + setopt(level, optname, optval) + + åȤΥץꤹ. setsockopt(2)ȤΤ. + + shutdown(how) + + åȤΰʹߤ³λ. how0Ǥ, ʹߤμ, + how1Ǥ, ʹߤݤ. how2λˤ, + ʹߤ, Ȥ˵ݤ. + +*** String(饹) + +ʸ饹. Rubyʸϥ̥륿ߥ͡ȤǤϤʤΤ, Хʥǡ +ⰷ. äƤɤ餫ȤñʤʸȤХǤ. +λۤ˴Ť, ɽ˴ؤåɰʳ2byteϤʸռ +Ƥʤ. ϺԤμȴǤϤʤտŪˤƤΤǤ( +Ƥ). + +SuperClass: Object + +Included Modules: Comparable, Enumerable + +Methods: + + self + other + + ʸϢ. Ϣ뤵줿ʸ֤. + + self * times + + ʸη֤. 㤨 + + "x" * 4 == "xxxx" + + Ǥ. + + self == other + self > other + + ʸ. ƥѿ$=nilǤʤˤʸʸ + ̤ӤԤʤ. + + self =~ other + + ʸΥޥå. otherɽʸ. otherʸξ + ưŪɽѴ. ޥåϥޥå, + ʤänil֤. + + ~ self + + $_ =~ selfפƱ. + + self[nth] + self[beg..end] + self[beg,len] + + ƤμФ. 1ܤηǤnthХܤΥǡFixnumȤ + ֤. 2ܤηǤbegХܤendХܤޤǤʬʸ + ֤(ξüޤ). 3ܤηǤbegХܤlenХ + ʬʬʸ֤. + + self[nth] = val + self[beg..end] = val + self[beg,len] = val + + Ƥι. 1ܤηǤnthХܤΥǡval () + . 2ܤηbegХܤendХܤޤǤʬʸ + valȤͿ줿ʸ֤. 3ܤηbeg + ܤlenХʬʬʸvalȤͿ줿ʸ + ֤. + + chop + + ʸκǸΥХȤڤȤ. + + crypt(salt) + + crypt(3)ѤưŹ沽ʸ֤. salt2ХȰʾĹ + ǤդʸǤ. + + delete(str) + + ʸΤ, str˴ޤޤʸ. ʸλtr + ƱͤǤ, a-babޤǤϰϤ, Ƭ^ʸ( + ޤƤʤΤ)̣. + + each + + ʸ1Ԥɤ߹Ǥ륤ƥ졼. + + each_byte + + ʸΤ줾ΥХȤˤĤƷ֤ƥ졼. + + gsub(pattern, replace) + + ʸpattern˥ޥåʬreplace֤. + ʸreplace&\0ϥޥåʸ, \1..\9nܤ + ̤Ƥ֤. + + hex + + ʸ16ʿɽʸȲᤷ, Ѵ. + + index(substr[, pos]) + + substrǽ˽и֤֤. posͿȤΰ֤鸡 + Ϥ. Ĥʤˤnil֤. + + intern + + ʸ˰դб֤. ʸϥʥʸޤǤϤ + ʤ. + + lcfirst + + ʸκǽʸ(줬ե٥åȤǤ), ʸ + Ѵ. + + length + + ʸĹ(Хȿ)֤. + + next + + ּΡʸ֤. ʸȤϿϿȤ,ʸ + ʸȤä, 夬νԤʤ줿ԤǤ. + + "aa".next == "ab" + "99".next == "100" + "a9".next == "b0" + + ΥåɤRange:eachѤƤΤ, ʲΤ褦ʽ + ǽǤ. + + for i in "a" .. "ba" + print(i, "\n"); + end + + a, b, c, .. aa, .. az, baޤǤƹԤ˽Ϥ. + + + դʤФʤΤ, νλȽ羮طǤϤʤ + `=='ȽꤵƤ뤿, `..'黻Ҥκդͤ³ʸ˱ + դʸޤޤƤʤ, ʲΤ褦ʾ̵¥롼פ + ٤äƤޤ. + + for i in "0" .. "1a" + print(i, "\n"); + end + + ԤϤȤˤäǤƨƤ褦ȤƤȹͤ + ⤤뤫⤷ʤ. ο¬. + + oct + + ʸ8ʿɽʸȲᤷ, Ѵ. 8ʿ + /[0-7]+/Ǥ, ƤϤޤʤʸФƤ + 0֤. perlȤϰäʸ0xϤޤäƤ뤫Ȥä + 16ʿȸʤƤ줿Ϥʤ. 8ʿǤϤʤΤ0 + ֤. + + reverse + + ʸγƥХȤս¤٤ʸ֤. ʸ2ХȤ + ʸޤǤƤ⤪ʤ˥Хñ̤ȿž. + split2ХʸΤ, 2Хʸޤʸʸ + ñ̤ȿžˤ + + "ʸ".split(//).reverse.join("") + + ȤФ褤. + + rindex(substr[, pos]) + + ʸsubstrǸ˽и֤֤. posͿȤΰ + Ǹλ. Ĥʤˤnil֤. indexȤ + 1)ʸ鸡. 2)substrȤɽդ + ʤ. 2Ǥ. + + split([sep[, limit]]) + + ʸsepǻꤵ줿ѥˤä, եɤʬ䤹. + sepά줿ΥǥեȤϥƥѿ`$;'ͤѤ + . limitꤵ줿ˤϺlimitĤΥեɤʬ䤹. + split()ʬ䤵줿ʸޤ֤. sepǻꤵ줿ѥ + ʸȥޥåʸ1ʸĤʬ䤵. + + squeeze([str]) + + ʸΤ, str˴ޤޤʸϢ³Ƥ, ʸ˰ + ̤. strά줿, ٤ƤʸоݤȤ. ʸ + λtrƱͤǤ, `a-b'abޤǤϰϤ, Ƭ`^' + ʸ(ޤޤƤʤΤ)̣. + + strip + + ʸζ. + + sub(pattern, replace) + + ʸpattern˥ޥåʬreplace֤. ִʸ + replace&\0ϥޥåʸ, \1..\9nܤγ + Ƥ֤. sub()gsub()Ȱۤʤ, ǽΥޥå + ִ. + + to_f + + ʸFloatѴ. + + to_i + + ʸ10ʿɽʸȲᤷ, Ѵ. + + toupper + uc + + ʸΥե٥åȤʸ֤. ʸ + 뤳Ȥ. tr("a-z", "A-Z")꾯®. + + tolower + lc + + ʸΥե٥åȤƾʸ֤. ʸ + 뤳Ȥ. tr("A-Z", "a-z")꾯®. + + tr(search, replace) + + ʸsearchʸ˴ޤޤʸ¸ߤ, replaceʸ + бʸ֤. replaceʸά줿 + ϶ʸͿ줿ȸʤ. replaceʸsearchʸ + ûreplaceʸκǸʸ֤Ƥȸ + . searchʸûˤбʸΤʤreplace + ñ̵뤵(BSDtrư). + + searchʸ, replaceʸ`a-b'Ȥ줿, + abޤǤϰϤʸASCIIξǻꤷȤˤʤ. + , searchʸκǽʸ`^'Ǥ, ³ʸ*ޤ + ʤ*ʸִоݤˤʤ. + + tr(1)εǽΤ, ʸ뵡ǽ, Ϣ³ʸ̤ + ǽ̤Υåɤʬ䤵Ƥ. εǽˤĤƤ + delete, squeezeȤΤ. + + ؤΤ, str.tr(src,repl).squeeze(repl)å + tr_s(src,repl) Ƥ. + + ucfirst + + ʸκǽʸ(줬ե٥åȤǤ), ʸ + Ѵ. + + unpack(template) + + ʸtemplateʸˤäƥѥå, Ǥ + ޤ֤. templateʸArray饹packåɤȤ + ƱͤǤ. + + a ASCIIʸ(³nullʸ䥹ڡĤ) + A ASCIIʸ(³nullʸ䥹ڡ) + b ӥåȥȥ(̥ӥåȤ̥ӥå) + B ӥåȥȥ(̥ӥåȤ鲼̥ӥå) + h 16ʸ(̥˥֥뤬) + H 16ʸ(̥˥֥뤬) + c char + C unsigned char + s sort + S unsigned sort + i int + I unsigned int + l long + L unsigned int + n ͥåȥХȥshort + N ͥåȥХȥlong + f ñư(¸) + d ư(¸) + x 1ХɤФ + X 1Хȸ + @ а֤ؤΰư + +Single Methods: + + new(string) + + stringƱƤĿʸ֤. + +*** Struct(饹) + +¤Υ饹. ʣΥǡޤȤѤ(: Time::times). +ǡޤȤˤ饹Ѥ뤳Ȥ⤢뤬(: select), +¤ΤȤ٤ϰʲΤ褦ʾǤ. + + (1) Ǥο¿ + + ʹ֤٤ưפ˰복ǰο7ĤޤǤǤȤ⤬. + β˽, ǡ4İʾξѤ, + *2(ĤޤꥪեåȤȤΰ̣)7ۤ. ä, Τ褦 + ˤϹ¤ΤȤä䤹Ȼפ. + + (2) Ʊ̤ʤ + + ¤Τ㴳Ȥ⤤Τ, ®٤ˤʤ + ˤ, (Ʊ̤ʤ)Ϲ¤ΤλѤŬڤǤʤ + ǽ. + +ƹ¤Τˤϥ̾Ʊ̾ΰΤʤåɤƤ. + +ܥɥ, ¤Τɽ뤿ˤϰʲηȤ. + + struct ¤̾ + ... + end + +, ץǤηǹ¤Τ櫓ǤϤʤ. + +SuperClass: Object + +Included Modules: Enumerable + +Methods: + + self[idx] + + idxλidxܤǤ֤. idxʸλidxƱ̾ + ΥФǤ֤. + + values + + ¤ΤΥФͤǤ˻֤. 㤨аʲΥɤ + ʬpasswdȥϤ뤳ȤǤ. + + print(Etc.getpwuid().values.join(":"), "\n") + + νϤ`grep "$USER" /etc/passwd'νϤ;ʬʥեɤ + Ĥ(ƥˤäưۤʤ)ʳƱǤ. + +Single Methods: + + new(name, member::value...) + + nameȤ̾ŤΤ. memberϹ¤ΤΥФ + ɽʸǤ, valueϤͤǤ. 줿¤Τϥ + Фǻꤵ줿̾ðۥåɤƤ, Υå + ˤäƥФƤ뤳ȤǤ. + +*** TCPserver(饹) + +TCP/IPȥ³Υ¦ΥåȤΥ饹. Υ饹ˤä +ñ˥åȤѤФΥץߥǤ. 㤨echo +ФϰʲΤ褦ˤʤ. + + gs = TCPserver.open(4444) + socks = [gs] + + while %TRUE + nsock = select(socks); + if nsock == nil; continue end + for s in nsock[0] + if s == gs + socks.push(s.accept) + else + if s.eof + s.close + socks.delete(s) + else + str = s.gets + s.write(str) + end + end + end + end + +SuperClass: TCPsocket + +Methods: + + accept + + 饤Ȥ³դ, ³TCPsocketΥ + ֤. + +Single Methods: + + new([host, ]service) + open([host, ]service) + + service/etc/services(ޤNIS)ϿƤ륵ӥ̾ + ݡֹǻꤹ. hostꤷϻꤷۥȤ + ³դ. άƤΥۥȤ³ + . + +*** TCPsocket + +ͥåȥɥᥤΥȥåȤΥ饹. ̾IO饹 +֥饹ƱͤϤǤ. Υ饹ˤäƥåȤѤ +饤Ȥñ˵ҤǤ. 桼ϤΤޤޥФž +ϰʲΤ褦ˤʤ. + + s = TCPsocket("localhost", 4444) + while gets() + s.write($_) + print(s.read) + end + +SuperClass: BasicSocket + +Methods: + + addr + + åȤ³ɽ֤. γǤ1 + ʸ "AF_INET", 2Ǥportֹ, 3ǤۥȤɽʸ + Ǥ. + + peeraddr + + ³襽åȤξɽ֤. γǤ + addråɤ֤ƱǤ. + +Single Methods: + + open(host, service) + new(host, service) + + hostǻꤷۥȤserviceǻꤷݡȤ³ + Ȥ֤. hostϥۥ̾, ޤϥͥåȥɥ쥹ʸ + , service/etc/services(ޤNIS)ϿƤ륵 + ̾ݡֹǤ. + +*** Time(饹) + +֤ɽ饹. 羮ӤʤɤǤ. Time.nowǸߤλ֤뤳 +Ǥ. ޤեΥॹפåɤͤ⤳Υ +ΥǤ. + +SuperClass: Object + +Included Modules: Comparable + +Methods: + + self == other + self > other + + otherTimeΥ. Ϳ줿 + ˤ1970ǯ 1 1 00:00:00 GMTÿǤ + ƻȤӤԤʤ. + + asctime + ctime + to_s + + date(1)ʸѴ. + + gmtime + + ॾνԤʤʤGMTǤλ. Υå + ȤäTime饹Υ, ʸλѴGMT + Ԥʤ. gmtimeϼʬȤ֤. + + ɥλɽˤ + + print(Time.now.gmtime, "\n") + + ȤФ褤. + + localtime + + ॾνԤʤä(ǥե). localtime + ⼫ʬȤ֤. + + to_i + tv_sec + + 1970ǯ 1 1 00:00:00 GMTޤǤÿ֤. + secondʬǤ⤢. + + sec + min + hour + mday + year + wday + yday + zone + isdst + + ŪݻƤtm¤ΤƤ֤. zoneʳ֤. + zoneϥॾɽʸ֤. (cf localtime(3)) + + strftime(format) + + formatʸ˽äʸѴ̤֤. format + ʸȤƻǤΤ ʲ̤Ǥ. + + %A ̾(Sunday, Monday,...) + %a ξά̾(Sun, Mon,...) + %B ̾(January, February,...) + %b ξά̾(Jan, Feb,...) + %c ɽ(cf ctime(3)) + %d ʿǤ(01-31) + %H 24λ(00-23) + %I 12λ(01-12) + %j ǯ̻(001-366) + %M ʬ(00-59) + %m ɽ(01-12) + %p ޤϸ(AM,PM) + %S (00-61) + %U ɽ. ǽ1 + Ϥޤ(00-53) + %W ɽ. ǽη1 + Ϥޤ(00-53) + %w ɽ. 0(0-6) + %X (: 15:01:06) + %x (: Fri Jan 14 1994) + %Y ɽ + %y β2(00-99) + %Z ॾ + %% % + + usec + tv_usec + + micro secondʬ֤. + +Single Methods: + + now + + ߤλɽTime饹Υ. + + at(time) + + timeƱɽTime饹Υ. time + Time饹Υ뤤Ͽ(/ư)Ǥ, + ξ1970ǯ 1 1 00:00:00 GMTÿǤȤƻ + . + + times + + ߤΥץȤλҥץ桼/ƥCPU + ѻ¤ΤȤ֤(Struct). + + struct tms + utime # ץΥ桼 + stime # ץΥƥ + cutime # ҥץΥ桼 + cstime # ҥץΥƥ + end + + ֤ñ̤äǤ, ưͿ. ܺ٤ + times(3C)ȤΤ. + +*** UNIXserver + +UNIXȥ³Υ¦ΥåȤΥ饹. + +SuperClass: UNIXsocket + +Methods: + + accept + + 饤Ȥ³դ, ³UNIXsocketΥ + ֤. + +*** UNIXsocket + +UNIXɥᥤΥȥåȤΥ饹. ̾IO饹Υ֥饹 +ƱͤϤǤ. + +SuperClass: BasicSocket + +Methods: + + addr + + åȤ³ɽ֤. γǤ1 + ʸ "AF_UNIX", 2ǤpathǤ. + + path + + UNIXåȤΥѥ֤. + + peeraddr + + ³襽åȤξɽ֤. γǤ + addråɤ֤ƱǤ. + +Single Methods: + + open(path) + new(path) + + pathǻꤷѥ̾Ѥ³åȤ֤. + +------------------------------------------------------- +Local variables: +fill-column: 70 +end: |