summaryrefslogtreecommitdiff
path: root/lib/rake
diff options
context:
space:
mode:
authorKouhei Sutou <kou@clear-code.com>2016-12-02 23:22:59 +0900
committerKouhei Sutou <kou@clear-code.com>2016-12-02 23:22:59 +0900
commit092f3c58ade12c5cc0cd711e8d54ba7d88d33dc5 (patch)
tree2bfbad2c8ddcdad50618f610263c34969e5d66c0 /lib/rake
parent263ae176ee40799c807b816886a5699840472899 (diff)
downloadrake-compiler-092f3c58ade12c5cc0cd711e8d54ba7d88d33dc5.tar.gz
Fix a bug that Ruby versions are shared by all platforms
Diffstat (limited to 'lib/rake')
-rw-r--r--lib/rake/extensiontask.rb7
1 files changed, 4 insertions, 3 deletions
diff --git a/lib/rake/extensiontask.rb b/lib/rake/extensiontask.rb
index 9df8743..dd12593 100644
--- a/lib/rake/extensiontask.rb
+++ b/lib/rake/extensiontask.rb
@@ -25,7 +25,7 @@ module Rake
@cross_compiling = nil
@no_native = false
@config_includes = []
- @ruby_versions_per_platform = Hash.new([])
+ @ruby_versions_per_platform = {}
end
def cross_platform
@@ -255,7 +255,7 @@ Java extension should be preferred.
spec.platform = Gem::Platform.new(platf)
# set ruby version constraints
- cross_rubies = @ruby_versions_per_platform[platf]
+ cross_rubies = @ruby_versions_per_platform[platf] || []
spec.required_ruby_version = [
">= #{version_ary2str( cross_rubies.min[0,2] )}",
"< #{version_ary2str( cross_rubies.max[0,2].succ )}"
@@ -355,7 +355,8 @@ Java extension should be preferred.
end
# Update cross compiled platform/version combinations
- @ruby_versions_per_platform[for_platform] << version_str2ary(version)
+ ruby_versions = (@ruby_versions_per_platform[for_platform] ||= [])
+ ruby_versions << version_str2ary(version)
define_cross_platform_tasks_with_version(for_platform, version)