8861d5c3a7274148cd48b49225cd5f4a0ed363a1
- Author
- Marc Cornellà <hello@mcornella.com>
- Committer
- Marc Cornellà <hello@mcornella.com>
- Date
Message
Diff
This diff is truncated to protect this page.
1diff --git a/plugins/rvm/README.md b/plugins/rvm/README.md
2index 4ddc7cc850576a89903bd3980edccec07ae1552b..258c894202a84ecc83dfd3635599f50db38d4871 100644
3--- a/plugins/rvm/README.md
4+++ b/plugins/rvm/README.md
5@@ -10,16 +10,26 @@ plugins=(... rvm)
6
7 ## Aliases
8
9-| Alias | Command |
10-|----------------|----------------------|
11-| `rb18` | `rvm use ruby-1.8.7` |
12-| `rb19` | `rvm use ruby-1.9.3` |
13-| `rb20` | `rvm use ruby-2.0.0` |
14-| `rb21` | `rvm use ruby-2.1.2` |
15-| `rb25` | `rvm use ruby-2.5.9` |
16-| `rb26` | `rvm use ruby-2.6.7` |
17-| `rb27` | `rvm use ruby-2.7.3` |
18-| `rb30` | `rvm use ruby-3.0.1` |
19-| `rvm-update` | `rvm get head` |
20-| `gems` | `gem list` |
21-| `rvms` | `rvm gemset` |
22+| Alias | Command |
23+| ------------ | -------------------- |
24+| `rb18` | `rvm use ruby-1.8.7` |
25+| `rb19` | `rvm use ruby-1.9.3` |
26+| `rb20` | `rvm use ruby-2.0.0` |
27+| `rb21` | `rvm use ruby-2.1` |
28+| `rb22` | `rvm use ruby-2.2` |
29+| `rb23` | `rvm use ruby-2.3` |
30+| `rb24` | `rvm use ruby-2.4` |
31+| `rb25` | `rvm use ruby-2.5` |
32+| `rb26` | `rvm use ruby-2.6` |
33+| `rb27` | `rvm use ruby-2.7` |
34+| `rb30` | `rvm use ruby-3.0` |
35+| `rvm-update` | `rvm get head` |
36+| `gems` | `gem list` |
37+| `rvms` | `rvm gemset` |
38+
39+## Deprecated versions
40+
41+At the time of writing this (2021-12-28), Ruby versions until 2.5 are [EOL][1],
42+and will be removed in the future.
43+
44+[1]: https://endoflife.date/ruby
45diff --git a/plugins/rvm/rvm.plugin.zsh b/plugins/rvm/rvm.plugin.zsh
46index 64a99278ce3d9d4e255516e9fa053a1d32641b34..4ba8855634bd8763a3ed93e6be3b67270d44a35f 100644
47--- a/plugins/rvm/rvm.plugin.zsh
48+++ b/plugins/rvm/rvm.plugin.zsh
49@@ -1,123 +1,54 @@
50-fpath=($rvm_path/scripts/zsh/Completion $fpath)
51+# Completion
52+fpath+=("${rvm_path}/scripts/zsh/Completion")
53
54+declare -A _comps
55+autoload -Uz _rvm
56+_comps[rvm]=_rvm
57+
58+# Aliases
59 alias rubies='rvm list rubies'
60 alias rvms='rvm gemset'
61 alias gemsets='rvms list'
62
63-local ruby18='ruby-1.8.7'
64-local ruby19='ruby-1.9.3'
65-local ruby20='ruby-2.0.0'
66-local ruby21='ruby-2.1.2'
67-local ruby25='ruby-2.5.9'
68-local ruby26='ruby-2.6.7'
69-local ruby27='ruby-2.7.3'
70-local ruby30='ruby-3.0.1'
71-
72-function rb18 {
73- if [ -z "$1" ]; then
74- rvm use "$ruby18"
75- else
76- rvm use "$ruby18@$1"
77- fi
78-}
79
80-_rb18() {compadd `ls -1 $rvm_path/gems | grep "^$ruby18@" | sed -e "s/^$ruby18@//" | awk '{print $1}'`}
81-compdef _rb18 rb18
82+# rb{version} utilities
83+# From `rvm list known`
84+typeset -A rubies
85+rubies=(
86+ 18 'ruby-1.8.7'
87+ 19 'ruby-1.9.3'
88+ 20 'ruby-2.0.0'
89+ 21 'ruby-2.1'
90+ 22 'ruby-2.2'
91+ 23 'ruby-2.3'
92+ 24 'ruby-2.4'
93+ 25 'ruby-2.5'
94+ 26 'ruby-2.6'
95+ 27 'ruby-2.7'
96+ 30 'ruby-3.0'
97+)
98+
99+for v in ${(k)rubies}; do
100+ version="${rubies[$v]}"
101+ functions[rb${v}]="rvm use ${version}\${1+"@\$1"}"
102+ functions[_rb${v}]="compadd \$(ls -1 \"\${rvm_path}/gems\" | grep '^${version}@' | sed -e 's/^${version}@//' | awk '{print $1}')"
103+ compdef _rb$v rb$v
104+done
105+unset rubies v version
106
107-function rb19 {
108- if [ -z "$1" ]; then
109- rvm use "$ruby19"
110- else
111- rvm use "$ruby19@$1"
112- fi
113-}
114-
115-_rb19() {compadd `ls -1 $rvm_path/gems | grep "^$ruby19@" | sed -e "s/^$ruby19@//" | awk '{print $1}'`}
116-compdef _rb19 rb19
117-
118-function rb20 {
119- if [ -z "$1" ]; then
120- rvm use "$ruby20"
121- else
122- rvm use "$ruby20@$1"
123- fi
124-}
125-
126-_rb20() {compadd `ls -1 $rvm_path/gems | grep "^$ruby20@" | sed -e "s/^$ruby20@//" | awk '{print $1}'`}
127-compdef _rb20 rb20
128-
129-function rb21 {
130- if [ -z "$1" ]; then
131- rvm use "$ruby21"
132- else
133- rvm use "$ruby21@$1"
134- fi
135-}
136-
137-_rb21() {compadd `ls -1 $rvm_path/gems | grep "^$ruby21@" | sed -e "s/^$ruby21@//" | awk '{print $1}'`}
138-compdef _rb21 rb21
139-
140-function rb25 {
141- if [ -z "$1" ]; then
142- rvm use "$ruby25"
143- else
144- rvm use "$ruby25@$1"
145- fi
146-}
147-
148-_rb25() {compadd `ls -1 $rvm_path/gems | grep "^$ruby25@" | sed -e "s/^$ruby25@//" | awk '{print $1}'`}