Ruby 2.2.0 リファレンスマニュアル > ライブラリ一覧 > irb/xmpライブラリ

library irb/xmp

要約

Ruby のソースコードとその実行結果を、行ごとに交互に表示するためのライブ ラリです。irb を実行しなくても、使用することが出来ます。

実行結果を得るためには、Kernel#xmp と、XMP#puts を使った方 法があります。どちらの場合も XMP がコンテキスト情報を保持するため、 実行結果に差分はありません。(Binding を指定できるタイミングは違い ます)

関数(Kernel#xmp)を使って実行結果を得る

Kernel#xmp では、以下のように Ruby のソースコードを文字列として渡 す事で実行結果を標準出力に表示します。

$ cat t.rb
require "irb/xmp"
xmp <<END
foo = 1
foo
END
$ ruby t.rb
foo = 1
    ==>1
foo
    ==>1

XMP インスタンス(XMP#puts)を使って実行結果を得る

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 のソースコードとその実行結果を、行ごとに交互に表示するためのクラスです。

同時にrequireされるライブラリ

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

RationalComplex をよりシームレスに利用できるようにするライブラリです。数値ライブラリの挙動をグローバルに変更します。

matrix

行列と数ベクトルを扱うためのライブラリです。

prime

素数や素因数分解を扱うライブラリです。

readline

GNU Readline によるコマンドライン入力インタフェースを提供するライブラリです。

singleton

Singleton パターンを扱うためのライブラリです。

thread

スレッド間キューや状態変数 (condition variable) を提供するライブラリです。

tracer

実行トレース出力をとる機能を提供します。

追加・再定義されるメソッド

Kernel#xmp