gems:unpack dosn't deploy hpricot

I found some suggestion online to do a manual unpack through the gem command in the vendor/gem directory instead "gem unpack hpricot".

However when i start the server it errors out because it doesn't seem to be able to handle the gem naming conventions on win32

c:/prog/rubyl/lib/ruby/site_ruby/1.8/rubygems/version.rb:53:in `initialize': Malformed version number string mswin32 (ArgumentError)         from c:/prog/rubyl/lib/ruby/gems/1.8/gems/rails-2.2.2/lib/rails/vendor_gem_source_index.rb:105:in `new'         from c:/prog/rubyl/lib/ruby/gems/1.8/gems/rails-2.2.2/lib/rails/vendor_gem_source_index.rb:105:in `version_for_dir'         from c:/prog/rubyl/lib/ruby/gems/1.8/gems/rails-2.2.2/lib/rails/vendor_gem_source_index.rb:47:in `refresh!' ....

When i look at the code it seems to be parsing for the version number of the gem "hpricot-0.6.164-x86-mswin32"

Is this an known issue ?

I found a workaround sort of. I changed the regexp in the vendor_gem_source_index.rb

from     def version_for_dir(d)       matches = /-([^-]+)$/.match(d)       matches.to_a.each { | x | puts "Match {#{x}}" }       Gem::Version.new(matches[1]) if matches     end

to     def version_for_dir(d)       matches = /-(\d+\.\d+\.\d+)/.match(d)       matches.to_a.each { | x | puts "Match {#{x}}" }       Gem::Version.new(matches[1]) if matches     end

Seems to load the gems fine now. However having very limited skill in crafting regexp I don't know if this will work in all cases so if anyone have a better one i'm all ears :slight_smile:

I have the exact same problem. It does not only appear with hpricot, but with all gems containing "mswin32" in the version string. is there an "official" fix for this?

Cheers,

Matthias