Jak wyświetlić listę wszystkich wersji klejnotów dostępnych w zdalnej witrynie?

135

Próbuję znaleźć wszystkie dostępne zdalnie wersje określonego klejnotu.

Próbowałem użyć:

gem list rhc --remote

Ale to pokazuje:

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

Jakieś pomysły?

opensas
źródło

Odpowiedzi:

205

Cóż, było łatwiej niż myślałem (no cóż, nie do końca, powiedzmy tak łatwe, jak powinno):

gem list rhc --remote --all

Który zwraca:

*** 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)
opensas
źródło
52
Pamiętaj również, że „rhc” to wyrażenie regularne, więc jeśli chcesz tylko spojrzeć na to, możesz wyszukać, gem list ^rhc$a flagi „--remote” i „--all” można skrócić i połączyć wgem list ^rhc$ -ra
Joshua Cheek
5
pamiętaj, że możesz przekazać inne opcje, tj. aby uzyskać najnowsze przedpremierowe wersje pasażera phusion, który chcesz: gem list -ra --pre passenger(-ra == --remote --all)
Mirek Rusin
5
@JoshuaCheek zauważ, że niektóre powłoki, takie jak, zshmają bardziej zaawansowaną analizę i mogą przechwytywać podane w ten sposób wyrażenie regularne. Aby być bezpieczniejszym (jeśli umieszczamy coś takiego w skrypcie lub README), należy umieścić to w ciągu, abyśmy byli pewni, że przekażemy to 1-1, tj. gem list '^rhc$'Itd.
mgol
1
@m_gol czytał komentarze, ponieważ mój zsh+1 za Twoją pomoc!
Jesse Whitham
użyj, --prereleaseaby zobaczyć wersje beta
akostadinov
33

Zgodnie z Przewodnikiem po RubyGem powinieneś użyć searchsłowa kluczowego. Więc polecenie może wyglądać następująco:

gem search rhc --all

Jeśli chcesz podać dokładną nazwę, użyj:

gem search ^rhc$ --all

Jeśli chcesz dołączyć wersje wstępne, użyj --pre

gem search ^rhc$ --pre

A jeśli używasz zshdodawania cudzysłowów:

gem search '^rhc$' --all

eyalev
źródło
4
użyj, --prereleaseaby zobaczyć wersje beta
akostadinov
9

Aby rozszerzyć odpowiedź @ eyalev, jeśli chcesz listę jednej wersji w każdym wierszu, oto jedna linijka:

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

Aby uczynić to nieco bardziej możliwym do ponownego użycia, możesz napisać kilka funkcji (przepraszam za moje ograniczone umiejętności 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
źródło
-2

Próbować:

gem list [STRING] [options]

Na przykład:

gem list rhc -r

Lub spróbuj:

gem list -r rhc

( dokumentacja i przedstawiony przykład wydają się być ze sobą sprzeczne - wypróbuj oba )


Zobacz dokumentację:

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

Tylko tu boliwijczyk
źródło
1
To nie zawiera wszystkich wersji
Adam Tegen