ruby/rails: How to determine if module is included?

If I understand your question correctly, you can use Module#include?:

Man.include?(Features)

For example:

module M
end

class C
  include M
end

C.include?(M) # => true

Other ways

Checking Module#included_modules

This works, but it’s a bit more indirect, since it generates intermediate included_modules array.

C.included_modules.include?(M) # => true

since C.included_modules has a value of [M, Kernel]

Checking Module#ancestors

C.ancestors.include?(M) #=> true

since C.ancestors has a value of [C, M, Object, Kernel, BasicObject]

Using operators like <

The Module class also declares several comparison operators:

  • Module#<
  • Module#<=
  • Module#==
  • Module#>=
  • Module#>

Example:

C < M # => true 

Leave a Comment

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)