mirror of
				https://github.com/ruby/ruby.git
				synced 2022-11-09 12:17:21 -05:00 
			
		
		
		
	string. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14912 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
		
			
				
	
	
		
			184 lines
		
	
	
	
		
			4 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			184 lines
		
	
	
	
		
			4 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
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:
 | 
						|
%
 | 
						|
 |