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?
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)
gem list ^rhc$
a flagi „--remote” i „--all” można skrócić i połączyć wgem list ^rhc$ -ra
gem list -ra --pre passenger
(-ra == --remote --all)zsh
mają 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.zsh
+1 za Twoją pomoc!--prerelease
aby zobaczyć wersje betaZgodnie z Przewodnikiem po RubyGem powinieneś użyć
search
sł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
zsh
dodawania cudzysłowów:gem search '^rhc$' --all
źródło
--prerelease
aby zobaczyć wersje betaAby 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.
źródło
Próbować:
Na przykład:
Lub spróbuj:
( dokumentacja i przedstawiony przykład wydają się być ze sobą sprzeczne - wypróbuj oba )
Zobacz dokumentację:
http://docs.rubygems.org/read/chapter/10#page34
źródło