module MyNamespace

def self.included(klass)
klass.send :include, InstanceMethods
klass.send :extend, ClassMethods
end

module InstanceMethods

def foo
'bar from instance'
end

end

module ClassMethods

def foo
'bar from class'
end

end

end


class MyClass
include MyNamespace
end


MyClass.foo # => "bar from class"
MyClass.new.foo # => "bar from instance"