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"
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
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?