Ruby on rails 在ruby脚本中查找gem的最新版本
我想找到Nokogiri的最新版本。为此,我使用: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的最新版本
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">