Ruby on rails 在ruby脚本中查找gem的最新版本

Ruby on rails 在ruby脚本中查找gem的最新版本,ruby-on-rails,ruby,gem,Ruby On Rails,Ruby,Gem,我想找到Nokogiri的最新版本。为此,我使用: gem list nokogiri --remote 然而,这将返回一个包含“nokogiri”的宝石的长列表: 有没有命令可以直接从中获取Nokogiri宝石?即: nokogiri (1.6.3.1 ruby java x64-mingw32 x86-mingw32, 1.6.1 x86-mswin32-60, 1.4.4.1 x86-mswin32) 另外,如何让Ruby脚本运行此命令?我正在尝试编写一个脚本,它将找到gem的最新版本

我想找到Nokogiri的最新版本。为此,我使用:

gem list nokogiri --remote
然而,这将返回一个包含“nokogiri”的宝石的长列表:

有没有命令可以直接从中获取Nokogiri宝石?即:

nokogiri (1.6.3.1 ruby java x64-mingw32 x86-mingw32, 1.6.1 x86-mswin32-60, 1.4.4.1 x86-mswin32)
另外,如何让Ruby脚本运行此命令?我正在尝试编写一个脚本,它将找到gem的最新版本,然后执行一些操作。我的脚本将负责运行此命令

$ gem list "^nokogiri$" --remote

*** REMOTE GEMS ***

nokogiri (1.6.3.1 ruby java x64-mingw32 x86-mingw32, 1.6.1 x86-mswin32-60, 1.4.4.1 x86-mswin32)
列表
搜索
的帮助分别说明它们用于本地和远程gem;最好使用
搜索
。它具有相同的正则表达式功能

两份帮助都没有提到regex功能;我是从“nokogiri”的结果中直觉得出的

我错过了“Ruby脚本”部分,在这种情况下,您最好只使用现有的Gem功能,其他任何功能都没有任何意义。扫描正在使用的工具库是一个好习惯,因为它们显然已经内置了功能

列表
搜索
的帮助分别说明它们用于本地和远程gem;最好使用
搜索
。它具有相同的正则表达式功能

两份帮助都没有提到regex功能;我是从“nokogiri”的结果中直觉得出的


我错过了“Ruby脚本”部分,在这种情况下,您最好只使用现有的Gem功能,其他任何功能都没有任何意义。扫描正在使用的工具库是一个好习惯,因为它们显然已经内置了功能。

如果您在Ruby脚本中需要它,您可能需要查看
gem
命令用于执行远程搜索的类,例如:

specs = Gem::SpecFetcher.fetcher.detect(:latest) do |name_tuple|
  name_tuple.name == 'nokogiri' && name_tuple.platform == 'ruby'
end
specs
是一个由2个元素组成的数组(在本例中只有on元素),第一个是
Gem::NameTuple
对象,第二个是
Gem::Source
对象(我们在这里不感兴趣)

found=specs.first.first
# => #
找到了.name
#=>“nokogiri”
找到了.version
# => #

如果您需要在Ruby脚本中使用它,您可能需要查看
gem
命令用于执行远程搜索的类,例如:

specs = Gem::SpecFetcher.fetcher.detect(:latest) do |name_tuple|
  name_tuple.name == 'nokogiri' && name_tuple.platform == 'ruby'
end
specs
是一个由2个元素组成的数组(在本例中只有on元素),第一个是
Gem::NameTuple
对象,第二个是
Gem::Source
对象(我们在这里不感兴趣)

found=specs.first.first
# => #
找到了.name
#=>“nokogiri”
找到了.version
# => #

对字符串使用正则表达式捕捉得很好。我总是通过管道进入grep进行进一步过滤。使用regex对字符串进行处理很好。我总是通过管道进入grep以进一步过滤。
found = specs.first.first 
# => #<Gem::NameTuple nokogiri, 1.6.3.1, ruby>
found.name 
# => "nokogiri"
found.version 
# => #<Gem::Version "1.6.3.1">