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


133

J'essaie de découvrir toutes les versions disponibles à distance d'un bijou 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?

Réponses:


205

Eh bien, c'était plus facile que je ne le pensais (enfin, pas vraiment, disons aussi facile que cela devrait ê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)

52
Notez également que «rhc» est une expression régulière, donc si vous ne voulez regarder que celle-là, vous pouvez rechercher gem list ^rhc$et les indicateurs «--remote» et «--all» peuvent être abrégés et combinés pourgem list ^rhc$ -ra
Joshua Cheek

5
notez que vous pouvez passer d'autres options, à savoir. pour obtenir les dernières pré-versions du passager de phusion que vous voudriez: gem list -ra --pre passenger(-ra == --remote --all)
Mirek Rusin

5
@JoshuaCheek note que certains shells comme zshont une analyse plus avancée et pourraient intercepter l'expression rationnelle donnée de cette manière. Pour être plus sûr (si mettre qc comme ça dans un script ou README) est de le mettre dans une chaîne de sorte que nous soyons sûrs de le passer 1-1, c'est à dire gem list '^rhc$'etc.
mgol

1
@m_gol était en train de lire les commentaires, car je l' zshai fait +1 pour votre aide!
Jesse Whitham

utiliser --prereleasepour voir les versions bêta
akostadinov

32

Selon le guide de RubyGem, vous devez utiliser le searchmot - clé. La commande pourrait donc être:

gem search rhc --all

Si vous voulez le nom exact, utilisez:

gem search ^rhc$ --all

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

gem search ^rhc$ --pre

Et si vous utilisez zshajouter des guillemets:

gem search '^rhc$' --all


4
utiliser --prereleasepour voir les versions bêta
akostadinov

9

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

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

Pour rendre cela un peu plus réutilisable, vous pouvez écrire quelques fonctions (pardonnez 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.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.