зеркало из https://github.com/github/ruby.git
un.rb: help order
* lib/un.rb (UN#help): show help messages in the given order. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41801 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
Родитель
0fc3541664
Коммит
eb06e8d3ad
16
lib/un.rb
16
lib/un.rb
|
@ -351,15 +351,25 @@ module UN # :nodoc:
|
|||
module_function
|
||||
def help(argv, output: $stdout)
|
||||
all = argv.empty?
|
||||
cmd = nil
|
||||
if all
|
||||
store = proc {|msg| output << msg}
|
||||
else
|
||||
messages = {}
|
||||
store = proc {|msg| messages[cmd] = msg}
|
||||
end
|
||||
open(__FILE__) do |me|
|
||||
while me.gets("##\n")
|
||||
if help = me.gets("\n\n")
|
||||
if all or argv.delete help[/^#\s*ruby\s.*-e\s+(\w+)/, 1]
|
||||
output << help.gsub(/^# ?/, "")
|
||||
break if !all and argv.empty?
|
||||
if all or argv.include?(cmd = help[/^#\s*ruby\s.*-e\s+(\w+)/, 1])
|
||||
store[help.gsub(/^# ?/, "")]
|
||||
break unless all or argv.size > messages.size
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
if messages
|
||||
argv.each {|cmd| output << messages[cmd]}
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Загрузка…
Ссылка в новой задаче