class Module

def module_parent

Module.new.module_parent # => Object
M.module_parent # => Object

The parent of top-level and anonymous modules is Object.

X.module_parent # => M
M::N.module_parent # => M

X = M::N
end
end
module N
module M

Returns the module which contains this one according to its name.
def module_parent
  module_parent_name ? ActiveSupport::Inflector.constantize(module_parent_name) : Object
end