Ruby 2.3.0 リファレンスマニュアル > ライブラリ一覧 > irb/xmpライブラリ
Ruby のソースコードとその実行結果を、行ごとに交互に表示するためのライブ ラリです。irb を実行しなくても、使用することが出来ます。
実行結果を得るためには、Kernel#xmp と、XMP#puts を使った方 法があります。どちらの場合も XMP がコンテキスト情報を保持するため、 実行結果に差分はありません。(Binding を指定できるタイミングは違い ます)
Kernel#xmp では、以下のように Ruby のソースコードを文字列として渡 す事で実行結果を標準出力に表示します。
$ cat t.rb require "irb/xmp" xmp <<END foo = 1 foo END $ ruby t.rb foo = 1 ==>1 foo ==>1
XMP#puts では、以下のように Ruby のソースコードを文字列として渡す 事で実行結果を標準出力に表示します。
$ cat t.rb require "irb/xmp" xmp = XMP.new xmp.puts <<END foo = 1 foo END xmp.puts <<END foo END $ ruby t.rb foo = 1 ==>1 foo ==>1 foo ==>1
XMP がコンテキスト情報を管理しているため、変数 foo を 2 度目の呼 び出しでも保持しています。Kernel#xmp でも同様の操作を行えます。
XMP メソッド群のコンテキストは、呼び出す前のコンテキストで評価さ れます。明示的にコンテキストを指定するとそのコンテキストで評価します。
例:
xmp "foo", an_binding
[注意] マルチスレッドには対応していません。
irb/xmp は内部で irb を使用する事で実行結果を表示しています (IRB::Context#prompt_mode で選択できる :XMP モードはそのために用 意されています)。そのため、irb プロンプト中で使用可能なコマンドを実行し た時に実行結果を得る事ができる点に注意してください。(例. nil が返る事を 期待して conf を実行する)
XMP | Ruby のソースコードとその実行結果を、行ごとに交互に表示するためのクラスです。 |
cmath | 複素数演算をサポートするライブラリです。 |
e2mmap | 例外クラスに特定のエラーメッセージ用フォーマットを関連づけるためのライブラリです。 |
forwardable | クラスやオブジェクトに、メソッドの委譲機能を追加するためのライブラリです。 |
irb | irb は Interactive Ruby の略です。 irb を使うと、Ruby の式を標準入力から簡単に入力・実行することができます。 |
irb/cmd/chws | irb 中の irb_current_working_workspace、irb_change_workspace コマンドの ための拡張を定義したサブライブラリです。 |
irb/cmd/help | irb 中の help コマンドのための拡張を定義したサブライブラリです。 |
irb/cmd/load | irb 中の irb_load、irb_require、irb_source コマンドのための拡張を定義し たサブライブラリです。 |
irb/cmd/nop | irb 中でコマンドを拡張する各ライブラリのベースになるクラスを扱うサブラ イブラリです。 |
irb/cmd/pushws | irb 中の irb_workspaces、irb_push_workspace、irb_pop_workspace コマンド のための拡張を定義したサブライブラリです。 |
irb/cmd/subirb | irb 中の irb、irb_jobs、irb_fg、irb_kill コマンドのための拡張を定義した サブライブラリです。 |
irb/context | irb の設定を扱うためのサブライブラリです。 |
irb/ext/change-ws | IRB::Context に irb 中での self を管理する機能を提供するサブライ ブラリです。 |
irb/ext/history | IRB::Context に実行結果の履歴を保持する機能を提供するサブライブラ リです。 |
irb/ext/loader | load または require 時の irb のファイル読み込み機能(irb_load、 irb_require)を定義するサブライブラリです。 |
irb/ext/math-mode | irb コマンドで実行結果を Object#inspect の代わりに Object#to_s した結果で表示するためのサブライブラリです。 |
irb/ext/multi-irb | irb 中で複数の独立した irb を扱えるようにするためのサブライブラリです。 |
irb/ext/save-history | IRB::Context にヒストリの読み込み、保存の機能を提供するサブライブ ラリです。 |
irb/ext/tracer | irb への入力を評価する時に tracer ライブラリを使用してトレース 出力を行う機能を提供するサブライブラリです。 |
irb/ext/use-loader | load または require 時に irb のファイル読み込み機能(irb_load、 irb_require)を使うように設定する機能を提供するサブライブラリです。 |
irb/ext/workspaces | IRB::Context に irb 中での self を管理する機能を提供するサブライ ブラリです。 |
irb/extend-command | irb を拡張するためのサブライブラリです。 |
irb/frame | 現在実行中のフレーム情報を取り扱うためのサブライブラリです。 |
irb/init | irb の初期化をするためのライブラリです。 |
irb/input-method | irb が入力を扱うためのサブライブラリです。 |
irb/locale | ライブラリ内部で使用します。 |
irb/magic-file | irb が扱う入力やファイル中のマジックコメントを正しく扱うためのサブライ ブラリです。 |
irb/notifier | ライブラリ内部で使用します。 |
irb/output-method | irb が出力を扱うためのサブライブラリです。 |
irb/ruby-lex | Ruby のソースコードを字句解析するためのサブライブラリです。 |
irb/ruby-token | Ruby のソースコード中の各種トークンを定義したサブライブラリです。 |
irb/slex | Ruby のソースコードを字句解析するためのサブライブラリです。 irb/ruby-lex から使用されます。 |
irb/src_encoding | irb が扱う入力やファイル中の規程のエンコーディングを正しく扱うためのサ ブライブラリです。 |
irb/version | irb ライブラリのバージョンを定義したサブライブラリです。 |
irb/workspace | irb 中で self を扱うためのサブライブラリです。 |
irb/ws-for-case-2 | ライブラリ内部で使用します。 |
mathn | Rational と Complex をよりシームレスに利用できるようにするライブラリです。数値ライブラリの挙動をグローバルに変更します。 |
matrix | 行列と数ベクトルを扱うためのライブラリです。 |
prime | 素数や素因数分解を扱うライブラリです。 |
readline | GNU Readline によるコマンドライン入力インタフェースを提供するライブラリです。 |
singleton | Singleton パターンを扱うためのライブラリです。 |
thread | このライブラリで提供されていたクラスは 2.3.0 で組み込みクラスになりまし た。互換性のためだけに残されています。 |
tracer | 実行トレース出力をとる機能を提供します。 |