diff options
author | Kouhei Sutou <kou@clear-code.com> | 2016-12-02 23:34:23 +0900 |
---|---|---|
committer | Kouhei Sutou <kou@clear-code.com> | 2016-12-02 23:34:23 +0900 |
commit | 5854dfa95f68eaaf27edba7552d40d6825d1e50b (patch) | |
tree | 2acb60b333ba9273f52edb9083a5f18a42d65762 /lib | |
parent | 092f3c58ade12c5cc0cd711e8d54ba7d88d33dc5 (diff) | |
download | rake-compiler-5854dfa95f68eaaf27edba7552d40d6825d1e50b.tar.gz |
Simplify
Diffstat (limited to 'lib')
-rw-r--r-- | lib/rake/extensiontask.rb | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/lib/rake/extensiontask.rb b/lib/rake/extensiontask.rb index dd12593..38466e1 100644 --- a/lib/rake/extensiontask.rb +++ b/lib/rake/extensiontask.rb @@ -255,10 +255,13 @@ Java extension should be preferred. spec.platform = Gem::Platform.new(platf) # set ruby version constraints - cross_rubies = @ruby_versions_per_platform[platf] || [] + ruby_versions = @ruby_versions_per_platform[platf] || [] + sorted_ruby_versions = ruby_versions.sort_by do |ruby_version| + ruby_version.split(".").collect(&:to_i) + end spec.required_ruby_version = [ - ">= #{version_ary2str( cross_rubies.min[0,2] )}", - "< #{version_ary2str( cross_rubies.max[0,2].succ )}" + ">= #{ruby_api_version(sorted_ruby_versions.first)}", + "< #{ruby_api_version(sorted_ruby_versions.last).succ}" ] # clear the extensions defined in the specs @@ -356,7 +359,7 @@ Java extension should be preferred. # Update cross compiled platform/version combinations ruby_versions = (@ruby_versions_per_platform[for_platform] ||= []) - ruby_versions << version_str2ary(version) + ruby_versions << version define_cross_platform_tasks_with_version(for_platform, version) @@ -509,12 +512,8 @@ Java extension should be preferred. [*@cross_platform].map { |p| "native:#{p}" } end - def version_str2ary(version_string) - version_string[/\A[^-]+/].split(".").map(&:to_i).pack("C*") - end - - def version_ary2str(version_ary) - version_ary.unpack("C*").join(".") + def ruby_api_version(ruby_version) + ruby_version.split(".")[0, 2].join(".") end def fake_rb(platform, version) |