def version_ints(version) version.split(".").map { |v| v.to_i } end def at_least_ruby_version(version) vints = version_ints(version) ruby_vints = version_ints(RUBY_VERSION) vints.zip(ruby_vints).all? { |v, rv| v.nil? || rv.nil? || v >= rv } end require 'rspec/given' describe "#version_ints" do Then { version_ints("1.2") == [1, 2] } Then { version_ints("2.1.20") == [2, 1, 20] } end describe "at_least_ruby_version" do Then { at_least_ruby_version("2") } Then { at_least_ruby_version("2.0") } Then { at_least_ruby_version("2.0.1") } Then { at_least_ruby_version("2.1") } Then { at_least_ruby_version("2.1.3.4.1") } Then { ! at_least_ruby_version("1.9") } Then { ! at_least_ruby_version("1.9.9.9.9") } end