Ruby - Ruby コマンドラインツールで -r スイッチを使用する方法
概要
コマンドラインスイッチ -r を機能させる方法を理解しようとしていました。
私の理解では、コードは次のように入力されます。
ruby -r*nameOfRequired*
私はそうではないことに気づきました。上記を入力して Enter キーを押すと、端末は「入力構文の終了」を予期し、続行しません。
私には何が欠けているのでしょうか?スイッチと必要なファイルの名前の間にスペースを入れる必要がありますか?
お願いします、そしてありがとう!
編集: 私は現在、David A. Black 著の「The Well Grounded Rubyist」を読んでいます。コマンド ライン スイッチに関するセクションを読んでいるときに、この質問を思いつきました。
そうは言っても、次の内容を含む「test.rb」ファイルを作成しました。
puts Date.today
次に、ターミナルで次のように入力しました。
ruby -r date
これにより、日付モジュールが「必要」になり、ruby test.rb を使用して「test.rb」ファイルを実行できるようになると思いました(正しいディレクトリにいることを前提としています)。
代わりに、端末カーソルは改行に移動し、さらなる入力を期待します。他に明確にする必要がある場合はお知らせください。ありがとう!
解決策
一般に、ruby コマンドは実行から次の実行までの状態を記録しないため、実行するたびに知る必要のあるすべてのことを Ruby コマンドに伝える必要があります。
これを実行するときは常に、実行するメインプログラムを指示する必要があります。そうしないと、そのプログラムを標準入力に入力することが期待されます。 -r はメインプログラムを指定しません。
これを試して:
ruby -rdate test.rb
この回答の 10 周年記念の更新: もちろん、より一般的な堅牢な方法は、test.rb ファイルの先頭近くに require ‘date’ を記述することです。これにより、コードがどのように実行されるかに関係なく、常にこの日付が含まれます。