Как мне перечислить все версии драгоценного камня, доступные на удаленном сайте? - PullRequest
127 голосов
/ 05 февраля 2012

Я пытаюсь найти все удаленно доступные версии указанного драгоценного камня.

Я пытался использовать:

gem list rhc --remote

Но это показывает:

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

Есть идеи?

Ответы [ 4 ]

190 голосов
/ 05 февраля 2012

Ну, это было проще, чем я думал (ну, не совсем, скажем так легко, как должно быть):

gem list rhc --remote --all

Что возвращает:

*** 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)
29 голосов
/ 28 сентября 2014

Согласно Руководству RubyGem вы должны использовать ключевое слово search. Таким образом, команда может быть:

gem search rhc --all

Если вы хотите точное имя, используйте:

gem search ^rhc$ --all

Если вы хотите включить предварительные версии, используйте --pre

gem search ^rhc$ --pre

А если вы используете zsh, добавьте кавычки:

gem search '^rhc$' --all

9 голосов
/ 02 ноября 2014

Чтобы расширить ответ @ eyalev, если вам нужен список из одной версии в строке, вот одна строка:

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

Чтобы сделать это немного более пригодным для повторного использования, вы можете написать несколько функций(простите за мои ограниченные навыки 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.
0 голосов
/ 05 февраля 2012

Попробуйте:

gem list [STRING] [options]

Например:

gem list rhc -r

Или попробуйте:

gem list -r rhc

( документация и приведенный пример противоречат друг другу - попробуйте оба варианта )


См. Документацию:

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

...