From: Eric Hodel Date: 2009-04-17T03:14:26+09:00 Subject: Re: RubyGems 1.3.2 and Rubyscript2Exe On Apr 16, 2009, at 07:24, David Mullet wrote: > Eric Hodel wrote: >> >> = Announce: RubyGems Release 1.3.2 >> >> * Removed Gem::Specification::list, too much process growth. Bug >> #23668 by Steve Purcell. >> > > It appears that this change may have broken the Rubyscript2Exe > 'compiler'. Compiling a one-liner (on Windows) after updating to 1.3.2 > produces the following output: > > ----- > C:\Temp>rubyscript2exe c:\temp\mully.rb > Tracing mully ... > hello world > Gathering files... > C:/Temp/tar2rubyscript.d.3348.1/rubyscript2exe/require2lib.rb:60:in > `gatherlibs': undefined method `list' for Gem::Specification:Class > (NoMethodError) > > Any possibility of getting Gem::Specification::list restored? Or > should > rubyscript2exe users stick with earlier rubygems versions for now? This method recorded every spec that was loaded even if no such gem was ever required. I suspect that what's really wanted is Gem.loaded_specs. How does rubyscript2exe work? I can't find gatherlibs, Gem::Specification, anything: $ gem unpack rubyscript2exe Unpacked gem: '/Users/drbrain/tmp/rubyscript2exe-0.5.3' $ ack gatherlibs rubyscript2exe-0.5.3/ $ ack Specification rubyscript2exe-0.5.3/ $ ack Gathering rubyscript2exe-0.5.3/ $ It seems to be constructed of magic feathers and fairy dust. Oh, it seems to be that giant comment of base64 encoded data at the bottom, that's just mean. Yeah, it should use Gem.loaded_specs: $ grep -nA1 \.list require2lib.rb 60: Gem::Specification.list.each do |gem| 61- if gem.loaded?