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?

ouvre
la source

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)
ouvre
la source
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

eyalev
la source
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.
Jared Beck
la source
-2

Essayer:

gem list [STRING] [options]

Par exemple:

gem list rhc -r

Ou essayez:

gem list -r rhc

( la documentation et l'exemple fourni semblent se contredire - essayez les deux )


Consultez la documentation:

http://docs.rubygems.org/read/chapter/10#page34

Seulement bolivien ici
la source
1
Cela ne liste pas toutes les versions
Adam Tegen