From: Intransition Date: 2013-01-09T10:55:01+09:00 Subject: Re: Re-implementing Autoload ------=_Part_875_8703234.1357696493242 Content-Type: multipart/alternative; boundary="----=_Part_876_19288981.1357696493248" ------=_Part_876_19288981.1357696493248 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit I was able to implement a hack: # if module has no name, try to parse out a namespace from #insepct. # (yes, this is a hack!) unless parent if name.nil? if /#/ =~ self.inspect parent = Object.const_get($1) rescue nil end end end That seems to do the trick for loading, but for some reason I get an even odder error: /home/trans/.gem/ruby/1.9.3/gems/bundler-1.2.3/lib/bundler/dsl.rb:128:in `initialize': wrong number of arguments(1 for 0) (ArgumentError) /home/trans/.gem/ruby/1.9.3/gems/bundler-1.2.3/lib/bundler/dsl.rb:128:in `new' /home/trans/.gem/ruby/1.9.3/gems/bundler-1.2.3/lib/bundler/dsl.rb:128:in `path' /home/trans/.gem/ruby/1.9.3/gems/bundler-1.2.3/lib/bundler/dsl.rb:244:in `block in _normalize_options' /home/trans/.gem/ruby/1.9.3/gems/bundler-1.2.3/lib/bundler/dsl.rb:237:in `each' /home/trans/.gem/ruby/1.9.3/gems/bundler-1.2.3/lib/bundler/dsl.rb:237:in `_normalize_options' /home/trans/.gem/ruby/1.9.3/gems/bundler-1.2.3/lib/bundler/dsl.rb:70:in `gem' /home/trans/.gem/ruby/1.9.3/gems/bundler-1.2.3/lib/bundler/dsl.rb:49:in `gemspec' /home/rubyworks/Projects/all/autoload/Gemfile:2:in `eval_gemfile' Note the Gemfile is jsut the typical `source :rubygems; gemspec`. ------=_Part_876_19288981.1357696493248 Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: quoted-printable
I was able to implement a hack:

# if module has no name, t= ry to parse out a namespace from #insepct.
    # (ye= s, this is a hack!)
    unless parent
   = ;   if name.nil?
&n= bsp;       if /#<Class:(.*?)>/ =3D~ .inspect
         = ; parent =3D .const_get($1) rescue nil
      =   end
 &nbs= p;    e= nd
    end

That seems to do the trick= for loading, but for some reason I get an even odder error:

=
  /home/trans/.gem/ruby/1.9.3/gems/bundler-1.2.3/lib/b= undler/dsl.rb:128:in `initialize': wrong number of arguments(1 for 0) (Argu= mentError)
       /home/trans/.gem/ruby/1.9.3= /gems/bundler-1.2.3/lib/bundler/dsl.rb:128:in `new'
   =    /home/trans/.gem/ruby/1.9.3/gems/bundler-1.2.3/lib/bundler/ds= l.rb:128:in `path'
       /home/trans/.gem/ru= by/1.9.3/gems/bundler-1.2.3/lib/bundler/dsl.rb:244:in `block in _normalize_= options'
       /home/trans/.gem/ruby/1.9.3/g= ems/bundler-1.2.3/lib/bundler/dsl.rb:237:in `each'
    =    /home/trans/.gem/ruby/1.9.3/gems/bundler-1.2.3/lib/bundler/dsl= .rb:237:in `_normalize_options'
       /home/= trans/.gem/ruby/1.9.3/gems/bundler-1.2.3/lib/bundler/dsl.rb:70:in `gem'
       /home/trans/.gem/ruby/1.9.3/gems/bundler-= 1.2.3/lib/bundler/dsl.rb:49:in `gemspec'
      &nb= sp;/home/rubyworks/Projects/all/autoload/Gemfile:2:in `eval_gemfile'
<= /div>

Note the Gemfile is jsut the typical `source :ruby= gems; gemspec`.

------=_Part_876_19288981.1357696493248-- ------=_Part_875_8703234.1357696493242--