rubysl-irb 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
 - data/.gitignore +17 -0
 - data/.travis.yml +8 -0
 - data/Gemfile +4 -0
 - data/LICENSE +25 -0
 - data/README.md +29 -0
 - data/Rakefile +1 -0
 - data/lib/irb/cmd/chws.rb +33 -0
 - data/lib/irb/cmd/fork.rb +39 -0
 - data/lib/irb/cmd/help.rb +31 -0
 - data/lib/irb/cmd/load.rb +67 -0
 - data/lib/irb/cmd/nop.rb +39 -0
 - data/lib/irb/cmd/pushws.rb +39 -0
 - data/lib/irb/cmd/subirb.rb +43 -0
 - data/lib/irb/completion.rb +205 -0
 - data/lib/irb/context.rb +255 -0
 - data/lib/irb/ext/change-ws.rb +62 -0
 - data/lib/irb/ext/history.rb +110 -0
 - data/lib/irb/ext/loader.rb +120 -0
 - data/lib/irb/ext/math-mode.rb +37 -0
 - data/lib/irb/ext/multi-irb.rb +241 -0
 - data/lib/irb/ext/save-history.rb +70 -0
 - data/lib/irb/ext/tracer.rb +61 -0
 - data/lib/irb/ext/use-loader.rb +65 -0
 - data/lib/irb/ext/workspaces.rb +56 -0
 - data/lib/irb/extend-command.rb +264 -0
 - data/lib/irb/frame.rb +67 -0
 - data/lib/irb/help.rb +35 -0
 - data/lib/irb/init.rb +258 -0
 - data/lib/irb/input-method.rb +120 -0
 - data/lib/irb/lc/error.rb +30 -0
 - data/lib/irb/lc/help-message.rb +37 -0
 - data/lib/irb/lc/ja/error.rb +27 -0
 - data/lib/irb/lc/ja/help-message +36 -0
 - data/lib/irb/locale.rb +184 -0
 - data/lib/irb/notifier.rb +145 -0
 - data/lib/irb/output-method.rb +85 -0
 - data/lib/irb/rubinius.rb +55 -0
 - data/lib/irb/ruby-lex.rb +1149 -0
 - data/lib/irb/ruby-token.rb +273 -0
 - data/lib/irb/slex.rb +285 -0
 - data/lib/irb/version.rb +16 -0
 - data/lib/irb/workspace.rb +107 -0
 - data/lib/irb/ws-for-case-2.rb +15 -0
 - data/lib/irb/xmp.rb +86 -0
 - data/lib/irb.rb +1 -0
 - data/lib/rubysl/irb/irb.rb +356 -0
 - data/lib/rubysl/irb/version.rb +5 -0
 - data/lib/rubysl/irb.rb +2 -0
 - data/rubysl-irb.gemspec +31 -0
 - metadata +219 -0
 
    
        data/lib/irb/context.rb
    ADDED
    
    | 
         @@ -0,0 +1,255 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            #
         
     | 
| 
      
 2 
     | 
    
         
            +
            #   irb/context.rb - irb context
         
     | 
| 
      
 3 
     | 
    
         
            +
            #   	$Release Version: 0.9.5$
         
     | 
| 
      
 4 
     | 
    
         
            +
            #   	$Revision: 11708 $
         
     | 
| 
      
 5 
     | 
    
         
            +
            #   	$Date: 2007-02-12 15:01:19 -0800 (Mon, 12 Feb 2007) $
         
     | 
| 
      
 6 
     | 
    
         
            +
            #   	by Keiju ISHITSUKA(keiju@ruby-lang.org)
         
     | 
| 
      
 7 
     | 
    
         
            +
            #
         
     | 
| 
      
 8 
     | 
    
         
            +
            # --
         
     | 
| 
      
 9 
     | 
    
         
            +
            #
         
     | 
| 
      
 10 
     | 
    
         
            +
            #   
         
     | 
| 
      
 11 
     | 
    
         
            +
            #
         
     | 
| 
      
 12 
     | 
    
         
            +
            require "irb/workspace"
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
            module IRB
         
     | 
| 
      
 15 
     | 
    
         
            +
              class Context
         
     | 
| 
      
 16 
     | 
    
         
            +
                #
         
     | 
| 
      
 17 
     | 
    
         
            +
                # Arguments:
         
     | 
| 
      
 18 
     | 
    
         
            +
                #   input_method: nil -- stdin or readline
         
     | 
| 
      
 19 
     | 
    
         
            +
                #		      String -- File
         
     | 
| 
      
 20 
     | 
    
         
            +
                #		      other -- using this as InputMethod
         
     | 
| 
      
 21 
     | 
    
         
            +
                #
         
     | 
| 
      
 22 
     | 
    
         
            +
                def initialize(irb, workspace = nil, input_method = nil, output_method = nil)
         
     | 
| 
      
 23 
     | 
    
         
            +
                  @irb = irb
         
     | 
| 
      
 24 
     | 
    
         
            +
                  if workspace
         
     | 
| 
      
 25 
     | 
    
         
            +
            	@workspace = workspace
         
     | 
| 
      
 26 
     | 
    
         
            +
                  else
         
     | 
| 
      
 27 
     | 
    
         
            +
            	@workspace = WorkSpace.new
         
     | 
| 
      
 28 
     | 
    
         
            +
                  end
         
     | 
| 
      
 29 
     | 
    
         
            +
                  @thread = Thread.current if defined? Thread
         
     | 
| 
      
 30 
     | 
    
         
            +
            #      @irb_level = 0
         
     | 
| 
      
 31 
     | 
    
         
            +
             
     | 
| 
      
 32 
     | 
    
         
            +
                  # copy of default configuration
         
     | 
| 
      
 33 
     | 
    
         
            +
                  @ap_name = IRB.conf[:AP_NAME]
         
     | 
| 
      
 34 
     | 
    
         
            +
                  @rc = IRB.conf[:RC]
         
     | 
| 
      
 35 
     | 
    
         
            +
                  @load_modules = IRB.conf[:LOAD_MODULES]
         
     | 
| 
      
 36 
     | 
    
         
            +
             
     | 
| 
      
 37 
     | 
    
         
            +
                  @use_readline = IRB.conf[:USE_READLINE]
         
     | 
| 
      
 38 
     | 
    
         
            +
                  @inspect_mode = IRB.conf[:INSPECT_MODE]
         
     | 
| 
      
 39 
     | 
    
         
            +
             
     | 
