son - version ruby command
¿Cómo hago una lista de todas las versiones de una gema disponible en un sitio remoto? (4)
Bueno, fue más fácil de lo que pensé (bueno, no realmente, digamos tan fácil como debería ser):
gem list rhc --remote --all
Que devuelve:
*** REMOTE GEMS ***
rhc (0.84.15, 0.84.13, 0.83.9, 0.82.18, 0.81.14, 0.80.5, 0.79.5, 0.77.8, 0.75.9, 0.74.6, 0.74.5, 0.73.14, 0.72.29, 0.71.2, 0.69.6, 0.69.3, 0.68.5)
rhcp (0.2.18, 0.2.17, 0.2.16, 0.2.15, 0.2.14, 0.1.9, 0.1.8, 0.1.7, 0.1.6, 0.1.5, 0.1.4, 0.1.3, 0.1.2)
rhcp_shell (0.2.12, 0.2.11, 0.0.9, 0.0.7, 0.0.6, 0.0.5, 0.0.4, 0.0.3, 0.0.2, 0.0.1)
Estoy tratando de descubrir todas las versiones disponibles remotamente de una gema especificada.
Intenté usar:
gem list rhc --remote
Pero muestra:
*** REMOTE GEMS ***
rhc (0.84.15)
rhcp (0.2.18)
rhcp_shell (0.2.12)
¿Algunas ideas?
De acuerdo con la Guía de RubyGem, debes usar la palabra clave de search
. Entonces el comando podría ser:
gem search rhc --all
Si quiere el nombre exacto, use:
gem search ^rhc$ --all
Si desea incluir versiones preliminares use --pre
gem search ^rhc$ --pre
Y si usa zsh
agregue cotizaciones:
gem search ''^rhc$'' --all
Para ampliar la respuesta de @eyalev, si desea una lista de una versión por línea, aquí hay una sola línea:
gem search ''^rspec$'' --all /
| grep -o ''/((.*)/)$'' /
| tr -d ''() '' /
| tr '','' "/n" /
| sort
0.0.10
0.1.0
0.1.1
# etc.
Para que esto sea un poco más reutilizable, podrías escribir algunas funciones (perdón por mis habilidades de bash limitadas):
function extract_gem_versions() {
echo "$1" /
| grep -o ''/((.*)/)$'' /
| tr -d ''() '' /
| tr '','' "/n";
}
function gem_versions() {
local gem_name="$1";
local pattern="^${gem_name}$";
local vers_str="$(gem search ${pattern} --all)";
extract_gem_versions "$vers_str";
}
gem_versions rspec | sort
0.0.10
0.1.0
0.1.1
# etc.
Tratar:
gem list [STRING] [options]
Por ejemplo:
gem list rhc -r
O tratar:
gem list -r rhc
( La documentación y el ejemplo proporcionado parecen contradecirse entre sí, pruebe ambos )
Ver la documentación: