[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