Cum pot să listez toate versiunile unei pietre prețioase disponibile la un site la distanță? (Programare, Ruby, Gem, Versiunea)

opensas a intrebat.

Încerc să aflu toate versiunile disponibile de la distanță ale unei anumite pietre prețioase.

Am încercat să folosesc:

gem list rhc --remote

Dar se afișează:

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

Aveți vreo idee?

4 răspunsuri
opensas

Ei bine, a fost mai ușor decât am crezut (bine, nu chiar, să spunem că la fel de ușor cum ar trebui să fie):

gem list rhc --remote --all

Care returnează:

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

Comentarii

    53

  • De asemenea, rețineți că „rhc” este un regex, deci dacă doriți să vă uitați doar la asta, ați putea căuta pentru gem list ^rhc$ iar stegulețele „–remote” și „–all” pot fi prescurtate și combinate pentru gem list ^rhc$ -ra –  > Por Joshua Cheek.
  • rețineți că puteți trece și alte opțiuni, de exemplu, pentru a obține cele mai recente pre-lansări ale pasagerului phusion ați dori să: gem list -ra --pre passenger (-ra == –remote –all).  > Por Mirek Rusin.
  • @JoshuaCheek rețineți că unele shell-uri precum zsh au un parsing mai avansat și ar putea prinde regex-ul dat în acest mod. Pentru a fi mai siguri (dacă punem așa ceva într-un script sau README) este să îl punem într-un șir de caractere, astfel încât să fim siguri că îl trecem 1-1, de ex. gem list '^rhc$' etc. –  > Por mgol.
  • @m_gol s-a întâmplat să citească în josul comentariilor în timp ce îmi zsh a făcut acest lucru +1 pentru ajutorul tău! –  > Por Jesse Whitham.
  • use --prerelease pentru a vedea versiunile beta –  > Por akostadinov.

În conformitate cu Ghidul RubyGem ar trebui să utilizați search cuvântul cheie. Deci, comanda ar putea fi:

gem search rhc --all

Dacă doriți numele exact, folosiți:

gem search ^rhc$ --all

Dacă doriți să includeți versiunile prerelease utilizați --pre

gem search ^rhc$ --pre

Și dacă folosiți zsh adăugați ghilimele:

gem search '^rhc$' --all

Comentarii

  • folosiți --prerelease pentru a vedea versiunile beta –  > Por akostadinov.
Jared Beck

Pentru a extinde răspunsul lui @eyalev, dacă doriți o listă cu o versiune pe linie, iată un one-liner:

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

Pentru a face acest lucru un pic mai reutilizabil, ați putea scrie câteva funcții (scuzați-mi abilitățile limitate de bash):

function extract_gem_versions() {   
  echo "$1" 
    | grep -o '((.*))$' 
    | tr -d '() ' 
    | tr ',' "
"; 
}

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.

Numai bolivian aici

Încercați:

gem list [STRING] [options]

De exemplu:

gem list rhc -r

Sau încercați:

gem list -r rhc

(documentația și exemplul furnizat par să se contrazică – încercați-le pe amândouă.)


Consultați documentația:

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

Comentarii

  • Aceasta nu enumeră toate versiunile –  > Por Adam Tegen.