Ruby言語で記述したプログラムは、ruby というコマンドラインアプリケーションを通じてプログラムを動作させます。
ここでは、その ruby コマンドのヘルプメッセージの読み方について解説します。
コマンドプロンプトから次のコマンドを実行してみましょう。
>ruby --help
これは、「”ruby” というコマンドに “–help” というオプションを加えて実行して下さい。」と言う意味です。
まず、”ruby” ですが、Windows ではこのコマンドの実態は “ruby.exe”というファイルで、コマンドプロンプト上では拡張子の “.exe” を省略して呼び出すことができます。
“–help” は、ヘルプ(助けて)、つまり「Rubyの使い方を教えて下さい」という意図を ruby コマンドに伝えるためのオプションなのです。
コマンドを実行すると以下のような結果が出力されます。
Usage: ruby [switches] [--] [programfile] [arguments]
-0[octal] specify record separator (\0, if no argument)
-a autosplit mode with -n or -p (splits $_ into $F)
-c check syntax only
-Cdirectory cd to directory before executing your script
-d, --debug set debugging flags (set $DEBUG to true)
-e 'command' one line of script. Several -e's allowed. Omit [programfile]
-Eex[:in], --encoding=ex[:in]
specify the default external and internal character encodings
-Fpattern split() pattern for autosplit (-a)
-i[extension] edit ARGV files in place (make backup if extension supplied)
-Idirectory specify $LOAD_PATH directory (may be used more than once)
-l enable line ending processing
-n assume 'while gets(); ... end' loop around your script
-p assume loop like -n but print line also like sed
-rlibrary require the library before executing your script
-s enable some switch parsing for switches after script name
-S look for the script using PATH environment variable
-T[level=1] turn on tainting checks
-v, --verbose print version number, then turn on verbose mode
-w turn warnings on for your script
-W[level=2] set warning level; 0=silence, 1=medium, 2=verbose
-x[directory] strip off text before #!ruby line and perhaps cd to directory
--copyright print the copyright
--enable=feature[,...], --disable=feature[,...]
enable or disable features
--external-encoding=encoding, --internal-encoding=encoding
specify the default external or internal character encoding
--version print the version
--help show this message, -h for short message
Features:
gems rubygems (default: enabled)
rubyopt RUBYOPT environment variable (default: enabled)
これがrubyコマンドの使い方を表した結果です。何やら英語だらけでワケが分からない感じがしますが、落ち着いて見て行きましょう。
先頭にある構文がもっとも重要なものになります。
Usage: ruby [switches] [--] [programfile] [arguments]
この先頭の「Usage」ですが、これは「ユーセージ」と発音し(「うさげ」ではありません)、「使い方」という意味です。 コマンドラインアプリケーションのヘルプは一般的に、この形式で説明をしているものが殆どですので、覚えておきましょう。
まず角括弧ですが、これは「括弧に囲まれた部分を省略しても良い」という意味で、swhitches, –, programfile, arguments のすべてを省略しても良いということです。
実際に ruby とコマンドを打っただけでも ruby は正常に動作します。(但し、この場合はプログラムファイルの代わりにキーボードから Rubyスクリプトを打ち込み、最後にキーボードからCtrlキーを押しながら Dキーをタイプして Enterキーを押下してコマンドを終了させなければなりませんが…。)
>ruby
puts "Hello"
puts "World"
^D ※Ctrlキーを押しながらDキーをタイプ、Enterキーを押下して終了
Hello
World
続いて switches ですが、これは「オプション」とも呼ばれ、”-” ハイフンから始まる文字列のことです。
ハイフンが1つだけの場合は、「ショート形式のオプション」であり、ハイフンが2つの場合は、「ロング形式のオプション」です。
ショート形式のオプションの場合は、ハイフンに続くアルファベット1文字のみが機能を示すオプションとして認識され、2文字目以降に続く英数字はこの機能に対するパラメータとされます。
ロング形式のオプションの場合は、ハイフン2つ以降に続く文字列が機能名を表します。また、イコール(=)の後に続く英数字はこの機能に対するパラメータです。
先に実行の “ruby –help” の出力結果画面の2行目以降が上記形式で解説されています。
詳しい説明を知りたい方は、Rubyのリファレンスマニュアルを参照して下さい。
Ruby 2.0.0 リファレンスマニュアル > Rubyの起動
[–] は先に解説のようなオプションの指定が終了したことを ruby コマンドに伝えるためのオプションです。
programfile はRuby言語によって記述されたプログラムを収めたテキストファイルを指定します。 一般的に拡張子 .rb をしていたものが使われますが、拡張子が無くてもプログラムは実行されます。
arguments は、「引数(ひきすう)」と呼ばれます。これは Rubyで書かれたプログラムに渡すパラメーターのことであり、スペース区切りでいくつでも指定することが出来ます。