| 
      
 40 
     | 
    
         
            +
                  self.math_mode = IRB.conf[:MATH_MODE] if IRB.conf[:MATH_MODE]
         
     | 
| 
      
 41 
     | 
    
         
            +
                  self.use_tracer = IRB.conf[:USE_TRACER] if IRB.conf[:USE_TRACER]
         
     | 
| 
      
 42 
     | 
    
         
            +
                  self.use_loader = IRB.conf[:USE_LOADER] if IRB.conf[:USE_LOADER]
         
     | 
| 
      
 43 
     | 
    
         
            +
                  self.eval_history = IRB.conf[:EVAL_HISTORY] if IRB.conf[:EVAL_HISTORY]
         
     | 
| 
      
 44 
     | 
    
         
            +
             
     | 
| 
      
 45 
     | 
    
         
            +
                  @ignore_sigint = IRB.conf[:IGNORE_SIGINT]
         
     | 
| 
      
 46 
     | 
    
         
            +
                  @ignore_eof = IRB.conf[:IGNORE_EOF]
         
     | 
| 
      
 47 
     | 
    
         
            +
             
     | 
| 
      
 48 
     | 
    
         
            +
                  @back_trace_limit = IRB.conf[:BACK_TRACE_LIMIT]
         
     | 
| 
      
 49 
     | 
    
         
            +
                  
         
     | 
| 
      
 50 
     | 
    
         
            +
                  self.prompt_mode = IRB.conf[:PROMPT_MODE]
         
     | 
| 
      
 51 
     | 
    
         
            +
             
     | 
| 
      
 52 
     | 
    
         
            +
                  if IRB.conf[:SINGLE_IRB] or !defined?(JobManager)
         
     | 
| 
      
 53 
     | 
    
         
            +
            	@irb_name = IRB.conf[:IRB_NAME]
         
     | 
| 
      
 54 
     | 
    
         
            +
                  else
         
     | 
| 
      
 55 
     | 
    
         
            +
            	@irb_name = "irb#"+IRB.JobManager.n_jobs.to_s
         
     | 
| 
      
 56 
     | 
    
         
            +
                  end
         
     | 
| 
      
 57 
     | 
    
         
            +
                  @irb_path = "(" + @irb_name + ")"
         
     | 
| 
      
 58 
     | 
    
         
            +
             
     | 
| 
      
 59 
     | 
    
         
            +
                  case input_method
         
     | 
| 
      
 60 
     | 
    
         
            +
                  when nil
         
     | 
| 
      
 61 
     | 
    
         
            +
            	case use_readline?
         
     | 
| 
      
 62 
     | 
    
         
            +
            	when nil
         
     | 
| 
      
 63 
     | 
    
         
            +
            	  if (defined?(ReadlineInputMethod) && STDIN.tty? &&
         
     | 
| 
      
 64 
     | 
    
         
            +
            	      IRB.conf[:PROMPT_MODE] != :INF_RUBY)
         
     | 
| 
      
 65 
     | 
    
         
            +
            	    @io = ReadlineInputMethod.new
         
     | 
| 
      
 66 
     | 
    
         
            +
            	  else
         
     | 
| 
      
 67 
     | 
    
         
            +
            	    @io = StdioInputMethod.new
         
     | 
| 
      
 68 
     | 
    
         
            +
            	  end
         
     | 
| 
      
 69 
     | 
    
         
            +
            	when false
         
     | 
| 
      
 70 
     | 
    
         
            +
            	  @io = StdioInputMethod.new
         
     | 
| 
      
 71 
     | 
    
         
            +
            	when true
         
     | 
| 
      
 72 
     | 
    
         
            +
            	  if defined?(ReadlineInputMethod)
         
     | 
| 
      
 73 
     | 
    
         
            +
            	    @io = ReadlineInputMethod.new
         
     | 
| 
      
 74 
     | 
    
         
            +
            	  else
         
     | 
| 
      
 75 
     | 
    
         
            +
            	    @io = StdioInputMethod.new
         
     | 
| 
      
 76 
     | 
    
         
            +
            	  end
         
     | 
| 
      
 77 
     | 
    
         
            +
            	end
         
     | 
| 
      
 78 
     | 
    
         
            +
             
     | 
| 
      
 79 
     | 
    
         
            +
                  when String
         
     | 
| 
      
 80 
     | 
    
         
            +
            	@io = FileInputMethod.new(input_method)
         
     | 
| 
      
 81 
     | 
    
         
            +
            	@irb_name = File.basename(input_method)
         
     | 
| 
      
 82 
     | 
    
         
            +
            	@irb_path = input_method
         
     | 
| 
      
 83 
     | 
    
         
            +
                  else
         
     | 
| 
      
 84 
     | 
    
         
            +
            	@io = input_method
         
     | 
| 
      
 85 
     | 
    
         
            +
                  end
         
     | 
| 
      
 86 
     | 
    
         
            +
                  self.save_history = IRB.conf[:SAVE_HISTORY] if IRB.conf[:SAVE_HISTORY]
         
     | 
| 
      
 87 
     | 
    
         
            +
             
     | 
| 
      
 88 
     | 
    
         
            +
                  if output_method
         
     | 
| 
      
 89 
     | 
    
         
            +
            	@output_method = output_method
         
     | 
| 
      
 90 
     | 
    
         
            +
                  else
         
     | 
| 
      
 91 
     | 
    
         
            +
            	@output_method = StdioOutputMethod.new
         
     | 
| 
      
 92 
     | 
    
         
            +
                  end
         
     | 
| 
      
 93 
     | 
    
         
            +
             
     | 
| 
      
 94 
     | 
    
         
            +
                  @verbose = IRB.conf[:VERBOSE] 
         
     | 
| 
      
 95 
     | 
    
         
            +
                  @echo = IRB.conf[:ECHO]
         
     | 
| 
      
 96 
     | 
    
         
            +
                  if @echo.nil?
         
     | 
| 
      
 97 
     | 
    
         
            +
            	@echo = true
         
     | 
| 
      
 98 
     | 
    
         
            +
                  end
         
     | 
| 
      
 99 
     | 
    
         
            +
                  @debug_level = IRB.conf[:DEBUG_LEVEL]
         
     | 
| 
      
 100 
     | 
    
         
            +
                end
         
     | 
| 
      
 101 
     | 
    
         
            +
             
     | 
| 
      
 102 
     | 
    
         
            +
                def main
         
     | 
| 
      
 103 
     | 
    
         
            +
                  @workspace.main
         
     | 
