Bagaimana cara mendaftar semua versi permata yang tersedia di situs jarak jauh?

133

Saya mencoba mencari tahu semua versi permata tertentu yang tersedia.

Saya mencoba menggunakan:

gem list rhc --remote

Tapi itu menunjukkan:

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

Ada ide?

opensas
sumber

Jawaban:

204

Ya, itu lebih mudah dari yang saya kira (well, tidak juga, katakan semudah yang seharusnya):

gem list rhc --remote --all

Yang mengembalikan:

*** 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
sumber
52
Perhatikan juga bahwa "rhc" adalah regex, jadi jika Anda hanya ingin melihatnya, Anda dapat mencari gem list ^rhc$dan bendera "--remote" dan "--all" dapat disingkat dan digabungkan untukgem list ^rhc$ -ra
Joshua Cheek
5
perhatikan bahwa Anda dapat melewati opsi lain, yaitu. untuk mendapatkan pra-rilis terbaru dari penumpang phusion yang Anda inginkan: gem list -ra --pre passenger(-ra == --remote --all)
Mirek Rusin
5
@JoshuaCheek perhatikan bahwa beberapa kerang seperti zshmemiliki penguraian lebih maju dan bisa menangkap regex yang diberikan dengan cara ini. Agar lebih aman (jika menempatkan sth seperti itu dalam skrip atau README) adalah dengan meletakkannya di string sehingga kami yakin kami lulus 1-1, yaitu gem list '^rhc$'dll.
mgol
1
@ m_gol kebetulan membaca komentar seperti yang saya zshlakukan ini +1 untuk bantuan Anda!
Jesse Whitham
gunakan --prereleaseuntuk melihat versi beta
akostadinov
32

Menurut Panduan RubyGem Anda harus menggunakan searchkata kunci. Jadi perintahnya bisa:

gem search rhc --all

Jika Anda ingin menggunakan nama yang tepat:

gem search ^rhc$ --all

Jika Anda ingin menyertakan versi prerelease gunakan --pre

gem search ^rhc$ --pre

Dan jika Anda menggunakan zshadd quotes:

gem search '^rhc$' --all

eyalev
sumber
4
gunakan --prereleaseuntuk melihat versi beta
akostadinov
9

Untuk memperluas jawaban @ eyalev, jika Anda ingin daftar satu versi per baris, berikut ini adalah satu-liner:

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

Untuk membuatnya sedikit lebih dapat digunakan kembali, Anda dapat menulis beberapa fungsi (maafkan kemampuan bash saya yang terbatas):

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
sumber
-2

Mencoba:

gem list [STRING] [options]

Sebagai contoh:

gem list rhc -r

Atau coba:

gem list -r rhc

( dokumentasi, dan contoh yang diberikan tampaknya saling bertentangan - cobalah keduanya )


Lihat dokumentasi:

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

Hanya orang Bolivia disini
sumber
1
Ini tidak mencantumkan semua versi
Adam Tegen