_gem: update for browse, edit and clone commands
This commit is contained in:
parent
5a4ab02e40
commit
7e02122470
36
src/_gem
36
src/_gem
|
@ -1,4 +1,4 @@
|
||||||
#compdef gem gem1.9
|
#compdef gem gem1.9 macgem
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
# Description
|
# Description
|
||||||
# -----------
|
# -----------
|
||||||
|
@ -28,10 +28,29 @@ _gem() {
|
||||||
$nul_arg
|
$nul_arg
|
||||||
)
|
)
|
||||||
|
|
||||||
|
extra_gems=$(_call_program commands ${words[1]} list --no-version gem-browse gemedit gem-edit)
|
||||||
|
|
||||||
|
local gem_edit_command="edit[Edit installed gem in editor]"
|
||||||
|
local gem_clone_command="clone[Clone a gem's source from GitHub]"
|
||||||
|
local gem_browse_command="browse[browse the gem's homepage]"
|
||||||
|
|
||||||
|
if [ ${#extra_gems} -eq 0 ] ; then
|
||||||
|
extra_gem_commands_desc=""
|
||||||
|
extra_gem_commands=""
|
||||||
|
elif [[ "${extra_gems[(i)gem-browse]}" -le ${#extra_gems} ]] ; then
|
||||||
|
extra_gem_commands_desc=(${gem_edit_command} ${gem_browse_command} ${gem_clone_command})
|
||||||
|
extra_gem_commands=(clone browse edit)
|
||||||
|
|
||||||
|
elif [[ "${extra_gems[(r)gem-edit]}" -le ${#extra_gems} ]] \
|
||||||
|
|| [[ "${extra_gems[(r)gemedit]}" -le ${#extra_gems} ]] ; then
|
||||||
|
extra_gem_commands_desc=${gem_edit_command}
|
||||||
|
extra_gem_commands=edit
|
||||||
|
fi
|
||||||
|
|
||||||
if (( CURRENT > 2 )); then
|
if (( CURRENT > 2 )); then
|
||||||
(( CURRENT-- ))
|
(( CURRENT-- ))
|
||||||
shift words
|
shift words
|
||||||
_call_function 1 _gem_${words[1]}
|
_call_function - _gem_${words[1]}
|
||||||
else
|
else
|
||||||
_values "gem command" \
|
_values "gem command" \
|
||||||
"build[Build a gem from a gemspec]" \
|
"build[Build a gem from a gemspec]" \
|
||||||
|
@ -40,6 +59,7 @@ _gem() {
|
||||||
"cleanup[Clean up old versions of installed gems in the local repository]" \
|
"cleanup[Clean up old versions of installed gems in the local repository]" \
|
||||||
"contents[Display the contents of the installed gems]" \
|
"contents[Display the contents of the installed gems]" \
|
||||||
"dependency[Show the dependencies of an installed gem]" \
|
"dependency[Show the dependencies of an installed gem]" \
|
||||||
|
${extra_gem_commands_desc} \
|
||||||
"environment[Display information about the RubyGems environment]" \
|
"environment[Display information about the RubyGems environment]" \
|
||||||
"fetch[Download a gem and place it in the current directory]" \
|
"fetch[Download a gem and place it in the current directory]" \
|
||||||
"generate_index[Generates the index files for a gem server directory]" \
|
"generate_index[Generates the index files for a gem server directory]" \
|
||||||
|
@ -84,6 +104,7 @@ __gem_help_arguments() {
|
||||||
"cleanup"
|
"cleanup"
|
||||||
"contents"
|
"contents"
|
||||||
"dependency"
|
"dependency"
|
||||||
|
$(extra_gem_commands)
|
||||||
"environment"
|
"environment"
|
||||||
"fetch"
|
"fetch"
|
||||||
"generate_index"
|
"generate_index"
|
||||||
|
@ -179,6 +200,16 @@ _gem_dependency() {
|
||||||
"(-p --pipe)"{-p,--pipe}"[Pipe Format (name --version ver)]" \
|
"(-p --pipe)"{-p,--pipe}"[Pipe Format (name --version ver)]" \
|
||||||
$gem_general_flags && ret=0
|
$gem_general_flags && ret=0
|
||||||
}
|
}
|
||||||
|
_gem_edit() {
|
||||||
|
_arguments \
|
||||||
|
"*:gemname:__all_gems" \
|
||||||
|
"(-e --editor)"{-e,--editor}"[GEMEDITOR, BUNDLER_EDITOR, VISUAL and EDITOR environment variables are used to by default]" \
|
||||||
|
$gem_general_flags && ret=0
|
||||||
|
}
|
||||||
|
|
||||||
|
_gem_browse() {
|
||||||
|
_gem_edit
|
||||||
|
}
|
||||||
|
|
||||||
_gem_environment() {
|
_gem_environment() {
|
||||||
typeset -g _environment_arg=
|
typeset -g _environment_arg=
|
||||||
|
@ -469,3 +500,4 @@ _gem_which() {
|
||||||
# sh-basic-offset: 2
|
# sh-basic-offset: 2
|
||||||
# End:
|
# End:
|
||||||
# vim: ft=zsh sw=2 ts=2 et
|
# vim: ft=zsh sw=2 ts=2 et
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue