ruby-changes:14006
From: shyouhei <ko1@a...>
Date: Tue, 17 Nov 2009 15:51:41 +0900 (JST)
Subject: [ruby-changes:14006] Ruby:r25814 (ruby_1_8_7): merge revision(s) 24911:
shyouhei 2009-11-17 15:51:29 +0900 (Tue, 17 Nov 2009) New Revision: 25814 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=25814 Log: merge revision(s) 24911: * lib/irb/ext/multi-irb.rb: Fix arguments handling for shell commands in irb; a patch by Yusuke Endoh [ruby-dev:35075] Modified files: branches/ruby_1_8_7/ChangeLog branches/ruby_1_8_7/lib/irb/ext/multi-irb.rb branches/ruby_1_8_7/lib/irb/extend-command.rb branches/ruby_1_8_7/version.h Index: ruby_1_8_7/ChangeLog =================================================================== --- ruby_1_8_7/ChangeLog (revision 25813) +++ ruby_1_8_7/ChangeLog (revision 25814) @@ -1,3 +1,8 @@ +Tue Nov 17 15:49:00 2009 Marc-Andre Lafortune <ruby-core@m...> + + * lib/irb/ext/multi-irb.rb: Fix arguments handling for shell commands + in irb; a patch by Yusuke Endoh [ruby-dev:35075] + Tue Nov 17 15:32:27 2009 Nobuyoshi Nakada <nobu@r...> * io.c (rb_io_binmode): check if closed regardless platforms. Index: ruby_1_8_7/version.h =================================================================== --- ruby_1_8_7/version.h (revision 25813) +++ ruby_1_8_7/version.h (revision 25814) @@ -2,7 +2,7 @@ #define RUBY_RELEASE_DATE "2009-11-17" #define RUBY_VERSION_CODE 187 #define RUBY_RELEASE_CODE 20091117 -#define RUBY_PATCHLEVEL 207 +#define RUBY_PATCHLEVEL 208 #define RUBY_VERSION_MAJOR 1 #define RUBY_VERSION_MINOR 8 Index: ruby_1_8_7/lib/irb/ext/multi-irb.rb =================================================================== --- ruby_1_8_7/lib/irb/ext/multi-irb.rb (revision 25813) +++ ruby_1_8_7/lib/irb/ext/multi-irb.rb (revision 25814) @@ -70,7 +70,7 @@ end def search(key) - case key + job = case key when Integer @jobs[key] when Irb @@ -78,10 +78,10 @@ when Thread @jobs.assoc(key) else - assoc = @jobs.find{|k, v| v.context.main.equal?(key)} - IRB.fail NoSuchJob, key if assoc.nil? - assoc + @jobs.find{|k, v| v.context.main.equal?(key)} end + IRB.fail NoSuchJob, key if job.nil? + job end def delete(key) Index: ruby_1_8_7/lib/irb/extend-command.rb =================================================================== --- ruby_1_8_7/lib/irb/extend-command.rb (revision 25813) +++ ruby_1_8_7/lib/irb/extend-command.rb (revision 25814) @@ -126,9 +126,14 @@ eval %[ def #{cmd_name}(*opts, &b) require "#{load_file}" + arity = ExtendCommand::#{cmd_class}.instance_method(:execute).arity + args = (1..arity.abs).map {|i| "arg" + i.to_s } + args << "*opts" if arity < 0 + args << "&block" + args = args.join(", ") eval %[ - def #{cmd_name}(*opts, &b) - ExtendCommand::#{cmd_class}.execute(irb_context, *opts, &b) + def #{cmd_name}(\#{args}) + ExtendCommand::#{cmd_class}.execute(irb_context, \#{args}) end ] send :#{cmd_name}, *opts, &b -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/