summaryrefslogtreecommitdiff
path: root/ruby.1
diff options
context:
space:
mode:
Diffstat (limited to 'ruby.1')
-rw-r--r--ruby.1212
1 files changed, 212 insertions, 0 deletions
diff --git a/ruby.1 b/ruby.1
new file mode 100644
index 0000000..df2e0aa
--- /dev/null
+++ b/ruby.1
@@ -0,0 +1,212 @@
+.\"ruby.1 - -*- Nroff -*-
+.\" $Author$
+.\" $Date$
+.\" created at: Tue Apr 12 01:45:04 GMT 1994
+.TH RUBY 1 "\*(RP"
+.UC
+.SH NAME
+ruby \- オブジェクト指向スクリプト言語
+.SH "SYNOPSIS 形式"
+.B ruby
+[
+.B options
+] filename args
+.SH DESCRIPTION
+.IB Ruby
+は, 手軽なオブジェクト指向プログラミングを実現するための種々
+の機能を持つオブジェクト指向スクリプト言語である. その設計の
+基本原則は, 以下の通りである.
+
+.IP 機能性
+オブジェクト指向プログラミングとスクリプトプログラミングのた
+めに必要な機能を十分に備える. 特にテキスト処理関係の機能を豊
+富に持つ. また, 純粋なオブジェクト指向言語でありながら, 必要
+であれば手続き型プログラミングも可能である.
+.IP 拡張性
+必要に応じて容易に機能を拡張できる. クラスを自由に追加できる
+ことは勿論, Cプログラムのリンクによってインタプリタにあらゆ
+る機能を追加できる. さらにプラットフォームによっては, 動的に
+オブジェクトコードをリンクする機能も提供する.
+.IP 一貫性
+少数の原則が全体に適用されるような一貫性のある言語仕様を持つ.
+これによって「パズルの楽しさ」は減少したかも知れない. ただし,
+一貫性のため使いやすさを犠牲にすることはない.
+.PP
+.IB Ruby
+はshやperlを知っている人にとっての常識にできる限り従ったので,
+それらの言語に精通している人にとっては習得が(多分)容易だろう.
+.SH OPTIONS
+.IB ruby
+は以下の引数を受け付ける.
+.TP 5
+.B \-a
+`\-n'や`\-p'とともに用いて, オートスプリットモードをONにする.
+オートスプリットモードでは各ループの先頭で,
+.nf
+.ne 2
+
+ $F = $_.split
+
+.fi
+が実行される. `\-n'か`\-p'オプションが指定されない限り, この
+オプションは意味を持たない.
+.TP 5
+.B \-c
+スクリプトの内部形式へのコンパイルのみを行い, 実行しない. コ
+ンパイル終了後, 文法エラーが無ければ, "Syntax OK"と出力する.
+.TP 5
+.B \-e " script"
+コマンドラインからスクリプトを指定する. \-eオプションを付け
+た時には引数からスクリプトファイル名を取らない.
+.TP 5
+.B \-F " 文字列"
+入力フィールドセパレータ(`$;')の値を文字列にセットする. awk
+の同名のオプションと同じ働きをする.
+.TP 5
+.B \-i " extension"
+引数で指定されたファイルの内容を置き換える(in-place edit)こ
+とを指定する. 元のファイルは拡張子をつけた形で保存される.
+.nf
+例:
+.ne 2
+
+ % echo matz > /tmp/junk
+ % cat /tmp/junk
+ matz
+ % ruby -p -i.bak -e '$_.toupper' /tmp/junk
+ % cat /tmp/junk
+ MATZ
+ % cat /tmp/junk.bak
+ matz
+
+.fi
+.TP 5
+.B \-I " directory"
+ファイルをロードするパスを指定(追加)する. 指定されたディレク
+トリは
+.IB ruby
+の配列変数$LOAD_PATHに追加される.
+.TP 5
+.B \-d, \--debug
+デバッグモードをonにする. このフラグがセットされるとシステム
+変数$DEBUGがセットされる.
+.TP 5
+.B \-l
+`$\\'を`$/'と同じ値に設定し, print()での出力時に改行を付加す
+る. また, \-nまたは\-pとともに用いられると, 入力された行の最
+後の文字をchopする.
+.TP 5
+.B \-n
+このフラグがセットされるとプログラム全体が
+.nf
+.ne 2
+
+ while gets()
+ \.\.\.
+ end
+
+.fi
+で囲まれているように動作する.
+.TP 5
+.B \-p
+\-nフラグと同じだが, 各ループの最後に変数`$_'の値を出力する.
+.nf
+例:
+.ne 2
+
+ % echo matz | ruby \-p \-e '$_.tr("a-z", "A-Z")'
+ MATZ
+
+.fi
+.TP 5
+.B \-R 文字列(または8進数)
+入力レコードセパレータ(`$/')の値を文字列にセットする. 文字列
+がすべて数字(0-7まで)から構成されている時には, その8進数で指
+定されたコードをもつ文字をセパレータとする.
+
+この場合, \-R0で, パラグラフモード, \-R777で(そのコードを持
+つ文字は存在しないので)全ファイルを一度に読み込むモードに設
+定できる.
+.TP 5
+.B \-s
+スクリプト名に続く, \-で始まる引数を解釈して, 同名の大域変数
+に値を設定する. `\-\-'なる引数以降は解釈を行なわない. 該当す
+る引数は$ARGVから取り除かれる.
+.nf
+例:
+.ne 2
+
+ #! /usr/local/ruby -s
+ # -xyzオプションが与えられると"true"を表示する.
+ if $xyz then print("true\n") end
+
+.fi
+.TP 5
+.B \-v, \--verbose
+冗長モード. 起動時にバージョン番号の表示を行い, システム変数
+$VERBOSEをセットする. この変数がセットされている時, いくつか
+のメソッドは実行時に冗長なメッセージを出力する. \-v オプショ
+ンだけが指定されており, オプション以外の引数がない時にはバー
+ジョンを表示した後, 実行を終了する(標準入力からのスクリプト
+を待たない).
+.TP 5
+.B \--version
+.IB ruby
+のバージョンを表示する.
+.nf
+表示例:
+.ne 2
+
+ ruby - version 0.47 (11 Jul 94)
+
+.fi
+.TP 5
+.B \-x
+メッセージ中のスクリプトを取り出して実行する. #!で始まり,
+"ruby"という文字列を含む行までを読み飛ばす. スクリプトの終り
+はEOF(ファイルの終り), ^D(コントロールD), ^Z(コントロールZ)
+または文字列"__END__"で指定する.
+.TP 5
+.B \-X " directory"
+スクリプト実行前に指定されたディレクトリに移る.
+.TP 5
+.B \-y, \--yydebug
+コンパイラデバッグモード. コンパイル時の構文解析の過程を表示
+する. この表示は非常に冗長なので, コンパイラそのものをデバッ
+グする人以外は表示させない方が良いと思う.
+.TP 5
+.B \-N, \-E, \-S
+.IB ruby
+の処理する漢字コードを指定する. Nは漢字を処理しない. EはEUC,
+SはSJISを表す. デフォルトは漢字非対応.
+
+.SH "BUG バグ(あるいは欠点)"
+.PP
+遅い. 単純な処理の場合perlやawkなどの2,3倍の実行時間がかかる.
+他の言語と異なり, その提供する機能のほとんどがメソッド呼び出
+しを介することが原因だが, 他の言語でも関数呼び出しが多くなる
+ような処理ではメソッドキャッシュの分だけ
+.IB ruby
+が有利になるし, データ構造が複雑になれば, オブジェクト指向の
+メリットが活かせるので, まあ許せるかも知れない.
+.PP
+perlより記述量が多い. これは
+.IB ruby
+が一貫性を追求した結果である. だが, その結果,
+.IB ruby
+スクリプトはperlより読みやすいはずで, 若干の記述量を犠牲に理
+解しやすさと可読性を得ていると思って欲しい.
+.PP
+Sparcでコンパイルされた
+.IB ruby
+はイテレータ中でbreakが評価されるとcore dumpすることがある.
+これはsetjmp()に関連するバグだと思われるが, 他のアーキテクチャ
+では再現せず, 原因が突き止められていない. 誰か分かれば教えて
+欲しい.
+.PP
+ドキュメントが不十分. 必要な情報を得るためにはソースを読んで
+欲しい.
+.PP
+テストが不十分. バグにつき当たったら, できれば自分で直して,
+こっそり私に教えて欲しい. 無理ならば, せめてバグが再現する条
+件を明確にしてレポートして欲しい.