Autoload ain't down with the program

I run into a bit of a snag. I've augmented the #require and #load
methods and noticed that #autoload doesn't pick up on it --though the
docs say #autoload uses #require. Apparently it uses it's own internal
code though, separate from any defined in the script. So there seems
to be no way to override #autoload to tie in these augmentations.

This also has an effect on Rubygems, btw. Notice:

   require 'rubygems'
   autoload(:RedCloth, 'redcloth')
   p RedCloth

produces

   no such file to load -- redcloth (LoadError)

even though the redcloth gem is in fact installed.

I suspect there's no way around this. If so, can we get that fixed in
the next release of Ruby?

Thanks,
-T.

(I know, this should probably go to ruby-core list. But I
(purposefully) do not subscribe to that list any more.)

it works for me:

cfp:~ > ruby -e' autoload "Dike", "dike.rb"; p Dike '
Dike

cfp:~ > ruby -e' require "rubygems"; autoload "Dike", "dike.rb"; p Dike '
Dike

are you sure that autoload line works in isolation?

a @ http://codeforpeople.com/

···

On Oct 28, 2007, at 9:25 PM, Trans wrote:

I run into a bit of a snag. I've augmented the #require and #load
methods and noticed that #autoload doesn't pick up on it --though the
docs say #autoload uses #require. Apparently it uses it's own internal
code though, separate from any defined in the script. So there seems
to be no way to override #autoload to tie in these augmentations.

This also has an effect on Rubygems, btw. Notice:

   require 'rubygems'
   autoload(:RedCloth, 'redcloth')
   p RedCloth

produces

   no such file to load -- redcloth (LoadError)

even though the redcloth gem is in fact installed.

I suspect there's no way around this. If so, can we get that fixed in
the next release of Ruby?

Thanks,
-T.

(I know, this should probably go to ruby-core list. But I
(purposefully) do not subscribe to that list any more.)

--
it is not enough to be compassionate. you must act.
h.h. the 14th dalai lama

it works for me:

cfp:~ > ruby -e' autoload "Dike", "dike.rb"; p Dike '
Dike

cfp:~ > ruby -e' require "rubygems"; autoload "Dike", "dike.rb"; p Dike '
Dike

are you sure that autoload line works in isolation?

a @ http://codeforpeople.com/

···

On Oct 28, 2007, at 9:25 PM, Trans wrote:

I run into a bit of a snag. I've augmented the #require and #load
methods and noticed that #autoload doesn't pick up on it --though the
docs say #autoload uses #require. Apparently it uses it's own internal
code though, separate from any defined in the script. So there seems
to be no way to override #autoload to tie in these augmentations.

This also has an effect on Rubygems, btw. Notice:

   require 'rubygems'
   autoload(:RedCloth, 'redcloth')
   p RedCloth

produces

   no such file to load -- redcloth (LoadError)

even though the redcloth gem is in fact installed.

I suspect there's no way around this. If so, can we get that fixed in
the next release of Ruby?

Thanks,
-T.

(I know, this should probably go to ruby-core list. But I
(purposefully) do not subscribe to that list any more.)

--
it is not enough to be compassionate. you must act.
h.h. the 14th dalai lama

Isolation from? Where do you have dike.rb installed? Is it a gem?

  $ ruby -e'require "rubygems"; require "redcloth.rb"; p RedCloth'
  RedCloth
  $ ruby -e'require "rubygems"; autoload "RedCloth", "redcloth.rb"; p
RedCloth'
  -e:1: no such file to load -- redcloth.rb (LoadError)

  $ ruby --version
  ruby 1.8.6 (2007-06-07 patchlevel 36) [i486-linux]

  $ gem --version
  0.9.4

T.

···

On Oct 29, 11:25 am, "ara.t.howard" <ara.t.how...@gmail.com> wrote:

On Oct 28, 2007, at 9:25 PM, Trans wrote:

> I run into a bit of a snag. I've augmented the #require and #load
> methods and noticed that #autoload doesn't pick up on it --though the
> docs say #autoload uses #require. Apparently it uses it's own internal
> code though, separate from any defined in the script. So there seems
> to be no way to override #autoload to tie in these augmentations.

> This also has an effect on Rubygems, btw. Notice:

> require 'rubygems'
> autoload(:RedCloth, 'redcloth')
> p RedCloth

> produces

> no such file to load -- redcloth (LoadError)

> even though the redcloth gem is in fact installed.

> I suspect there's no way around this. If so, can we get that fixed in
> the next release of Ruby?

> Thanks,
> -T.

> (I know, this should probably go to ruby-core list. But I
> (purposefully) do not subscribe to that list any more.)

it works for me:

cfp:~ > ruby -e' autoload "Dike", "dike.rb"; p Dike '
Dike

cfp:~ > ruby -e' require "rubygems"; autoload "Dike", "dike.rb"; p
Dike '
Dike

are you sure that autoload line works in isolation?