Skip to content

Preview Ruby 4.1 is a preview. It can change before the final release. Switch to Ruby 4.0 →

class method

Module.nesting

() -> ::Array[::Module]
Module.nesting → array

Returns nested module as an array of Module objects:

Example
module M0
  def self.speak = Module.nesting
  module M1
    def self.speak = Module.nesting
    module M2
      def self.speak = Module.nesting
    end
  end
end
M0.speak             # => [M0]
M0.speak.first.class # => Module
M0::M1.speak         # => [M0::M1, M0]
M0::M1::M2.speak     # => [M0::M1::M2, M0::M1, M0]
See also .constants .new .used_modules also in 4.0 · 3.4 · 3.3 · 3.2 · 3.1 · 3.0