summaryrefslogtreecommitdiff
path: root/lib/optparse.rb
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2010-12-07 13:31:11 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2010-12-07 13:31:11 +0000
commit11ef87461a79877796786af7f0c1eee75ab4f0bf (patch)
tree6b7056dd4f2e68f533085987599ccb15d1204bed /lib/optparse.rb
parentff1fb427348e3e19acc324e851a1ad0e49867d0a (diff)
* 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.rb30
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