module T::Helpers
def abstract!
def abstract! if defined?(super) # This is to play nicely with Rails' AbstractController::Base, # which also defines an `abstract!` method. # https://api.rubyonrails.org/classes/AbstractController/Base.html#method-c-abstract-21 super end Private::Abstract::Declare.declare_abstract(self, type: :abstract) end
def final!
def final! Private::Final.declare(self) end
def interface!
def interface! Private::Abstract::Declare.declare_abstract(self, type: :interface) end
def mixes_in_class_methods(mod, *mods)
end
other.extend(mod)
def self.included(other)
Nearly equivalent to
Causes a mixin to also mix in class methods from the named module.
def mixes_in_class_methods(mod, *mods) Private::Mixins.declare_mixes_in_class_methods(self, [mod].concat(mods)) end
def requires_ancestor(&block); end
end
include MyHelper
class MyClass < BasicObject # error: `MyClass` must include `Kernel` (required by `MyHelper`)
end
requires_ancestor { Kernel }
extend T::Helpers
module MyHelper
Example:
Specify an inclusion or inheritance requirement for `self`.
def requires_ancestor(&block); end
def sealed!
def sealed! Private::Sealed.declare(self, Kernel.caller(1..1)&.first&.split(':')&.first) end