ruby-changes:13159
From: marcandre <ko1@a...>
Date: Mon, 14 Sep 2009 04:59:22 +0900 (JST)
Subject: [ruby-changes:13159] Ruby:r24911 (ruby_1_8): * lib/irb/ext/multi-irb.rb: Fix arguments handling for shell commands in irb; a patch by Yusuke Endoh
marcandre 2009-09-14 04:59:08 +0900 (Mon, 14 Sep 2009) New Revision: 24911 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=24911 Log: * lib/irb/ext/multi-irb.rb: Fix arguments handling for shell commands in irb; a patch by Yusuke Endoh [ruby-dev:35075] * lib/irb/extend-command.rb: ditto Modified files: branches/ruby_1_8/ChangeLog branches/ruby_1_8/lib/irb/ext/multi-irb.rb branches/ruby_1_8/lib/irb/extend-command.rb Index: ruby_1_8/ChangeLog =================================================================== --- ruby_1_8/ChangeLog (revision 24910) +++ ruby_1_8/ChangeLog (revision 24911) @@ -1,3 +1,8 @@ +Mon Sep 14 04:57:27 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] + Sun Sep 13 22:13:35 2009 Tanaka Akira <akr@f...> * lib/tempfile.rb (Tempfile::Remover): new class to replace Index: ruby_1_8/lib/irb/ext/multi-irb.rb =================================================================== --- ruby_1_8/lib/irb/ext/multi-irb.rb (revision 24910) +++ ruby_1_8/lib/irb/ext/multi-irb.rb (revision 24911) @@ -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/lib/irb/extend-command.rb =================================================================== --- ruby_1_8/lib/irb/extend-command.rb (revision 24910) +++ ruby_1_8/lib/irb/extend-command.rb (revision 24911) @@ -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/