Gems:unpack dosn't deploy hpricot


#1

Hi

I’m trying to unpack hpricot to my vendor/gems direcotry.

i have config.gem “hpricot” in my environment.rb file

but when i run “rake gems:unpack” it dosn’t do anything. Is there any
special mesures thats needs to be done.

I running Vista with rails 2.2.2 and have hpricot gem (0.6.164).

I’ve successfully unpacked several other gems with this method.

Any suggestions would be very welcome

Thanks

/Mikael


#2

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:innew’
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:inrefresh!’

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 ?


#3

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:


#4

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

On 1 Jan., 22:03, Mikael R. removed_email_address@domain.invalid