これは、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、または MAC OS オンライン エミュレーターなどの複数の無料オンライン ワークステーションの XNUMX つを使用して、OnWorks 無料ホスティング プロバイダーで実行できるコマンド jirb です。
プログラム:
NAME
jirb1.3 - インタラクティブな JRuby
SYNOPSIS
ジブ [オプション]
DESCRIPTION
irb は「インタラクティブ JRuby」の略です。 irb は JRuby を対話的に実行するツールです
標準入力から読み取られる式。 JRuby を知っていれば、jirb の使用は簡単です。 ジルブを実行中、
プロンプトは次のように表示されます。 次にルビの表現を入力します。 入力が実行されるのは、
構文的には完成しています。
$ジルブ1.3
イルブ(メイン):001:0> 1+2
3
イルブ(メイン):002:0> クラス Foo
イルブ(メイン):003:1> def foo
イルブ(メイン):004:2> 印刷 1
イルブ(メイン):005:2> 終了
イルブ(メイン):006:1> 終了
ゼロ
イルブ(メイン):007:0>
また、Readline 拡張モジュールは irb で使用できます。 Readline の使用が標準のデフォルトです
Readline がインストールされている場合のアクション。
OPTIONS
-f 読み取りを抑制する 〜/ .irbrc
-m bc モード (分数または行列が使用可能)
-d $DEBUG を true に設定します (「ruby -d」と同じ)
-r ロードモジュール
「ruby -r」と同じ
-検査
出力に「inspect」を使用します (bc モードを除くデフォルト)
--noinspect
出力に検査を使用しません
- 読み込まれた行
Readline拡張モジュールを使用します
--noreadline
Readline拡張モジュールを使用しません
- 促す プロンプトモード
-プロンプトモード プロンプトモード
プロンプトモードを切り替えます。 事前定義されたプロンプト モードは、「default」、「simple」、「xmp」、および
「ルビー内」
--inf-ruby-mode
emacs では inf-ruby-mode にプロンプトを使用します。 --readline を抑制します。
--単純なプロンプト
シンプルプロンプトモード
--プロンプトなし
プロンプトがありません
- トレーサー
コマンドの実行ごとにトレースを表示します。
--バックトレース制限 n
バックトレースの先頭 n と末尾 n を表示します。 デフォルト値は 16 です。
--irb_debug n
内部デバッグ レベルを n に設定します (使用しないでください)
-v、 - バージョン
irb のバージョンを出力します
構成
ジルブは「」と読みます〜/ .irbrc' 呼び出されるとき。 `の場合~/.irbrb' jirb は存在しません。読み込んでみてください
`.irbrc'、`irb.rc'、`_irbrc'、`$irbrc' の順です。 以下は代替案です
コマンドラインオプション。 これらを使用するには、jirb セッションで次のように入力します。
IRB.conf[:IRB_NAME]="irb"
IRB.conf[:MATH_MODE]=false
IRB.conf[:USE_TRACER]=false
IRB.conf[:USE_LOADER]=false
IRB.conf[:IGNORE_SIGINT]=true
IRB.conf[:IGNORE_EOF]=false
IRB.conf[:INSPECT_MODE]=nil
IRB.conf[:IRB_RC] = nil
IRB.conf[:BACK_TRACE_LIMIT]=16
IRB.conf[:USE_LOADER] = false
IRB.conf[:USE_READLINE] = nil
IRB.conf[:USE_TRACER] = false
IRB.conf[:IGNORE_SIGINT] = true
IRB.conf[:IGNORE_EOF] = false
IRB.conf[:PROMPT_MODE] = :DEFALUT
IRB.conf[:PROMPT] = {...}
IRB.conf[:DEBUG_LEVEL]=0
IRB.conf[:VERBOSE]=true
カスタマイズ プロンプト
プロンプトをカスタマイズするには、変数を設定します
IRB.conf[:PROMPT]
例えば、`.irbrc'には以下のように記述します。
IRB.conf[:PROMPT][:MY_PROMPT] = { # プロンプトモードの名前
:PROMPT_I => nil、# 通常のプロンプト
:PROMPT_S => nil、# 継続する文字列のプロンプト
:PROMPT_C => nil、# 継続ステートメントのプロンプト
:RETURN => " ==>%s\n" # 戻り値の形式
}
次に、上記のプロンプトモードで irb を呼び出します。
$ jirb1.3 --プロンプト 私のプロンプト
または、以下を `.irbrc' に追加します。
IRB.conf[:PROMPT_MODE] = :MY_PROMPT
定数 PROMPT_I、PROMPT_S、および PROMPT_C は形式を指定します。 プロンプトで
仕様により、いくつかの特殊な文字列が利用可能です。
%N 実行中のコマンド名
メインオブジェクト (self) の %m to_s
%M メインオブジェクト (自身) の検査
%l 型の文字列 (", ', /, ])、`]' は内部 %w[...]
%NNi インデント レベル。 NN は数字で、printf("%NNd") と同じ意味です。
省略可能です
%NNn 行番号。
%%%
たとえば、デフォルトのプロンプト モードは次のように定義されます。
IRB.conf[:PROMPT_MODE][:DEFAULT] = {
プロンプト_I => "%N(%m):%03n:%i> ",
プロンプト_S => "%N(%m):%03n:%i%l ",
プロンプト_C => "%N(%m):%03n:%i* ",
リターン => "%s\n"}
RETURN は printf に使用されます。
構成 郊外
コマンド ライン オプションまたは IRB.conf で、(sub)irb のデフォルトの動作を指定します。 もう一方の
それぞれの設定については、次のセクション「6.」で説明します。 コマンド」を使用して個別に設定します。
(サブ)irb。 proc が IRB.conf[:IRB_RC] に設定されている場合、実行後にその subirb が呼び出されます
irb のコンテキストを引数として指定して、その proc を実行します。 この仕組みによりそれぞれ
サバーブを設定できます。
Command
irb コマンドには単純な名前と `irb_' を付加した名前の両方が用意されています。
出口、 やめる、 irb_exit
(サブ)irb を終了します。 cb (以下を参照) を実行した場合は、バインディング モードを終了します。
会議、 irb_context
現在の構成を表示します。 構成の変更は、送信することで実現されます。
`conf' にメッセージを送信します。
conf.back_trace_limit
バックトレースの表示行を先頭 n と末尾 n として設定します。 デフォルト値は 16 です。
conf.debug_level = N
irb のデバッグ レベルを設定します。
conf.ignore_eof = 真/偽
^D (control-d) が無視されるかどうか。 false が設定されている場合、^D は終了を意味します。
conf.ignore_signint= 真/偽
^C (control-c) が無視されるかどうか。 false が設定されている場合、^D は終了を意味します。 もしも
本当、
入力中:入力をキャンセルしてトップレベルに戻ります。
実行中: 現在の実行を中止します。
conf.inf_ruby_mode = 真/偽
inf-ruby-mode かどうか。 デフォルト値は false です。
conf.inspect_mode = true/false/nil
検査モードを指定します。 true: 検査を表示 false: to_s を表示 nil: 検査
非数学モードのモード、
数学モードの非検査モード。
conf.irb_level
CBのレベル。
conf.math_mode
bcモードかどうか。
conf.use_loader = 真/偽
ロード/要求時に irb 独自のファイル リーダー メソッドを使用するかどうか。 このモード
世界的に影響を受けます (irb 全体)。
conf.prompt_c
継続するステートメントのプロンプト (例: `if' の直後)
conf.prompt_i
標準プロンプト
conf.prompt_s
継続する文字列の入力を求めるプロンプト
conf.rc
かどうか 〜/ .irbrc 読まれているかどうか。
conf.use_prompt = 真/偽
プロンプトするかどうか。
conf.use_readline = true/false/nil
readline が使用されるかどうか。 true: 使用する false: 使用しない nil: 使用する予定
inf-reuby-mode を除く readline (デフォルト)
conf.verbose=T/F
詳細メッセージを表示するかどうか。
cb、 irb_change_binding [オブジェクト]
ローカル変数の個別のスコープを持つ新しいバインディングを入力します。 obj が与えられた場合、
objはselfになります。
イルブ [オブジェクト]
サバーブを呼び出します。 obj が与えられた場合、obj は self になります。
仕事、 irb_ジョブ
郊外のリスト
fg n, irb_fg n
指定された郊外に切り替えます。 n の候補は次のとおりです。
IRB番号
糸
IRBオブジェクト
self(irb objの指定されたobj)
kill n, irb_kill n
サバーブを殺す。 nの意味はirb_fgの場合と同様です。
システム 変数
_ 最新の評価値(ローカル)
セッション 例:
$ジルブ1.3
イルブ(main):001:0> irb # subirb を呼び出す
irb#1(main):001:0> ジョブ # subirb のリスト
#0->メインの IRB (# : ストップ)
メインの #1->irb#1 (# : ランニング)
ゼロ
irb#1(main):002:0> fg 0 # ジョブの切り替え
ゼロ
イルブ(メイン):002:0> クラス Foo;end
ゼロ
イルブ(main):003:0> irb Foo # を持つ subirb を呼び出します
# Foo のコンテキスト
irb#2(Foo):001:0> def foo # Foo#foo を定義
irb#2(Foo):002:1> 印刷 1
irb#2(Foo):003:1> 終了
ゼロ
irb#2(Foo):004:0> fg 0 # ジョブの切り替え
ゼロ
イルブ(main):004:0> jobs # ジョブのリスト
#0->メインの IRB (# : ランニング)
メインの #1->irb#1 (# : ストップ)
Foo の #2->irb#2 (# : ストップ)
ゼロ
イルブ(main):005:0> Foo.instance_methods # Foo#foo は確実に定義されています
[「ふー」]
イルブ(main):006:0> fg 2 # ジョブの切り替え
ゼロ
irb#2(Foo):005:0> def bar # Foo#bar を定義
irb#2(Foo):006:1> "バー" を印刷
irb#2(Foo):007:1> 終了
ゼロ
irb#2(Foo):010:0> Foo.instance_methods
[「バー」、「フー」]
irb#2(Foo):011:0> fg 0
ゼロ
イルブ(メイン):007:0> f = Foo.new
#
イルブ(main):008:0> irb f # を持つ subirb を呼び出します。
# f のコンテキスト (Foo のインスタンス)
irb#3(#<Foo:0x4010af3c>):001:0> jobs
#0->メインの IRB (# : ストップ)
メインの #1->irb#1 (# : ストップ)
Foo の #2->irb#2 (# : ストップ)
#3-> # の IRB#3 (# : ランニング)
ゼロ
irb#3(# ):0:4010> foo # f.foo を評価します
1なし
irb#3(# ):0:4010> bar # f.bar を評価します
バーニル
irb#3(# ):0:4010> kill 3, 004, 0# kill ジョブ
ゼロ
イルブ(メイン):009:0> ジョブ
#0->メインの IRB (# : ランニング)
ゼロ
イルブ(メイン):010:0> 終了 # 終了
制限
irb は入力が構文的に完了した直後に入力を評価するため、
irb は、ruby を直接使用する場合とは若干異なる結果をもたらします。 既知の違いが指摘される
ページ をご覧ください
宣言 of ローカル 変数
以下の場合、Ruby でエラーが発生します。
eval "foo = 0"
foo
--
-:2: # の未定義のローカル変数またはメソッド `foo' (名前エラー)
---
名前エラー
ただし、上記は irb によって正常に実行されます。
>> eval "foo = 0"
=> 0
>>ふー
=> 0
Ruby は、コード全体を読み取り、ローカルのスコープを決定した後、コードを評価します。
変数。 一方、irb はすぐに実行します。 より正確には、最初に irb を評価します
evel "foo = 0"
このタイミングで foo が定義されます。 それはこの非互換性のせいです。 よろしければ
これらの違いを検出するには、begin...end を使用できます。
>> 始める
?> eval "foo = 0"
>>ふー
>>終わり
NameError: # のローカル変数またはメソッド `foo' が未定義です
(irb):3
(irb_local_binding):1:in `eval'
ヒアドキュメント
ヒアドキュメントの実装は不完全です。
シンボル
Irb は常にシンボルをシンボルとして認識できるとは限りません。 具体的には、式には次のものがあります
完了しましたが、Irb はそれを継続行とみなします。
2007年4月 JIRB1.3(1)
onworks.net サービスを使用してオンラインで jirb を使用する