| 
      
 104 
     | 
    
         
            +
                end
         
     | 
| 
      
 105 
     | 
    
         
            +
             
     | 
| 
      
 106 
     | 
    
         
            +
                attr_reader :workspace_home
         
     | 
| 
      
 107 
     | 
    
         
            +
                attr_accessor :workspace
         
     | 
| 
      
 108 
     | 
    
         
            +
                attr_reader :thread
         
     | 
| 
      
 109 
     | 
    
         
            +
                attr_accessor :io
         
     | 
| 
      
 110 
     | 
    
         
            +
                
         
     | 
| 
      
 111 
     | 
    
         
            +
                attr_accessor :irb
         
     | 
| 
      
 112 
     | 
    
         
            +
                attr_accessor :ap_name
         
     | 
| 
      
 113 
     | 
    
         
            +
                attr_accessor :rc
         
     | 
| 
      
 114 
     | 
    
         
            +
                attr_accessor :load_modules
         
     | 
| 
      
 115 
     | 
    
         
            +
                attr_accessor :irb_name
         
     | 
| 
      
 116 
     | 
    
         
            +
                attr_accessor :irb_path
         
     | 
| 
      
 117 
     | 
    
         
            +
             
     | 
| 
      
 118 
     | 
    
         
            +
                attr_reader :use_readline
         
     | 
| 
      
 119 
     | 
    
         
            +
                attr_reader :inspect_mode
         
     | 
| 
      
 120 
     | 
    
         
            +
             
     | 
| 
      
 121 
     | 
    
         
            +
                attr_reader :prompt_mode
         
     | 
| 
      
 122 
     | 
    
         
            +
                attr_accessor :prompt_i
         
     | 
| 
      
 123 
     | 
    
         
            +
                attr_accessor :prompt_s
         
     | 
| 
      
 124 
     | 
    
         
            +
                attr_accessor :prompt_c
         
     | 
| 
      
 125 
     | 
    
         
            +
                attr_accessor :prompt_n
         
     | 
| 
      
 126 
     | 
    
         
            +
                attr_accessor :auto_indent_mode
         
     | 
| 
      
 127 
     | 
    
         
            +
                attr_accessor :return_format
         
     | 
| 
      
 128 
     | 
    
         
            +
             
     | 
| 
      
 129 
     | 
    
         
            +
                attr_accessor :ignore_sigint
         
     | 
| 
      
 130 
     | 
    
         
            +
                attr_accessor :ignore_eof
         
     | 
| 
      
 131 
     | 
    
         
            +
                attr_accessor :echo
         
     | 
| 
      
 132 
     | 
    
         
            +
                attr_accessor :verbose
         
     | 
| 
      
 133 
     | 
    
         
            +
                attr_reader :debug_level
         
     | 
| 
      
 134 
     | 
    
         
            +
             
     | 
| 
      
 135 
     | 
    
         
            +
                attr_accessor :back_trace_limit
         
     | 
| 
      
 136 
     | 
    
         
            +
             
     | 
| 
      
 137 
     | 
    
         
            +
                alias use_readline? use_readline
         
     | 
| 
      
 138 
     | 
    
         
            +
                alias rc? rc
         
     | 
| 
      
 139 
     | 
    
         
            +
                alias ignore_sigint? ignore_sigint
         
     | 
| 
      
 140 
     | 
    
         
            +
                alias ignore_eof? ignore_eof
         
     | 
| 
      
 141 
     | 
    
         
            +
                alias echo? echo
         
     | 
| 
      
 142 
     | 
    
         
            +
             
     | 
| 
      
 143 
     | 
    
         
            +
                def verbose?
         
     | 
| 
      
 144 
     | 
    
         
            +
                  if @verbose.nil?
         
     | 
| 
      
 145 
     | 
    
         
            +
            	if defined?(ReadlineInputMethod) && @io.kind_of?(ReadlineInputMethod) 
         
     | 
| 
      
 146 
     | 
    
         
            +
            	  false
         
     | 
| 
      
 147 
     | 
    
         
            +
            	elsif !STDIN.tty? or @io.kind_of?(FileInputMethod)
         
     | 
| 
      
 148 
     | 
    
         
            +
            	  true
         
     | 
| 
      
 149 
     | 
    
         
            +
            	else
         
     | 
| 
      
 150 
     | 
    
         
            +
            	  false
         
     | 
| 
      
 151 
     | 
    
         
            +
            	end
         
     | 
| 
      
 152 
     | 
    
         
            +
                  end
         
     | 
| 
      
 153 
     | 
    
         
            +
                end
         
     | 
| 
      
 154 
     | 
    
         
            +
             
     | 
| 
      
 155 
     | 
    
         
            +
                def prompting?
         
     | 
| 
      
 156 
     | 
    
         
            +
                  verbose? || (STDIN.tty? && @io.kind_of?(StdioInputMethod) ||
         
     | 
| 
      
 157 
     | 
    
         
            +
            		(defined?(ReadlineInputMethod) && @io.kind_of?(ReadlineInputMethod)))
         
     | 
| 
      
 158 
     | 
    
         
            +
                end
         
     | 
| 
      
 159 
     | 
    
         
            +
             
     | 
| 
      
 160 
     | 
    
         
            +
                attr_reader :last_value
         
     | 
| 
      
 161 
     | 
    
         
            +
             
     | 
| 
      
 162 
     | 
    
         
            +
                def set_last_value(value)
         
     | 
| 
      
 163 
     | 
    
         
            +
                  @last_value = value
         
     | 
| 
      
 164 
     | 
    
         
            +
                  @workspace.evaluate self, "_ = IRB.CurrentContext.last_value"
         
     | 
| 
      
 165 
     | 
    
         
            +
                end
         
     | 
| 
      
 166 
     | 
    
         
            +
             
     | 
| 
      
 167 
     | 
    
         
            +
                attr_reader :irb_name
         
     | 
| 
      
 168 
     | 
    
         
            +
             
     | 
| 
      
 169 
     | 
    
         
            +
                def prompt_mode=(mode)
         
     | 
| 
      
 170 
     | 
    
         
            +
                  @prompt_mode = mode
         
     | 
| 
      
 171 
     | 
    
         
            +
                  pconf = IRB.conf[:PROMPT][mode]
         
     | 
| 
      
 172 
     | 
    
         
            +
                  @prompt_i = pconf[:PROMPT_I]
         
     | 
| 
      
 173 
     | 
    
         
            +
                  @prompt_s = pconf[:PROMPT_S]
         
     | 
