Class: Module

Inherits:
Object show all
Defined in:
lib/y_support/unicode.rb,
lib/y_support/core_ext/module/misc.rb,
lib/y_support/typing/module/typing.rb

Instance Method Summary collapse

Instance Method Details

#complianceObject

Compliance (declared compliance + ancestors).



22
23
24
# File 'lib/y_support/typing/module/typing.rb', line 22

def compliance
  ( declared_compliance + ancestors ).uniq
end

#complies?(other_module) ⇒ Boolean

Compliance inquirer (declared compliance + ancestors).

Returns:

  • (Boolean)


8
9
10
11
# File 'lib/y_support/typing/module/typing.rb', line 8

def complies?( other_module )
  other_module.aT_kind_of Module, "other module"
  compliance.include? other_module
end

#declare_compliance!(other_module) ⇒ Object

Declaration of module / class compliance.



36
37
38
39
40
41
# File 'lib/y_support/typing/module/typing.rb', line 36

def declare_compliance! other_module
  other_module.aT_kind_of Module, "other module"
  return false if declared_compliance.include? other_module
  ( @declared_compliance ||= [] ) << other_module
  return true
end

#declared_complianceObject

Declared compliance getter.



28
29
30
31
32
# File 'lib/y_support/typing/module/typing.rb', line 28

def declared_compliance
  ( ( @declared_compliance || [] ) + ancestors.map { |a|
      a.instance_variable_get( :@declared_compliance ) || []
    }.reduce( [], :+ ) ).uniq
end

#declares_compliance?(other_module) ⇒ Boolean

Declared complience inquirer.

Returns:

  • (Boolean)


15
16
17
18
# File 'lib/y_support/typing/module/typing.rb', line 15

def declares_compliance?( other_module )
  other_module.aT_kind_of Module, "other module"
  declared_compliance.include? other_module
end