Hello!
It seems there is a problem with nested modules and requiring them in
shoes.
Let's assume you have two files:
mod.rb
app.rb
--- mod.rb: ---
module Inner
class Boo
end
end
--- end---
--- app.rb ---
require "mod"
module Outer
module Foo
def self.getBoo
Inner::Boo.new
end
end
end
Shoes.app do
para "test: #{Outer::Foo.getBoo.inspect}"
end
--- end ---
So far so good. But if you change the mod.rb (first file) to something
like this:
--- mod.rb: ---
module Outer
module Inner
class Boo
end
end
end
--- end---
Shoes will show you the "uninitialized constant..." in the console. It
seems this problem occurs only if we use the same outer module name
(here "Outer"). If you change the mod.rb's Outer module to, for
example Outer2, the code will run normally (you will have to change
the getBoo to have: "Outer2::Inner::Boo.new").
Looks like a bug isn't it? A bit annoying one because I tend to
organize namespaces in modules (a Java habit, but I think a good
one ;). Therefore I often have bigger code parts splited into
different files and enclosed within a common (module) name.
best regards
sw
PS.
I had a problem with "resolv-replace.rb". I resolve it after the why's
hint: http://www.mail-archive.com/[email protected]/msg02786.html
.
I'm on MacOSX and now it works ok, however I'm wondering will it run
under Windows? Linux?
I use open-uri to get to some data through http. I tried to use Shoes
download method and got error 421(temporary unavailable) from the
server. Does Shoes use a kind of proxy while performing the "download"
method?