diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2010-12-07 13:31:11 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2010-12-07 13:31:11 +0000 |
commit | 11ef87461a79877796786af7f0c1eee75ab4f0bf (patch) | |
tree | 6b7056dd4f2e68f533085987599ccb15d1204bed /lib/optparse.rb | |
parent | ff1fb427348e3e19acc324e851a1ad0e49867d0a (diff) | |
download | ruby-11ef87461a79877796786af7f0c1eee75ab4f0bf.tar.gz |
* lib/optparse.rb (OptionParser::Officious): separate completion
options from --help. [ruby-dev:42690]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@30121 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/optparse.rb')
-rw-r--r-- | lib/optparse.rb | 30 |
1 files changed, 19 insertions, 11 deletions
diff --git a/lib/optparse.rb b/lib/optparse.rb index b2c9526598..ef7a0e60bc 100644 --- a/lib/optparse.rb +++ b/lib/optparse.rb @@ -777,22 +777,30 @@ XXX # --help # Shows option summary. # - # --help=complete=WORD + Officious['help'] = proc do |parser| + Switch::NoArgument.new do |arg| + puts parser.help + exit + end + end + + # --*-completion-for-bash=WORD # Shows candidates for command line completion. # - # --help=zshcomplete[=NAME:FILE] + Officious['*-completion-bash'] = proc do |parser| + Switch::RequiredArgument.new do |arg| + puts parser.candidate(arg) + exit + end + end + + # + # --*-completion-zsh[=NAME:FILE] # Creates zsh completion file. # - Officious['help'] = proc do |parser| + Officious['*-completion-zsh'] = proc do |parser| Switch::OptionalArgument.new do |arg| - case arg - when /\Acomplete=(.*)/ - puts parser.candidate($1) - when /\Azshcomplete(?:=(.+))?/ - parser.compsys(STDOUT, $1) - else - puts parser.help - end + parser.compsys(STDOUT, arg) exit end end |