我想编写一个Ruby方法,它可以做两件事:
The current stable version is [x]。有没有我不知道的API?我正在寻找最好的方法去做它,或方向,如果有什么地方,我可以用来确定我想要的结果。
发布于 2014-12-06 01:30:43
获取下载页面的Ruby代码,然后解析当前版本和链接URL:
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
外壳代码:红宝石稳定版
发布于 2014-12-05 22:20:10
如果您正在使用rbenv,您可以使用ruby构建获得一个ruby版本的列表,然后针对它进行grep。
ruby-build --definitions | tail -r | grep -x -G -m 1 '[0-9]\.[0-9].[0-9]\-*[p0-9*]*'然后,您可以在代码中使用它,如下所示:
version = `ruby-build --definitions | tail -r | grep -x -G -m 1 '[0-9]\.[0-9].[0-9]\-*[p0-9*]*'`.strip然后可以使用此值获取下载URL。
url = "http://cache.ruby-lang.org/pub/ruby/#{version[0..2]}/ruby-#{version}.tar.gz"然后下载该文件:
require 'open-uri'
open("ruby-#{version}.tar.gz", 'wb') do |file|
file << open(url).read
end了解更多关于里本夫和ruby-在这里构建的信息。
发布于 2014-12-05 23:29:38
另一种可能是使用Ruby源代码存储库。检查每个分支中的version.h,RUBY_PATCHLEVEL > -1筛选器(-1用于-dev版本),按RUBY_VERSION排序并选择最新的。
https://stackoverflow.com/questions/27324204
复制相似问题