Method: Class#class_extend

Defined in:
lib/core/facets/module/class_extend.rb

#class_extend(*mods, &block) ⇒ Object

For Class, Module#class_extend is similar to class_eval.

The alternative is to “undef_method :class_extend”, but this seems uneccessarily limited.

Uncommon:

  • require ‘facets/module/class_extend’



84
85
86
87
88
89
90
# File 'lib/core/facets/module/class_extend.rb', line 84

def class_extend(*mods, &block)
  class_extension = Module.new
  class_extension.__send__(:include, *mods)
  class_extension.module_eval(&block) if block
  extend(class_extension)
  class_extensions << class_extension
end