Ruby/Rails supported versions matrix
rails | 1.8.7 | 1.9.2 | 1.9.3 | 2.0.0 | 2.1 | 2.1.1 | 2.2 | jruby | jruby-19mode | rbx | rbx-19mode | rbx-2 | ruby-head |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
v4.2.0 | o | o | o | o | o | o | |||||||
v4.1.9 | o | o | o | o | o | o | o | ||||||
v4.1.8 | o | o | o | o | o | o | |||||||
v4.1.7.1 | o | o | o | o | o | o | |||||||
v4.1.7 | o | o | o | o | o | o | |||||||
v4.1.6 | o | o | o | o | o | o | |||||||
v4.1.5 | o | o | o | o | o | o | |||||||
v4.1.4 | o | o | o | o | o | o | |||||||
v4.1.3 | o | o | o | o | o | o | |||||||
v4.1.2 | o | o | o | o | o | o | |||||||
v4.1.1 | o | o | o | o | o | ||||||||
v4.1.0 | o | o | o | o | o | ||||||||
v4.0.13 | o | o | o | o | o | o | o | ||||||
v4.0.12 | o | o | o | o | o | o | |||||||
v4.0.11.1 | o | o | o | o | o | o | |||||||
v4.0.11 | o | o | o | o | o | o | |||||||
v4.0.10 | o | o | o | o | o | o | |||||||
v4.0.9 | o | o | o | o | o | o | |||||||
v4.0.8 | o | o | o | o | o | o | |||||||
v4.0.7 | o | o | o | o | o | o | |||||||
v4.0.6 | o | o | o | o | o | o | |||||||
v4.0.5 | o | o | o | o | o | ||||||||
v4.0.4 | o | o | o | o | o | ||||||||
v4.0.3 | o | o | o | o | |||||||||
v4.0.2 | o | o | o | o | |||||||||
v4.0.1 | o | o | o | o | |||||||||
v4.0.0 | o | o | |||||||||||
v3.2.21 | o | o | o | o | |||||||||
v3.2.20 | o | o | o | o | |||||||||
v3.2.19 | o | o | o | o | |||||||||
v3.2.18 | o | o | o | o | |||||||||
v3.2.17 | o | o | o | o | |||||||||
v3.2.16 | o | o | o | o | |||||||||
v3.2.15 | o | o | o | o | |||||||||
v3.2.14 | o | o | o | o | |||||||||
v3.2.13 | o | o | o | o | |||||||||
v3.2.12 | o | o | o | ||||||||||
v3.2.11 | o | o | o | ||||||||||
v3.2.10 | o | o | o | ||||||||||
v3.2.9 | o | o | o | ||||||||||
v3.2.8 | o | o | o | ||||||||||
v3.2.7 | o | o | o | ||||||||||
v3.2.6 | o | o | o | ||||||||||
v3.2.5 | o | o | o | ||||||||||
v3.2.4 | o | o | o | ||||||||||
v3.2.3 | o | o | o | ||||||||||
v3.2.2 | o | o | o | ||||||||||
v3.2.1 | o | o | o | ||||||||||
v3.2.0 | o | o | o | ||||||||||
v3.1.12 | o | o | o | ||||||||||
v3.1.11 | o | o | o | ||||||||||
v3.1.10 | o | o | o | ||||||||||
v3.1.9 | o | o | o | ||||||||||
v3.1.8 | o | o | o | ||||||||||
v3.1.7 | o | o | o | ||||||||||
v3.1.6 | o | o | o | ||||||||||
v3.1.5 | o | o | o | ||||||||||
v3.1.4 | o | o | o | ||||||||||
v3.1.3 | o | o | o | ||||||||||
v3.1.2 | o | o | o | ||||||||||
v3.1.1 | o | o | o | ||||||||||
v3.1.0 | o | o | o | ||||||||||
v3.0.20 | o | o | o | ||||||||||
v3.0.19 | o | o | o | ||||||||||
v3.0.18 | o | o | o | ||||||||||
v3.0.17 | o | o | o | ||||||||||
v3.0.16 | o | o | o | ||||||||||
v3.0.15 | o | o | o | ||||||||||
v3.0.14 | o | o | o | ||||||||||
v3.0.13 | o | o | o | ||||||||||
v3.0.12 | o | o | o | ||||||||||
v3.0.11 | o | o | o | ||||||||||
v3.0.10 | o | o |
# gem install octokit
require 'octokit'
require 'yaml'
TARGET = 'rails/rails'
def main
md_table 'rails', tags.lazy.map(&method(:pair)).take_while{|k,v| v}.to_h
end
def md_table(name, hash)
columns = hash.values.flatten.uniq.sort
lines = ["#{name}|#{columns.join('|')}"]
lines << (["---"] * (columns.length + 1)).join('|')
lines + hash.map{|k,v| "#{k}|" + columns.map{|c| v.include?(c) ? 'o' : ''}.join('|')}
end
def tags
Octokit.auto_paginate = true
Octokit.tags(TARGET).reject{|tag| tag['name'].include?('rc') || tag['name'].include?('beta') }
end
def pair(tag)
[tag['name'], rvm_list_on(tag['commit']['sha'])]
end
def rvm_list_on(sha)
travis = yaml("https://raw.githubusercontent.com/#{TARGET}/#{sha}/.travis.yml")
return nil if travis.nil? || travis['rvm'].nil?
travis['rvm'].map(&:to_s)
end
def yaml(url)
YAML.load(Net::HTTP.get(URI.parse(url)))
end
puts main