| 
      
 174 
     | 
    
         
            +
                  @prompt_c = pconf[:PROMPT_C]
         
     | 
| 
      
 175 
     | 
    
         
            +
                  @prompt_n = pconf[:PROMPT_N]
         
     | 
| 
      
 176 
     | 
    
         
            +
                  @return_format = pconf[:RETURN]
         
     | 
| 
      
 177 
     | 
    
         
            +
                  if ai = pconf.include?(:AUTO_INDENT)
         
     | 
| 
      
 178 
     | 
    
         
            +
            	@auto_indent_mode = ai
         
     | 
| 
      
 179 
     | 
    
         
            +
                  else
         
     | 
| 
      
 180 
     | 
    
         
            +
            	@auto_indent_mode = IRB.conf[:AUTO_INDENT]
         
     | 
| 
      
 181 
     | 
    
         
            +
                  end
         
     | 
| 
      
 182 
     | 
    
         
            +
                end
         
     | 
| 
      
 183 
     | 
    
         
            +
                
         
     | 
| 
      
 184 
     | 
    
         
            +
                def inspect?
         
     | 
| 
      
 185 
     | 
    
         
            +
                  @inspect_mode.nil? or @inspect_mode
         
     | 
| 
      
 186 
     | 
    
         
            +
                end
         
     | 
| 
      
 187 
     | 
    
         
            +
             
     | 
| 
      
 188 
     | 
    
         
            +
                def file_input?
         
     | 
| 
      
 189 
     | 
    
         
            +
                  @io.class == FileInputMethod
         
     | 
| 
      
 190 
     | 
    
         
            +
                end
         
     | 
| 
      
 191 
     | 
    
         
            +
             
     | 
| 
      
 192 
     | 
    
         
            +
                def inspect_mode=(opt)
         
     | 
| 
      
 193 
     | 
    
         
            +
                  if opt
         
     | 
| 
      
 194 
     | 
    
         
            +
            	@inspect_mode = opt
         
     | 
| 
      
 195 
     | 
    
         
            +
                  else
         
     | 
| 
      
 196 
     | 
    
         
            +
            	@inspect_mode = !@inspect_mode
         
     | 
| 
      
 197 
     | 
    
         
            +
                  end
         
     | 
| 
      
 198 
     | 
    
         
            +
                  print "Switch to#{unless @inspect_mode; ' non';end} inspect mode.\n" if verbose?
         
     | 
| 
      
 199 
     | 
    
         
            +
                  @inspect_mode
         
     | 
| 
      
 200 
     | 
    
         
            +
                end
         
     | 
| 
      
 201 
     | 
    
         
            +
             
     | 
| 
      
 202 
     | 
    
         
            +
                def use_readline=(opt)
         
     | 
| 
      
 203 
     | 
    
         
            +
                  @use_readline = opt
         
     | 
| 
      
 204 
     | 
    
         
            +
                  print "use readline module\n" if @use_readline
         
     | 
| 
      
 205 
     | 
    
         
            +
                end
         
     | 
| 
      
 206 
     | 
    
         
            +
             
     | 
| 
      
 207 
     | 
    
         
            +
                def debug_level=(value)
         
     | 
| 
      
 208 
     | 
    
         
            +
                  @debug_level = value
         
     | 
| 
      
 209 
     | 
    
         
            +
                  RubyLex.debug_level = value
         
     | 
| 
      
 210 
     | 
    
         
            +
                  SLex.debug_level = value
         
     | 
| 
      
 211 
     | 
    
         
            +
                end
         
     | 
| 
      
 212 
     | 
    
         
            +
             
     | 
| 
      
 213 
     | 
    
         
            +
                def debug?
         
     | 
| 
      
 214 
     | 
    
         
            +
                  @debug_level > 0
         
     | 
| 
      
 215 
     | 
    
         
            +
                end
         
     | 
| 
      
 216 
     | 
    
         
            +
             
     | 
| 
      
 217 
     | 
    
         
            +
                def evaluate(line, line_no)
         
     | 
| 
      
 218 
     | 
    
         
            +
                  @line_no = line_no
         
     | 
| 
      
 219 
     | 
    
         
            +
                  set_last_value(@workspace.evaluate(self, line, irb_path, line_no))
         
     | 
| 
      
 220 
     | 
    
         
            +
            #      @workspace.evaluate("_ = IRB.conf[:MAIN_CONTEXT]._")
         
     | 
| 
      
 221 
     | 
    
         
            +
            #      @_ = @workspace.evaluate(line, irb_path, line_no)
         
     | 
| 
      
 222 
     | 
    
         
            +
                end
         
     | 
| 
      
 223 
     | 
    
         
            +
             
     | 
| 
      
 224 
     | 
    
         
            +
                alias __exit__ exit
         
     | 
| 
      
 225 
     | 
    
         
            +
                def exit(ret = 0)
         
     | 
| 
      
 226 
     | 
    
         
            +
                  IRB.irb_exit(@irb, ret)
         
     | 
| 
      
 227 
     | 
    
         
            +
                end
         
     | 
| 
      
 228 
     | 
    
         
            +
             
     | 
| 
      
 229 
     | 
    
         
            +
                NOPRINTING_IVARS = ["@last_value"]
         
     | 
| 
      
 230 
     | 
    
         
            +
                NO_INSPECTING_IVARS = ["@irb", "@io"]
         
     | 
| 
      
 231 
     | 
    
         
            +
                IDNAME_IVARS = ["@prompt_mode"]
         
     | 
| 
      
 232 
     | 
    
         
            +
             
     | 
| 
      
 233 
     | 
    
         
            +
                alias __inspect__ inspect
         
     | 
| 
      
 234 
     | 
    
         
            +
                def inspect
         
     | 
| 
      
 235 
     | 
    
         
            +
                  array = []
         
     | 
| 
      
 236 
     | 
    
         
            +
                  for ivar in instance_variables.sort{|e1, e2| e1 <=> e2}
         
     | 
| 
      
 237 
     | 
    
         
            +
            	name = ivar.sub(/^@(.*)$/){$1}
         
     | 
| 
      
 238 
     | 
    
         
            +
            	val = instance_eval(ivar)
         
     | 
| 
      
 239 
     | 
    
         
            +
            	case ivar
         
     | 
| 
      
 240 
     | 
    
         
            +
            	when *NOPRINTING_IVARS
         
     | 
| 
      
 241 
     | 
    
         
            +
            	  array.push format("conf.%s=%s", name, "...")
         
     | 
