From: Nobuyoshi Nakada Date: 2010-06-29T20:52:40+09:00 Subject: [ruby-core:30956] [Bug #3462] gem activation fails for native gems Issue #3462 has been updated by Nobuyoshi Nakada. gem_prelude.rb:push_all_highest_version_gems_on_load_path expects gem directory names to be "#{GEMNAME}-#{VERSION}", but the native gem directory name is suffixed by the platform name. The following patch may help or may not. diff --git a/gem_prelude.rb b/gem_prelude.rb index 71f30bd..3be64aa 100644 --- a/gem_prelude.rb +++ b/gem_prelude.rb @@ -229,8 +229,12 @@ if defined?(Gem) then Dir.entries(gems_directory).each do |gem_directory_name| next if gem_directory_name == "." || gem_directory_name == ".." - next unless gem_name = gem_directory_name[/(.*)-(.*)/, 1] + next unless gem_name = gem_directory_name[/(.*)-(\d+(?:\.\d+)*)(?:-(.*))?/, 1] new_version = integers_for($2) + if platform = $3 + require 'rubygems/platform' + Gem::Platform.match(platform) or next + end current_version = GemVersions[gem_name] if !current_version or (current_version <=> new_version) < 0 then ---------------------------------------- http://redmine.ruby-lang.org/issues/show/3462 ---------------------------------------- http://redmine.ruby-lang.org