From cf9e74243a7300f8af4ddf67699d7a49c6cd8823 Mon Sep 17 00:00:00 2001 From: nobu Date: Tue, 20 Sep 2005 22:45:06 +0000 Subject: * lib/optparse.rb (default_argv, Arguable#options): defaults strings to be parsed to Arguable instance. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@9258 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 5 +++++ lib/optparse.rb | 12 +++++++++--- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 1cfedbca0..0a40c67d5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Wed Sep 21 07:43:58 2005 Nobuyoshi Nakada + + * lib/optparse.rb (default_argv, Arguable#options): defaults strings + to be parsed to Arguable instance. + Tue Sep 20 22:25:43 2005 Nobuyoshi Nakada * ext/io/wait/lib/nonblock.rb: disable on platforms non-blocking flag diff --git a/lib/optparse.rb b/lib/optparse.rb index 1c3fd19be..21d07c466 100644 --- a/lib/optparse.rb +++ b/lib/optparse.rb @@ -840,6 +840,7 @@ class OptionParser @banner = banner @summary_width = width @summary_indent = indent + @default_argv = ARGV add_officious yield self if block_given? end @@ -915,9 +916,13 @@ class OptionParser --- OptionParser#program_name=(name) Program name to be emitted in error message and default banner, defaulted to (({$0})). +--- OptionParser#default_argv +--- OptionParser#default_argv=(argv) + Strings to be parsed in default. =end #'#"#`# attr_writer :banner, :program_name attr_accessor :summary_width, :summary_indent + attr_accessor :default_argv def banner unless @banner @@ -1298,7 +1303,7 @@ class OptionParser order!(argv, &block) end - def order!(argv = ARGV, &nonopt) + def order!(argv = default_argv, &nonopt) opt, arg, sw, val, rest = nil nonopt ||= proc {|arg| throw :terminate, arg} argv.unshift(arg) if arg = catch(:terminate) { @@ -1385,7 +1390,7 @@ class OptionParser permute!(argv) end - def permute!(argv = ARGV) + def permute!(argv = default_argv) nonopts = [] arg = nil order!(argv) {|arg| nonopts << arg} @@ -1411,7 +1416,7 @@ class OptionParser parse!(argv) end - def parse!(argv = ARGV) + def parse!(argv = default_argv) if ENV.include?('POSIXLY_CORRECT') order!(argv) else @@ -1803,6 +1808,7 @@ Extends command line arguments array to parse itself. =end #'#"#`# def options @optparse ||= OptionParser.new + @optparse.default_argv = self block_given? or return @optparse begin yield @optparse -- cgit