summaryrefslogtreecommitdiff
path: root/home/.oh-my-zsh/plugins/gem/gem.plugin.zsh
diff options
context:
space:
mode:
Diffstat (limited to 'home/.oh-my-zsh/plugins/gem/gem.plugin.zsh')
-rw-r--r--home/.oh-my-zsh/plugins/gem/gem.plugin.zsh32
1 files changed, 32 insertions, 0 deletions
diff --git a/home/.oh-my-zsh/plugins/gem/gem.plugin.zsh b/home/.oh-my-zsh/plugins/gem/gem.plugin.zsh
new file mode 100644
index 0000000..41c434a
--- /dev/null
+++ b/home/.oh-my-zsh/plugins/gem/gem.plugin.zsh
@@ -0,0 +1,32 @@
+alias gemb="gem build *.gemspec"
+alias gemp="gem push *.gem"
+
+# gemy GEM 0.0.0 = gem yank GEM -v 0.0.0
+function gemy {
+ gem yank $1 -v $2
+}
+
+# If the completion file doesn't exist yet, we need to autoload it and
+# bind it to `gem`. Otherwise, compinit will have already done that.
+if [[ ! -f "$ZSH_CACHE_DIR/completions/_gem" ]]; then
+ typeset -g -A _comps
+ autoload -Uz _gem
+ _comps[gem]=_gem
+fi
+
+# zsh 5.5 already provides completion for `_gem`. With this we ensure that
+# our provided completion (which is not optimal but is enough in most cases)
+# is used for older versions
+autoload -Uz is-at-least
+if is-at-least 5.5; then
+ return 0
+fi
+
+{
+ # Standardized $0 handling
+ # https://zdharma-continuum.github.io/Zsh-100-Commits-Club/Zsh-Plugin-Standard.html
+ 0="${${ZERO:-${0:#$ZSH_ARGZERO}}:-${(%):-%N}}"
+ 0="${${(M)0:#/*}:-$PWD/$0}"
+
+ command cp -f "${0:h}/completions/_gem" "$ZSH_CACHE_DIR/completions/_gem"
+} &|