diff options
author | Aditya <bluenerd@protonmail.com> | 2023-02-27 20:04:56 +0530 |
---|---|---|
committer | Aditya <bluenerd@protonmail.com> | 2023-02-27 20:04:56 +0530 |
commit | edc449275b6c04445f58b108ca0937a87c1e8430 (patch) | |
tree | 9fd484d58145b616f29a78857cc0b1c8b1c18f05 /oh-my-zsh/plugins/rvm | |
parent | 6f5424ca96c4221ef433f545642669e9c104d0ed (diff) |
add zsh
Diffstat (limited to 'oh-my-zsh/plugins/rvm')
-rw-r--r-- | oh-my-zsh/plugins/rvm/README.md | 36 | ||||
-rw-r--r-- | oh-my-zsh/plugins/rvm/rvm.plugin.zsh | 55 |
2 files changed, 91 insertions, 0 deletions
diff --git a/oh-my-zsh/plugins/rvm/README.md b/oh-my-zsh/plugins/rvm/README.md new file mode 100644 index 0000000..576b037 --- /dev/null +++ b/oh-my-zsh/plugins/rvm/README.md @@ -0,0 +1,36 @@ +# Ruby Version Manager plugin + +This plugin adds some utility functions and completions for [Ruby Version Manager](https://rvm.io/). + +To use it, add `rvm` to the plugins array in your zshrc file: + +```zsh +plugins=(... rvm) +``` + +## Aliases + +| Alias | Command | +| ------------ | -------------------- | +| `rb18` | `rvm use ruby-1.8.7` | +| `rb19` | `rvm use ruby-1.9.3` | +| `rb20` | `rvm use ruby-2.0.0` | +| `rb21` | `rvm use ruby-2.1` | +| `rb22` | `rvm use ruby-2.2` | +| `rb23` | `rvm use ruby-2.3` | +| `rb24` | `rvm use ruby-2.4` | +| `rb25` | `rvm use ruby-2.5` | +| `rb26` | `rvm use ruby-2.6` | +| `rb27` | `rvm use ruby-2.7` | +| `rb30` | `rvm use ruby-3.0` | +| `rb31` | `rvm use ruby-3.1` | +| `rvm-update` | `rvm get head` | +| `gems` | `gem list` | +| `rvms` | `rvm gemset` | + +## Deprecated versions + +At the time of writing this (2021-12-28), Ruby versions until 2.5 are [EOL][1], +and will be removed in the future. + +[1]: https://endoflife.date/ruby diff --git a/oh-my-zsh/plugins/rvm/rvm.plugin.zsh b/oh-my-zsh/plugins/rvm/rvm.plugin.zsh new file mode 100644 index 0000000..2a091d0 --- /dev/null +++ b/oh-my-zsh/plugins/rvm/rvm.plugin.zsh @@ -0,0 +1,55 @@ +# Completion +fpath+=("${rvm_path}/scripts/zsh/Completion") + +typeset -g -A _comps +autoload -Uz _rvm +_comps[rvm]=_rvm + +# Aliases +alias rubies='rvm list rubies' +alias rvms='rvm gemset' +alias gemsets='rvms list' + + +# rb{version} utilities +# From `rvm list known` +typeset -A rubies +rubies=( + 18 'ruby-1.8.7' + 19 'ruby-1.9.3' + 20 'ruby-2.0.0' + 21 'ruby-2.1' + 22 'ruby-2.2' + 23 'ruby-2.3' + 24 'ruby-2.4' + 25 'ruby-2.5' + 26 'ruby-2.6' + 27 'ruby-2.7' + 30 'ruby-3.0' + 31 'ruby-3.1' +) + +for v in ${(k)rubies}; do + version="${rubies[$v]}" + functions[rb${v}]="rvm use ${version}\${1+"@\$1"}" + functions[_rb${v}]="compadd \$(ls -1 \"\${rvm_path}/gems\" | grep '^${version}@' | sed -e 's/^${version}@//' | awk '{print $1}')" + compdef _rb$v rb$v +done +unset rubies v version + + +function rvm-update { + rvm get head +} + +# TODO: Make this usable w/o rvm. +function gems { + local current_ruby=`rvm-prompt i v p` + local current_gemset=`rvm-prompt g` + + gem list $@ | sed -E \ + -e "s/\([0-9, \.]+( .+)?\)/$fg[blue]&$reset_color/g" \ + -e "s|$(echo $rvm_path)|$fg[magenta]\$rvm_path$reset_color|g" \ + -e "s/$current_ruby@global/$fg[yellow]&$reset_color/g" \ + -e "s/$current_ruby$current_gemset$/$fg[green]&$reset_color/g" +} |