[macruby-changes] [4742] DietRB/trunk

source_changes at macosforge.org source_changes at macosforge.org
Fri Oct 8 04:08:27 PDT 2010


Revision: 4742
          http://trac.macosforge.org/projects/ruby/changeset/4742
Author:   eloy.de.enige at gmail.com
Date:     2010-10-08 04:08:26 -0700 (Fri, 08 Oct 2010)
Log Message:
-----------
Move handling a file, as input, back to bin/dietrb. And add option for selecting a driver.

From: Eloy Duran <eloy.de.enige at gmail.com>

Modified Paths:
--------------
    DietRB/trunk/bin/dietrb

Removed Paths:
-------------
    DietRB/trunk/lib/irb/driver/file.rb

Modified: DietRB/trunk/bin/dietrb
===================================================================
--- DietRB/trunk/bin/dietrb	2010-10-08 11:08:17 UTC (rev 4741)
+++ DietRB/trunk/bin/dietrb	2010-10-08 11:08:26 UTC (rev 4742)
@@ -5,18 +5,20 @@
 unless ARGV.empty?
   require 'optparse'
   
+  driver = nil
   ignore_irbrc = false
   
   OptionParser.new do |opt|
     bin = File.basename($0)
     opt.banner = "Usage:  #{bin} [options] [programfile] [arguments]"
-    opt.on("-f",              "Ignore ~/.irbrc") { |ignore| ignore_irbrc = ignore  }
-    opt.on("-r load-lib",     "Loads the given library (same as `ruby -r')") { |lib| require lib }
-    opt.on("-d",              "Set $DEBUG to true (same as `ruby -d')") { $DEBUG = true }
-    opt.on("-I path",         "Add path to $LOAD_PATH") { |path| $LOAD_PATH.unshift(path) }
-    opt.on("--noinspect",     "Don't use inspect for output") { IRB.formatter.inspect = false }
-    opt.on("--simple-prompt", "Simple prompt mode") { IRB.formatter.prompt = :simple }
-    opt.on("--noprompt",      "No prompt mode") { IRB.formatter.prompt = nil }
+    opt.on("-f",              "Ignore ~/.irbrc")                                 { |i| ignore_irbrc = i }
+    opt.on("-r load-lib",     "Loads the given library (same as `ruby -r')")     { |l| require l }
+    opt.on("-d",              "Set $DEBUG to true (same as `ruby -d')")          { $DEBUG = true }
+    opt.on("-I path",         "Add path to $LOAD_PATH")                          { |p| $LOAD_PATH.unshift(p) }
+    opt.on("--driver name",   "As driver, use one of: tty, readline, or socket") { |d| driver = d }
+    opt.on("--noinspect",     "Don't use inspect for output")                    { IRB.formatter.inspect = false }
+    opt.on("--simple-prompt", "Simple prompt mode")                              { IRB.formatter.prompt = :simple }
+    opt.on("--noprompt",      "No prompt mode")                                  { IRB.formatter.prompt = nil }
     opt.on("-v", "--version", "Print the version of #{bin}") do
       $stdout.puts IRB::VERSION::DESCRIPTION
       exit
@@ -32,13 +34,16 @@
 IRB.formatter.filter_from_backtrace << /^#{__FILE__}/
 
 if ARGV.empty?
-  require 'irb/driver/readline'
-  # require 'irb/driver/tty'
-  # require 'irb/driver/socket'
+  driver ||= begin
+    require 'readline'
+    'readline'
+  rescue LoadError
+    'tty'
+  end
+  require "irb/driver/#{driver}"
+  irb(self, TOPLEVEL_BINDING.dup)
 else
   path = ARGV.shift
-  require 'irb/driver/file'
-  IRB::Driver.current = IRB::Driver::File.new(path)
-end
-
-irb(self, TOPLEVEL_BINDING.dup)
\ No newline at end of file
+  context = IRB::Context.new(self, TOPLEVEL_BINDING.dup)
+  File.open(path, 'r') { |f| f.each_line { |line| context.input_line(line) } }
+end
\ No newline at end of file

Deleted: DietRB/trunk/lib/irb/driver/file.rb
===================================================================
--- DietRB/trunk/lib/irb/driver/file.rb	2010-10-08 11:08:17 UTC (rev 4741)
+++ DietRB/trunk/lib/irb/driver/file.rb	2010-10-08 11:08:26 UTC (rev 4742)
@@ -1,17 +0,0 @@
-require 'irb/driver/tty'
-
-module IRB
-  module Driver
-    class File
-      def initialize(path)
-        @path = path
-      end
-      
-      def run(context)
-        ::File.open(@path, 'r') do |file|
-          file.each_line { |line| context.input_line(line) }
-        end
-      end
-    end
-  end
-end
\ No newline at end of file
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macruby-changes/attachments/20101008/fd5bf635/attachment.html>


More information about the macruby-changes mailing list