| 
      
 242 
     | 
    
         
            +
            	when *NO_INSPECTING_IVARS
         
     | 
| 
      
 243 
     | 
    
         
            +
            	  array.push format("conf.%s=%s", name, val.to_s)
         
     | 
| 
      
 244 
     | 
    
         
            +
            	when *IDNAME_IVARS
         
     | 
| 
      
 245 
     | 
    
         
            +
            	  array.push format("conf.%s=:%s", name, val.id2name)
         
     | 
| 
      
 246 
     | 
    
         
            +
            	else
         
     | 
| 
      
 247 
     | 
    
         
            +
            	  array.push format("conf.%s=%s", name, val.inspect)
         
     | 
| 
      
 248 
     | 
    
         
            +
            	end
         
     | 
| 
      
 249 
     | 
    
         
            +
                  end
         
     | 
| 
      
 250 
     | 
    
         
            +
                  array.join("\n")
         
     | 
| 
      
 251 
     | 
    
         
            +
                end
         
     | 
| 
      
 252 
     | 
    
         
            +
                alias __to_s__ to_s
         
     | 
| 
      
 253 
     | 
    
         
            +
                alias to_s inspect
         
     | 
| 
      
 254 
     | 
    
         
            +
              end
         
     | 
| 
      
 255 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,62 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            #
         
     | 
| 
      
 2 
     | 
    
         
            +
            #   irb/ext/cb.rb - 
         
     | 
| 
      
 3 
     | 
    
         
            +
            #   	$Release Version: 0.9.5$
         
     | 
| 
      
 4 
     | 
    
         
            +
            #   	$Revision: 11708 $
         
     | 
| 
      
 5 
     | 
    
         
            +
            #   	$Date: 2007-02-12 15:01:19 -0800 (Mon, 12 Feb 2007) $
         
     | 
| 
      
 6 
     | 
    
         
            +
            #   	by Keiju ISHITSUKA(keiju@ruby-lang.org)
         
     | 
| 
      
 7 
     | 
    
         
            +
            #
         
     | 
| 
      
 8 
     | 
    
         
            +
            # --
         
     | 
| 
      
 9 
     | 
    
         
            +
            #
         
     | 
| 
      
 10 
     | 
    
         
            +
            #   
         
     | 
| 
      
 11 
     | 
    
         
            +
            #
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
            module IRB
         
     | 
| 
      
 14 
     | 
    
         
            +
              class Context
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
                def home_workspace
         
     | 
| 
      
 17 
     | 
    
         
            +
                  if defined? @home_workspace
         
     | 
| 
      
 18 
     | 
    
         
            +
            	@home_workspace
         
     | 
| 
      
 19 
     | 
    
         
            +
                  else
         
     | 
| 
      
 20 
     | 
    
         
            +
            	@home_workspace = @workspace
         
     | 
| 
      
 21 
     | 
    
         
            +
                  end
         
     | 
| 
      
 22 
     | 
    
         
            +
                end
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
                def change_workspace(*_main)
         
     | 
| 
      
 25 
     | 
    
         
            +
                  if _main.empty?
         
     | 
| 
      
 26 
     | 
    
         
            +
            	@workspace = home_workspace 
         
     | 
| 
      
 27 
     | 
    
         
            +
            	return main
         
     | 
| 
      
 28 
     | 
    
         
            +
                  end
         
     | 
| 
      
 29 
     | 
    
         
            +
                  
         
     | 
| 
      
 30 
     | 
    
         
            +
                  @workspace = WorkSpace.new(_main[0])
         
     | 
| 
      
 31 
     | 
    
         
            +
                  
         
     | 
| 
      
 32 
     | 
    
         
            +
                  if !(class<<main;ancestors;end).include?(ExtendCommandBundle)
         
     | 
| 
      
 33 
     | 
    
         
            +
            	main.extend ExtendCommandBundle
         
     | 
| 
      
 34 
     | 
    
         
            +
                  end
         
     | 
| 
      
 35 
     | 
    
         
            +
                end
         
     | 
| 
      
 36 
     | 
    
         
            +
             
     | 
| 
      
 37 
     | 
    
         
            +
            #     def change_binding(*_main)
         
     | 
| 
      
 38 
     | 
    
         
            +
            #       back = @workspace
         
     | 
| 
      
 39 
     | 
    
         
            +
            #       @workspace = WorkSpace.new(*_main)
         
     | 
| 
      
 40 
     | 
    
         
            +
            #       unless _main.empty?
         
     | 
| 
      
 41 
     | 
    
         
            +
            # 	begin
         
     | 
| 
      
 42 
     | 
    
         
            +
            # 	  main.extend ExtendCommandBundle
         
     | 
| 
      
 43 
     | 
    
         
            +
            # 	rescue
         
     | 
| 
      
 44 
     | 
    
         
            +
            # 	  print "can't change binding to: ", main.inspect, "\n"
         
     | 
| 
      
 45 
     | 
    
         
            +
            # 	  @workspace = back
         
     | 
| 
      
 46 
     | 
    
         
            +
            # 	  return nil
         
     | 
| 
      
 47 
     | 
    
         
            +
            # 	end
         
     | 
| 
      
 48 
     | 
    
         
            +
            #       end
         
     | 
| 
      
 49 
     | 
    
         
            +
            #       @irb_level += 1
         
     | 
| 
      
 50 
     | 
    
         
            +
            #       begin
         
     | 
| 
      
 51 
     | 
    
         
            +
            # 	catch(:SU_EXIT) do
         
     | 
| 
      
 52 
     | 
    
         
            +
            # 	  @irb.eval_input
         
     | 
| 
      
 53 
     | 
    
         
            +
            # 	end
         
     | 
| 
      
 54 
     | 
    
         
            +
            #       ensure
         
     | 
| 
      
 55 
     | 
    
         
            +
            # 	@irb_level -= 1
         
     | 
| 
      
 56 
     | 
    
         
            +
            #  	@workspace = back
         
     | 
| 
      
 57 
     | 
    
         
            +
            #       end
         
     | 
| 
      
 58 
     | 
    
         
            +
            #     end
         
     | 
| 
      
 59 
     | 
    
         
            +
            #     alias change_workspace change_binding
         
     | 
| 
      
 60 
     | 
    
         
            +
               end
         
     | 
| 
      
 61 
     | 
    
         
            +
            end
         
     | 
| 
      
 62 
     | 
    
         
            +
             
     | 
| 
         @@ -0,0 +1,110 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            #
         
     | 
