Using 'include' but not poluting my namespace

I noticed that if you ‘include’ a module within a method, it will polute
the
namesapce that defines that method. I found a simple solution is to
declare a
throw-away class, and execute my code in that. Is there a more better
way to
achieve this?

Pollutes current namespace

def init()
include Inertia

do_stuff_with_inertia()
end

Doesn’t polute namespace, but ugly

class DontPolute
include Inertia

do_stuff_with_inertia()
end

Mike

On Sat, 11 Mar 2006, Mike A. wrote:

end

both pollute your namespace equally. the first pollutes class Object,
the
second class DontPolute. remember that you’re code in ruby, if not
inside a
class, is inside the Object class. this allows you to pretend your
coding
something like perl. i always write main programs like so

class Main

end

Main::new if $0 == FILE

to avoid any such issues.

if you are looking for a workaround you can also use

Module::new{ include Inertia … }

regards.

-a

On Friday 10 March 2006 13:53, Mike A. wrote:

end

Doesn’t polute namespace, but ugly

class DontPolute
include Inertia

do_stuff_with_inertia()
end

Mike

Instead of include, you may want:
require ‘intertia’

This will load up inertia.rb, which i’m assuming contains either a class
or a
module name Intertia. Then you can use it via Interia.new() or
Intertia::do_stuff_with_intertia().

Correct me if I’m misunderstanding what you’re trying to do here.