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}}" }[1]) if matches     end

to     def version_for_dir(d)       matches = /-(\d+\.\d+\.\d+)/.match(d)       matches.to_a.each { | x | puts "Match {#{x}}" }[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?