| 
      
 2 
     | 
    
         
            +
            #   history.rb - 
         
     | 
| 
      
 3 
     | 
    
         
            +
            #   	$Release Version: 0.9.5$
         
     | 
| 
      
 4 
     | 
    
         
            +
            #   	$Revision: 11708 $
         
     | 
| 
      
 5 
     | 
    
         
            +
            #   	$Date: 2007-02-12 15:01:19 -0800 (Mon, 12 Feb 2007) $
         
     | 
| 
      
 6 
     | 
    
         
            +
            #   	by Keiju ISHITSUKA(keiju@ruby-lang.org)
         
     | 
| 
      
 7 
     | 
    
         
            +
            #
         
     | 
| 
      
 8 
     | 
    
         
            +
            # --
         
     | 
| 
      
 9 
     | 
    
         
            +
            #
         
     | 
| 
      
 10 
     | 
    
         
            +
            #   
         
     | 
| 
      
 11 
     | 
    
         
            +
            #
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
            module IRB
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
              class Context
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
      
 17 
     | 
    
         
            +
                NOPRINTING_IVARS.push "@eval_history_values"
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
                alias _set_last_value set_last_value
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
                def set_last_value(value)
         
     | 
| 
      
 22 
     | 
    
         
            +
                  _set_last_value(value)
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
            #      @workspace.evaluate self, "_ = IRB.CurrentContext.last_value"
         
     | 
| 
      
 25 
     | 
    
         
            +
                  if @eval_history #and !@eval_history_values.equal?(llv)
         
     | 
| 
      
 26 
     | 
    
         
            +
             	@eval_history_values.push @line_no, @last_value
         
     | 
| 
      
 27 
     | 
    
         
            +
             	@workspace.evaluate self, "__ = IRB.CurrentContext.instance_eval{@eval_history_values}"
         
     | 
| 
      
 28 
     | 
    
         
            +
                  end
         
     | 
| 
      
 29 
     | 
    
         
            +
             
     | 
| 
      
 30 
     | 
    
         
            +
                  @last_value
         
     | 
| 
      
 31 
     | 
    
         
            +
                end
         
     | 
| 
      
 32 
     | 
    
         
            +
             
     | 
| 
      
 33 
     | 
    
         
            +
                attr_reader :eval_history
         
     | 
| 
      
 34 
     | 
    
         
            +
                def eval_history=(no)
         
     | 
| 
      
 35 
     | 
    
         
            +
                  if no
         
     | 
| 
      
 36 
     | 
    
         
            +
            	if defined?(@eval_history) && @eval_history
         
     | 
| 
      
 37 
     | 
    
         
            +
            	  @eval_history_values.size(no)
         
     | 
| 
      
 38 
     | 
    
         
            +
            	else
         
     | 
| 
      
 39 
     | 
    
         
            +
            	  @eval_history_values = History.new(no)
         
     | 
| 
      
 40 
     | 
    
         
            +
            	  IRB.conf[:__TMP__EHV__] = @eval_history_values
         
     | 
| 
      
 41 
     | 
    
         
            +
            	  @workspace.evaluate(self, "__ = IRB.conf[:__TMP__EHV__]")
         
     | 
| 
      
 42 
     | 
    
         
            +
            	  IRB.conf.delete(:__TMP_EHV__)
         
     | 
| 
      
 43 
     | 
    
         
            +
            	end
         
     | 
| 
      
 44 
     | 
    
         
            +
                  else
         
     | 
| 
      
 45 
     | 
    
         
            +
            	@eval_history_values = nil
         
     | 
| 
      
 46 
     | 
    
         
            +
                  end
         
     | 
| 
      
 47 
     | 
    
         
            +
                  @eval_history = no
         
     | 
| 
      
 48 
     | 
    
         
            +
                end
         
     | 
| 
      
 49 
     | 
    
         
            +
              end
         
     | 
| 
      
 50 
     | 
    
         
            +
             
     | 
| 
      
 51 
     | 
    
         
            +
              class History
         
     | 
| 
      
 52 
     | 
    
         
            +
                @RCS_ID='-$Id: history.rb 11708 2007-02-12 23:01:19Z shyouhei $-'
         
     | 
| 
      
 53 
     | 
    
         
            +
             
     | 
| 
      
 54 
     | 
    
         
            +
                def initialize(size = 16)
         
     | 
| 
      
 55 
     | 
    
         
            +
                  @size = size
         
     | 
| 
      
 56 
     | 
    
         
            +
                  @contents = []
         
     | 
| 
      
 57 
     | 
    
         
            +
                end
         
     | 
| 
      
 58 
     | 
    
         
            +
             
     | 
| 
      
 59 
     | 
    
         
            +
                def size(size)
         
     | 
| 
      
 60 
     | 
    
         
            +
                  if size != 0 && size < @size 
         
     | 
| 
      
 61 
     | 
    
         
            +
            	@contents = @contents[@size - size .. @size]
         
     | 
| 
      
 62 
     | 
    
         
            +
                  end
         
     | 
| 
      
 63 
     | 
    
         
            +
                  @size = size
         
     | 
| 
      
 64 
     | 
    
         
            +
                end
         
     | 
| 
      
 65 
     | 
    
         
            +
             
     | 
| 
      
 66 
     | 
    
         
            +
                def [](idx)
         
     | 
| 
      
 67 
     | 
    
         
            +
                  begin
         
     | 
| 
      
 68 
     | 
    
         
            +
            	if idx >= 0
         
     | 
| 
      
 69 
     | 
    
         
            +
            	  @contents.find{|no, val| no == idx}[1]
         
     | 
| 
      
 70 
     | 
    
         
            +
            	else
         
     | 
| 
      
 71 
     | 
    
         
            +
            	  @contents[idx][1]
         
     | 
| 
      
 72 
     | 
    
         
            +
            	end
         
     | 
| 
      
 73 
     | 
    
         
            +
                  rescue NameError
         
     | 
| 
      
 74 
     | 
    
         
            +
            	nil
         
     | 
| 
      
 75 
     | 
    
         
            +
                  end
         
     | 
| 
      
 76 
     | 
    
         
            +
                end
         
     | 
| 
      
 77 
     | 
    
         
            +
             
     | 
| 
      
 78 
     | 
    
         
            +
                def push(no, val)
         
     | 
| 
      
 79 
     | 
    
         
            +
                  @contents.push [no, val]
         
     | 
