Project

General

Profile

Actions

Bug #8841

closed

Module#included_modules and prepended modules

Added by marcandre (Marc-Andre Lafortune) over 11 years ago. Updated almost 5 years ago.

Status:
Closed
Target version:
-
ruby -v:
r42735
Backport:
[ruby-core:56898]
Tags:

Description

The documentation for Module#included_modules currently states "Returns the list of modules included in +mod+."

This was never perfectly accurate, as the list also contains modules included in +mod+'s ancestors.

It now also includes prepended modules.

This is consistent with include? that returns true for prepended modules, but not quite consistent with included that does not get called for prepended modules.

Matz, could you confirm that current behavior is what you want?

If so, we should fix the documentation of include? and included_modules.


Related issues 2 (0 open2 closed)

Related to Backport200 - Backport #8025: Module#included_modules includes classesClosednagachika (Tomoyuki Chikanaga)03/06/2013Actions
Related to Ruby master - Feature #8026: Need Module#prepended_modulesFeedbackmatz (Yukihiro Matsumoto)Actions
Actions #1

Updated by naruse (Yui NARUSE) almost 7 years ago

  • Target version deleted (2.6)

Updated by mame (Yusuke Endoh) about 5 years ago

Summary:

  • Module#include? and Module#included_modules regard prepended modules as included (not well documented)
  • Module#included is not called when the module is prepended

Is this right?

Updated by byroot (Jean Boussier) about 5 years ago

Module#included is not called when the module is prepended

I think that's fine, because it calls Module#prepended.

Module#include? and Module#included_modules regard prepended modules as included (not well documented)

That yes:

class Base
end

module A
end

module B
end

Base.prepend(A)
Base.include(B)

p Base.included_modules

outputs:

[A, B, Kernel]

Updated by matz (Yukihiro Matsumoto) almost 5 years ago

  • Status changed from Open to Closed

This intentional.

Matz.

Updated by marcandre (Marc-Andre Lafortune) almost 5 years ago

Thank you.

I clarified the documentation to reflect this.

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0