[macruby-changes] [4743] DietRB/trunk/bin/dietrb

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


Revision: 4743
          http://trac.macosforge.org/projects/ruby/changeset/4743
Author:   eloy.de.enige at gmail.com
Date:     2010-10-08 04:08:33 -0700 (Fri, 08 Oct 2010)
Log Message:
-----------
Move body of bin/dietrb into a namespace so not to pollute the toplevel namespace with lvars.

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

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

Modified: DietRB/trunk/bin/dietrb
===================================================================
--- DietRB/trunk/bin/dietrb	2010-10-08 11:08:26 UTC (rev 4742)
+++ DietRB/trunk/bin/dietrb	2010-10-08 11:08:33 UTC (rev 4743)
@@ -2,48 +2,55 @@
 
 require 'irb'
 
-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")                                 { |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
+IRB_CONTEXT_TOPLEVEL_ARGS = [self, TOPLEVEL_BINDING.dup]
+
+module IRB
+  # Just a namespace so not to pollute the toplevel namespace with lvars.
+  module Bin
+    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")                                 { |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
+        end
+      end.parse!(ARGV)
     end
-  end.parse!(ARGV)
-end
-
-unless ignore_irbrc
-  irbrc = File.expand_path("~/.irbrc")
-  load(irbrc) if File.exist?(irbrc)
-end
-
-IRB.formatter.filter_from_backtrace << /^#{__FILE__}/
-
-if ARGV.empty?
-  driver ||= begin
-    require 'readline'
-    'readline'
-  rescue LoadError
-    'tty'
+    
+    unless ignore_irbrc
+      irbrc = File.expand_path("~/.irbrc")
+      load(irbrc) if File.exist?(irbrc)
+    end
+    
+    IRB.formatter.filter_from_backtrace << /^#{__FILE__}/
+    
+    if ARGV.empty?
+      driver ||= begin
+        require 'readline'
+        'readline'
+      rescue LoadError
+        'tty'
+      end
+      require "irb/driver/#{driver}"
+      irb(*IRB_CONTEXT_TOPLEVEL_ARGS)
+    else
+      path = ARGV.shift
+      context = IRB::Context.new(*IRB_CONTEXT_TOPLEVEL_ARGS)
+      File.open(path, 'r') { |f| f.each_line { |line| context.input_line(line) } }
+    end
   end
-  require "irb/driver/#{driver}"
-  irb(self, TOPLEVEL_BINDING.dup)
-else
-  path = ARGV.shift
-  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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macruby-changes/attachments/20101008/8df7dfb9/attachment-0001.html>


More information about the macruby-changes mailing list