| 
      
 80 
     | 
    
         
            +
                  @contents.shift if @size != 0 && @contents.size > @size
         
     | 
| 
      
 81 
     | 
    
         
            +
                end
         
     | 
| 
      
 82 
     | 
    
         
            +
                
         
     | 
| 
      
 83 
     | 
    
         
            +
                alias real_inspect inspect
         
     | 
| 
      
 84 
     | 
    
         
            +
             
     | 
| 
      
 85 
     | 
    
         
            +
                def inspect
         
     | 
| 
      
 86 
     | 
    
         
            +
                  if @contents.empty?
         
     | 
| 
      
 87 
     | 
    
         
            +
            	return real_inspect
         
     | 
| 
      
 88 
     | 
    
         
            +
                  end
         
     | 
| 
      
 89 
     | 
    
         
            +
             
     | 
| 
      
 90 
     | 
    
         
            +
                  unless (last = @contents.pop)[1].equal?(self)
         
     | 
| 
      
 91 
     | 
    
         
            +
            	@contents.push last
         
     | 
| 
      
 92 
     | 
    
         
            +
            	last = nil
         
     | 
| 
      
 93 
     | 
    
         
            +
                  end
         
     | 
| 
      
 94 
     | 
    
         
            +
                  str = @contents.collect{|no, val|
         
     | 
| 
      
 95 
     | 
    
         
            +
            	if val.equal?(self)
         
     | 
| 
      
 96 
     | 
    
         
            +
            	  "#{no} ...self-history..."
         
     | 
| 
      
 97 
     | 
    
         
            +
            	else
         
     | 
| 
      
 98 
     | 
    
         
            +
            	  "#{no} #{val.inspect}"
         
     | 
| 
      
 99 
     | 
    
         
            +
            	end
         
     | 
| 
      
 100 
     | 
    
         
            +
                  }.join("\n")
         
     | 
| 
      
 101 
     | 
    
         
            +
                  if str == ""
         
     | 
| 
      
 102 
     | 
    
         
            +
            	str = "Empty."
         
     | 
| 
      
 103 
     | 
    
         
            +
                  end
         
     | 
| 
      
 104 
     | 
    
         
            +
                  @contents.push last if last
         
     | 
| 
      
 105 
     | 
    
         
            +
                  str
         
     | 
| 
      
 106 
     | 
    
         
            +
                end
         
     | 
| 
      
 107 
     | 
    
         
            +
              end
         
     | 
| 
      
 108 
     | 
    
         
            +
            end
         
     | 
| 
      
 109 
     | 
    
         
            +
             
     | 
| 
      
 110 
     | 
    
         
            +
             
     | 
| 
         @@ -0,0 +1,120 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            #
         
     | 
| 
      
 2 
     | 
    
         
            +
            #   loader.rb - 
         
     | 
| 
      
 3 
     | 
    
         
            +
            #   	$Release Version: 0.9.5$
         
     | 
| 
      
 4 
     | 
    
         
            +
            #   	$Revision: 11708 $
         
     | 
| 
      
 5 
     | 
    
         
            +
            #   	$Date: 2007-02-12 15:01:19 -0800 (Mon, 12 Feb 2007) $
         
     | 
| 
      
 6 
     | 
    
         
            +
            #   	by Keiju ISHITSUKA(keiju@ruby-lang.org)
         
     | 
| 
      
 7 
     | 
    
         
            +
            #
         
     | 
| 
      
 8 
     | 
    
         
            +
            # --
         
     | 
| 
      
 9 
     | 
    
         
            +
            #
         
     | 
| 
      
 10 
     | 
    
         
            +
            #   
         
     | 
| 
      
 11 
     | 
    
         
            +
            #
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
            module IRB
         
     | 
| 
      
 15 
     | 
    
         
            +
              class LoadAbort < Exception;end
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
      
 17 
     | 
    
         
            +
              module IrbLoader
         
     | 
| 
      
 18 
     | 
    
         
            +
                @RCS_ID='-$Id: loader.rb 11708 2007-02-12 23:01:19Z shyouhei $-'
         
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
      
 20 
     | 
    
         
            +
                alias ruby_load load
         
     | 
| 
      
 21 
     | 
    
         
            +
                alias ruby_require require
         
     | 
| 
      
 22 
     | 
    
         
            +
             
     | 
| 
      
 23 
     | 
    
         
            +
                def irb_load(fn, priv = nil)
         
     | 
| 
      
 24 
     | 
    
         
            +
                  path = search_file_from_ruby_path(fn)
         
     | 
| 
      
 25 
     | 
    
         
            +
                  raise LoadError, "No such file to load -- #{fn}" unless path
         
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
      
 27 
     | 
    
         
            +
                  load_file(path, priv)
         
     | 
| 
      
 28 
     | 
    
         
            +
                end
         
     | 
| 
      
 29 
     | 
    
         
            +
             
     | 
| 
      
 30 
     | 
    
         
            +
                def search_file_from_ruby_path(fn)
         
     | 
| 
      
 31 
     | 
    
         
            +
                  if /^#{Regexp.quote(File::Separator)}/ =~ fn
         
     | 
| 
      
 32 
     | 
    
         
            +
            	return fn if File.exist?(fn)
         
     | 
| 
      
 33 
     | 
    
         
            +
            	return nil
         
     | 
| 
      
 34 
     | 
    
         
            +
                  end
         
     | 
| 
      
 35 
     | 
    
         
            +
             
     | 
| 
      
 36 
     | 
    
         
            +
                  for path in $:
         
     | 
| 
      
 37 
     | 
    
         
            +
            	if File.exist?(f = File.join(path, fn))
         
     | 
| 
      
 38 
     | 
    
         
            +
            	  return f
         
     | 
| 
      
 39 
     | 
    
         
            +
            	end
         
     | 
| 
      
 40 
     | 
    
         
            +
                  end
         
     | 
| 
      
 41 
     | 
    
         
            +
                  return nil
         
     | 
| 
      
 42 
     | 
    
         
            +
                end
         
     | 
| 
      
 43 
     | 
    
         
            +
             
     | 
| 
      
 44 
     | 
    
         
            +
                def source_file(path)
         
     | 
| 
      
 45 
     | 
    
         
            +
                  irb.suspend_name(path, File.basename(path)) do
         
     | 
| 
      
 46 
     | 
    
         
            +
            	irb.suspend_input_method(FileInputMethod.new(path)) do
         
     | 
| 
      
 47 
     | 
    
         
            +
            	  |back_io|
         
     | 
