首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何确定Ruby的当前稳定版本?

如何确定Ruby的当前稳定版本?
EN

Stack Overflow用户
提问于 2014-12-05 20:31:32
回答 4查看 537关注 0票数 2

我想编写一个Ruby方法,它可以做两件事:

  1. 确定Ruby的当前稳定版本是什么。我的第一个想法是从https://www.ruby-lang.org/en/downloads/获得响应,并使用RegEx隔离短语The current stable version is [x]。有没有我不知道的API?
  2. 获取下载该版本的.tar.gz的URL。为此,我也在考虑同样的问题,从站点URL的输出中获取它。

我正在寻找最好的方法去做它,或方向,如果有什么地方,我可以用来确定我想要的结果。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-12-06 01:30:43

获取下载页面的Ruby代码,然后解析当前版本和链接URL:

代码语言:javascript
复制
html = Net::HTTP.get(URI("https://www.ruby-lang.org/en/downloads/"))
vers = html[/http.*ruby-(.*).tar.gz/,1]
link = html[/http.*ruby-.*.tar.gz/]

GitHub代码:ruby-stable-version.rb

外壳代码:红宝石稳定版

票数 2
EN

Stack Overflow用户

发布于 2014-12-05 22:20:10

如果您正在使用rbenv,您可以使用ruby构建获得一个ruby版本的列表,然后针对它进行grep。

代码语言:javascript
复制
ruby-build --definitions | tail -r | grep -x -G -m 1 '[0-9]\.[0-9].[0-9]\-*[p0-9*]*'

然后,您可以在代码中使用它,如下所示:

代码语言:javascript
复制
version = `ruby-build --definitions | tail -r | grep -x -G -m 1 '[0-9]\.[0-9].[0-9]\-*[p0-9*]*'`.strip

然后可以使用此值获取下载URL。

代码语言:javascript
复制
url = "http://cache.ruby-lang.org/pub/ruby/#{version[0..2]}/ruby-#{version}.tar.gz"

然后下载该文件:

代码语言:javascript
复制
require 'open-uri'
open("ruby-#{version}.tar.gz", 'wb') do |file|
  file << open(url).read
end

了解更多关于里本夫ruby-在这里构建的信息。

票数 1
EN

Stack Overflow用户

发布于 2014-12-05 23:29:38

另一种可能是使用Ruby源代码存储库。检查每个分支中的version.hRUBY_PATCHLEVEL > -1筛选器(-1用于-dev版本),按RUBY_VERSION排序并选择最新的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27324204

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档