Mod_ruby is making me CRAZY

I'm just crazy, i can't understand anything.
I have two modules: Iptstats and Mods

Code for ipstats is large, but works fine ( a normal module )
Code for Mods is (it don't do nothing right now) :

module Mods

    public
       def Mods.get()
         a = Array.new
    end

end

and my sample menu.rb cgi is:

require "mods"

Mods.get()

Well, mod_ruby give me the following FUNNY error:

[Tue Feb 22 23:53:23 2005] [error] mod_ruby: error in ruby
[Tue Feb 22 23:53:23 2005] [error] mod_ruby: /var/www/localhost/htdocs/menu.rb:3: uninitialized constant #<Module:0x405ceaac>::Mods (NameError)

What the hell is happening here? I don't understand why my other module works and this one not.
sorry i'm a bit frustrated.

Don't really have time to investigate, it's been a while since I toyed
with mod_ruby.

sorry i'm a bit frustrated.

after you take a deep breath, posting to the mod_ruby ML might be helpful. :wink:

http://modruby.net/en/index.rbx/mod_ruby/ml.html

Cameron

Javier Valencia schrieb:

I'm just crazy, i can't understand anything.
I have two modules: Iptstats and Mods

Code for ipstats is large, but works fine ( a normal module )
Code for Mods is (it don't do nothing right now) :

module Mods

   public
     def Mods.get()
        a = Array.new
   end

end

and my sample menu.rb cgi is:

require "mods"

Mods.get()

Well, mod_ruby give me the following FUNNY error:

[Tue Feb 22 23:53:23 2005] [error] mod_ruby: error in ruby
[Tue Feb 22 23:53:23 2005] [error] mod_ruby: /var/www/localhost/htdocs/menu.rb:3: uninitialized constant #<Module:0x405ceaac>::Mods (NameError)

What the hell is happening here? I don't understand why my other module works and this one not.
sorry i'm a bit frustrated.

I've never used mod_ruby myself, but it seems that menu.rb is run in an anonymous module, just like

   load "menu.rb", true

So it tries to find the constant "Mods" in the namespace of this anonymous module. If this is the case, try using

   ::Mods.get()

in menu.rb in order to get at the global namespace.

HTH

Regards,
Pit