зеркало из https://github.com/github/ruby.git
185 строки
4.8 KiB
Plaintext
185 строки
4.8 KiB
Plaintext
irb関連おまけコマンドとライブラリ
|
|
$Release Version: 0.7.1 $
|
|
$Revision$
|
|
by Keiju ISHITSUKA(Nihon Rational Co.,Ltd.)
|
|
|
|
=begin
|
|
|
|
:コマンド:
|
|
* rtags -- ruby tags command
|
|
|
|
:関数ライブラリ:
|
|
* xmp -- irb version of gotoken xmp-function
|
|
|
|
:クラスライブラリ:
|
|
* frame.rb -- frame tracer
|
|
* completion.rb -- irb completor
|
|
|
|
= rtags
|
|
|
|
rtagsはemacs及びvi用の, TAGファイルをつくるコマンドです.
|
|
|
|
== 使い方
|
|
|
|
rtags [-vi] file....
|
|
|
|
カレントディレクトリにemacs用のTAGSファイルができます. -viオプションを
|
|
つけた時にはvi用のtagsファイルを作成します.
|
|
|
|
emacsの場合, 通常のetags.elがそのまま使えます. 検索可能なのは,
|
|
|
|
* クラス
|
|
* メソッド
|
|
* 特異メソッド
|
|
* alias
|
|
* attrで宣言されたアクセサ(パラメータがシンボルか文字列リテラルに限る)
|
|
* attr_XXXで宣言されたアクセサ(パラメータがシンボルか文字列リテラルに限る)
|
|
|
|
です.
|
|
|
|
Cなどで使っているのと違うのは, コンプリーションに関する部分で,
|
|
|
|
関数名は,
|
|
|
|
関数名(
|
|
|
|
クラスは,
|
|
|
|
::クラス名::....::クラス名
|
|
|
|
メソッドは,
|
|
|
|
::クラス名::....::クラス名#メソッド名
|
|
|
|
特異メソッド(クラスメソッド)は
|
|
|
|
::クラス名::....::クラス名.メソッド名
|
|
|
|
でコンプリーションを行なうところです.
|
|
|
|
= xmp.rb
|
|
|
|
ごとけんxmpの上位互換バージョンです. ただ, 非常に重いのでごとけんxmpで
|
|
は対応できない時に, 使用すると良いでしょう.
|
|
|
|
== 使い方
|
|
|
|
=== 関数として使う.
|
|
|
|
require "irb/xmp"
|
|
xmp <<END
|
|
foo = 1
|
|
foo
|
|
END
|
|
---
|
|
foo = 1
|
|
==>1
|
|
foo
|
|
==>1
|
|
|
|
=== XMPインスタンスを用いる.
|
|
|
|
この場合は, XMPがコンテキスト情報を持つので, 変数の値などを保持してい
|
|
ます.
|
|
|
|
require "irb/xmp"
|
|
xmp = XMP.new
|
|
xmp.puts <<END
|
|
foo = 1
|
|
foo
|
|
END
|
|
xmp.puts <<END
|
|
foo
|
|
END
|
|
===
|
|
foo = 1
|
|
==>1
|
|
foo
|
|
==>1
|
|
foo
|
|
==>1
|
|
|
|
== コンテキストに関して
|
|
|
|
XMPメソッド群のコンテキストは, 呼び出す前のコンテキストで評価されます.
|
|
明示的にコンテキストを指定するとそのコンテキストで評価します.
|
|
|
|
例:
|
|
|
|
xmp "foo", an_binding
|
|
|
|
:注:
|
|
マルチスレッドには対応していません.
|
|
|
|
= frame.rb
|
|
現在実行中のフレーム情報を取り扱うためのクラスです.
|
|
|
|
* IRB::Frame.top(n = 0)
|
|
上からn番目のコンテキストを取り出します. nは0が最上位になります.
|
|
* IRB::Frame.bottom(n = 0)
|
|
下からn番目のコンテキストを取り出します. nは0が最下位になります.
|
|
* IRB::Frame.sender
|
|
センダになっているオブジェクトを取り出します. センダとは, そのメソッ
|
|
ドを呼び出した側のselfのことです.
|
|
|
|
:注:
|
|
set_trace_funcを用いてRubyの実行をトレースしています. マルチスレッドに
|
|
は対応していません.
|
|
|
|
= completion.rb
|
|
irbのcompletion機能を提供するものです.
|
|
|
|
== 使い方
|
|
|
|
% irb -r irb/completion
|
|
|
|
とするか, ~/.irbrc 中に
|
|
|
|
require "irb/completion"
|
|
|
|
を入れてください. irb実行中に require "irb/completion" してもよいです.
|
|
|
|
irb実行中に (TAB) を押すとコンプレーションします.
|
|
|
|
トップレベルで(TAB)を押すとすべての構文要素, クラス, メソッドの候補がで
|
|
ます. 候補が唯一ならば完全に補完します.
|
|
|
|
irb(main):001:0> in
|
|
in inspect instance_eval
|
|
include install_alias_method instance_of?
|
|
initialize install_aliases instance_variables
|
|
irb(main):001:0> inspect
|
|
"main"
|
|
irb(main):002:0> foo = Object.new
|
|
#<Object:0x4027146c>
|
|
|
|
((|変数名.|))の後に(TAB)を押すと, そのオブジェクトのメソッド一覧がでま
|
|
す.
|
|
|
|
irb(main):003:0> foo.
|
|
foo.== foo.frozen? foo.protected_methods
|
|
foo.=== foo.hash foo.public_methods
|
|
foo.=~ foo.id foo.respond_to?
|
|
foo.__id__ foo.inspect foo.send
|
|
foo.__send__ foo.instance_eval foo.singleton_methods
|
|
foo.class foo.instance_of? foo.taint
|
|
foo.clone foo.instance_variables foo.tainted?
|
|
foo.display foo.is_a? foo.to_a
|
|
foo.dup foo.kind_of? foo.to_s
|
|
foo.eql? foo.method foo.type
|
|
foo.equal? foo.methods foo.untaint
|
|
foo.extend foo.nil?
|
|
foo.freeze foo.private_methods
|
|
|
|
=end
|
|
|
|
% Begin Emacs Environment
|
|
% Local Variables:
|
|
% mode: text
|
|
% comment-column: 0
|
|
% comment-start: "%"
|
|
% comment-end: "\n"
|
|
% End:
|
|
%
|
|
|