module IRB::ExtendCommandBundle

要約

irb のコマンドを拡張するためのモジュールです。

目次

特異メソッド
インスタンスメソッド
定数

特異メソッド

def_extend_command(cmd_name, cmd_class, load_file = nil, *aliases) -> object[permalink][rdoc]

irb に cmd_name で指定したメソッドが実行できるように拡張します。

[PARAM] cmd_name:
メソッド名を Symbol か文字列で指定します。 cmd_class で指定するクラスの execute メソッドとして定義してある必要があります。
[PARAM] cmd_class:
指定した拡張が定義されたクラス名を SymbolStringClass のいずれかで指定します。なお、このクラスは IRB::ExtendCommand 以下で定義する必要があります。
[PARAM] load_file:
指定したメソッドが定義されたファイル名を指定します。このファイルは自動的に require されます。
[PARAM] aliases:
cmd_name の別名を Symbol とフラグの配列で指定します。複数指定する事ができます。フラグは IRB::ExtendCommandBundle::NO_OVERRIDEIRB::ExtendCommandBundle::OVERRIDE_PRIVATE_ONLYIRB::ExtendCommandBundle::OVERRIDE_ALL のいずれかを指定します。
extend_object(obj) -> IRB::ExtendCommandBundle[permalink][rdoc]

IRB::ExtendCommandBundle で定義済みの拡張に指定されたエイリアスを obj に定義します。

[PARAM] obj:
IRB::ExtendCommandBundle を extend したオブジェクト
install_extend_commands -> object[permalink][rdoc]

定義済みの拡張を読み込みます。

irb で以下のメソッドが利用できるようになります。(それぞれ 1 つだけ抜粋)

irb/extend-command が require された時にライブラリ内部で自動的に実行されます。

[SEE_ALSO] IRB::ExtendCommandBundle.install_extend_commands

irb_original_method_name(method_name) -> String[permalink][rdoc]

method_name で指定したメソッドの irb 中でのエイリアスを返します。ライブラリ内部で使用します。

[PARAM] method_name:
メソッド名を Symbol か文字列で指定します。

[SEE_ALSO] IRB::ExtendCommandBundle#install_alias_method

インスタンスメソッド

install_alias_method(to, from, override = NO_OVERRIDE)[permalink][rdoc]

メソッドのエイリアスを定義します。ライブラリ内部で使用します。

[PARAM] to:
新しいメソッド名を Symbol か文字列で指定します。
[PARAM] from:
元のメソッド名を Symbol か文字列で指定します。
[PARAM] override:
新しいメソッド名が定義済みであった場合にそのメソッドを上書きするかどうかを IRB::ExtendCommandBundle::NO_OVERRIDEIRB::ExtendCommandBundle::OVERRIDE_PRIVATE_ONLYIRB::ExtendCommandBundle::OVERRIDE_ALL のいずれかで指定します。
irb_context -> IRB::Context[permalink][rdoc]

現在の irb に関する IRB::Context を返します。

irb_exit(ret = 0) -> object[permalink][rdoc]

irb を終了します。ret で指定したオブジェクトを返します。

[PARAM] ret:
戻り値を指定します。

ユーザが直接使用するものではありません。

定数

NO_OVERRIDE -> 0[permalink][rdoc]

irb でコマンドのエイリアスを定義する際に、既にこれからエイリアス先に指定したメソッド名と同名のメソッドが定義済みであった場合、エイリアスを定義しない事を指定するフラグです。

[SEE_ALSO] IRB::ExtendCommandBundle.def_extend_command

OVERRIDE_ALL -> 1[permalink][rdoc]

irb でコマンドのエイリアスを定義する際に、既にこれからエイリアス先に指定したメソッド名と同名のメソッドが定義済みであった場合でも、常にエイリアスを定義する事を指定するフラグです。

[SEE_ALSO] IRB::ExtendCommandBundle.def_extend_command

OVERRIDE_PRIVATE_ONLY -> 2[permalink][rdoc]

irb でコマンドのエイリアスを定義する際に、既にこれからエイリアス先に指定したメソッド名と同名の public メソッドが定義済みではなかった場合のみ、エイリアスを定義する事を指定するフラグです。

[SEE_ALSO] IRB::ExtendCommandBundle.def_extend_command