| 
      
 48 
     | 
    
         
            +
            	  irb.signal_status(:IN_LOAD) do 
         
     | 
| 
      
 49 
     | 
    
         
            +
            	    if back_io.kind_of?(FileInputMethod)
         
     | 
| 
      
 50 
     | 
    
         
            +
            	      irb.eval_input
         
     | 
| 
      
 51 
     | 
    
         
            +
            	    else
         
     | 
| 
      
 52 
     | 
    
         
            +
            	      begin
         
     | 
| 
      
 53 
     | 
    
         
            +
            		irb.eval_input
         
     | 
| 
      
 54 
     | 
    
         
            +
            	      rescue LoadAbort
         
     | 
| 
      
 55 
     | 
    
         
            +
            		print "load abort!!\n"
         
     | 
| 
      
 56 
     | 
    
         
            +
            	      end
         
     | 
| 
      
 57 
     | 
    
         
            +
            	    end
         
     | 
| 
      
 58 
     | 
    
         
            +
            	  end
         
     | 
| 
      
 59 
     | 
    
         
            +
            	end
         
     | 
| 
      
 60 
     | 
    
         
            +
                  end
         
     | 
| 
      
 61 
     | 
    
         
            +
                end
         
     | 
| 
      
 62 
     | 
    
         
            +
             
     | 
| 
      
 63 
     | 
    
         
            +
                def load_file(path, priv = nil)
         
     | 
| 
      
 64 
     | 
    
         
            +
                  irb.suspend_name(path, File.basename(path)) do
         
     | 
| 
      
 65 
     | 
    
         
            +
            	
         
     | 
| 
      
 66 
     | 
    
         
            +
            	if priv
         
     | 
| 
      
 67 
     | 
    
         
            +
            	  ws = WorkSpace.new(Module.new)
         
     | 
| 
      
 68 
     | 
    
         
            +
            	else
         
     | 
| 
      
 69 
     | 
    
         
            +
            	  ws = WorkSpace.new
         
     | 
| 
      
 70 
     | 
    
         
            +
            	end
         
     | 
| 
      
 71 
     | 
    
         
            +
            	irb.suspend_workspace(ws) do
         
     | 
| 
      
 72 
     | 
    
         
            +
            	  irb.suspend_input_method(FileInputMethod.new(path)) do
         
     | 
| 
      
 73 
     | 
    
         
            +
            	    |back_io|
         
     | 
| 
      
 74 
     | 
    
         
            +
            	    irb.signal_status(:IN_LOAD) do 
         
     | 
| 
      
 75 
     | 
    
         
            +
            #	      p irb.conf
         
     | 
| 
      
 76 
     | 
    
         
            +
            	      if back_io.kind_of?(FileInputMethod)
         
     | 
| 
      
 77 
     | 
    
         
            +
            		irb.eval_input
         
     | 
| 
      
 78 
     | 
    
         
            +
            	      else
         
     | 
| 
      
 79 
     | 
    
         
            +
            		begin
         
     | 
| 
      
 80 
     | 
    
         
            +
            		  irb.eval_input
         
     | 
| 
      
 81 
     | 
    
         
            +
            		rescue LoadAbort
         
     | 
| 
      
 82 
     | 
    
         
            +
            		  print "load abort!!\n"
         
     | 
| 
      
 83 
     | 
    
         
            +
            		end
         
     | 
| 
      
 84 
     | 
    
         
            +
            	      end
         
     | 
| 
      
 85 
     | 
    
         
            +
            	    end
         
     | 
| 
      
 86 
     | 
    
         
            +
            	  end
         
     | 
| 
      
 87 
     | 
    
         
            +
            	end
         
     | 
| 
      
 88 
     | 
    
         
            +
                  end
         
     | 
| 
      
 89 
     | 
    
         
            +
                end
         
     | 
| 
      
 90 
     | 
    
         
            +
             
     | 
| 
      
 91 
     | 
    
         
            +
                def old
         
     | 
| 
      
 92 
     | 
    
         
            +
                  back_io = @io
         
     | 
| 
      
 93 
     | 
    
         
            +
                  back_path = @irb_path
         
     | 
| 
      
 94 
     | 
    
         
            +
                  back_name = @irb_name
         
     | 
| 
      
 95 
     | 
    
         
            +
                  back_scanner = @irb.scanner
         
     | 
| 
      
 96 
     | 
    
         
            +
                  begin
         
     | 
| 
      
 97 
     | 
    
         
            +
             	@io = FileInputMethod.new(path)
         
     | 
| 
      
 98 
     | 
    
         
            +
             	@irb_name = File.basename(path)
         
     | 
| 
      
 99 
     | 
    
         
            +
            	@irb_path = path
         
     | 
| 
      
 100 
     | 
    
         
            +
            	@irb.signal_status(:IN_LOAD) do
         
     | 
| 
      
 101 
     | 
    
         
            +
            	  if back_io.kind_of?(FileInputMethod)
         
     | 
| 
      
 102 
     | 
    
         
            +
            	    @irb.eval_input
         
     | 
| 
      
 103 
     | 
    
         
            +
            	  else
         
     | 
| 
      
 104 
     | 
    
         
            +
            	    begin
         
     | 
| 
      
 105 
     | 
    
         
            +
            	      @irb.eval_input
         
     | 
| 
      
 106 
     | 
    
         
            +
            	    rescue LoadAbort
         
     | 
| 
      
 107 
     | 
    
         
            +
            	      print "load abort!!\n"
         
     | 
| 
      
 108 
     | 
    
         
            +
            	    end
         
     | 
| 
      
 109 
     | 
    
         
            +
            	  end
         
     | 
| 
      
 110 
     | 
    
         
            +
            	end
         
     | 
| 
      
 111 
     | 
    
         
            +
                  ensure
         
     | 
| 
      
 112 
     | 
    
         
            +
             	@io = back_io
         
     | 
| 
      
 113 
     | 
    
         
            +
             	@irb_name = back_name
         
     | 
| 
      
 114 
     | 
    
         
            +
             	@irb_path = back_path
         
     | 
| 
      
 115 
     | 
    
         
            +
            	@irb.scanner = back_scanner
         
     | 
| 
      
 116 
     | 
    
         
            +
                  end
         
     | 
| 
      
 117 
     | 
    
         
            +
                end
         
     | 
| 
      
 118 
     | 
    
         
            +
              end
         
     | 
| 
      
 119 
     | 
    
         
            +
            end
         
     | 
| 
      
 120 
     | 
    
         
            +
             
     |