Report abuse

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"