web-dev-qa-db-fra.com

Comment répertorier toutes les versions d'une gemme disponible sur un site distant?

J'essaie de trouver toutes les versions disponibles à distance d'un joyau spécifié.

J'ai essayé d'utiliser:

gem list rhc --remote

Mais cela montre:

*** REMOTE GEMS ***
rhc (0.84.15)
rhcp (0.2.18)
rhcp_Shell (0.2.12)

Des idées?

128
opensas

Eh bien, c'était plus facile que je ne le pensais (enfin, pas vraiment, disons aussi facile qu'il devrait l'être):

gem list rhc --remote --all

Qui retourne:

*** 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)
193
opensas

Selon Guide de RubyGem , vous devez utiliser le mot clé search. Donc, la commande pourrait être:

gem search rhc --all

Si vous voulez le nom exact, utilisez:

gem search ^rhc$ --all

Si vous souhaitez inclure les versions préliminaires, utilisez --pre

gem search ^rhc$ --pre

Et si vous utilisez zsh ajoutez des guillemets:

gem search '^rhc$' --all

29
Eyal Levin

Pour étendre la réponse de @ eyalev, si vous voulez une liste d'une version par ligne, voici une ligne:

gem search '^rspec$' --all \
  | grep -o '\((.*)\)$' \
  | tr -d '() ' \
  | tr ',' "\n" \ 
  | sort
0.0.10
0.1.0
0.1.1
# etc.

Pour rendre ceci un peu plus réutilisable, vous pouvez écrire quelques fonctions (excusez mes compétences limitées en bash):

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.
9
Jared Beck