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?

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)

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


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.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.