Module: EnhanceModule
- Extended by:
- T::Generic, T::Sig
- Defined in:
- lib/enhance_module.rb,
lib/enhance_module/version.rb
Overview
This module can be included in the singleton class of a module to make it able to extend objects in a typed, sorbet-friendly way.
require "enhance_module"
module MyModule
class << self
include EnhanceModule
has_attached_class! { { fixed: MyModule } }
end
sig { void }
def my_module_method; end
end
class MyClass
extend T::Sig
sig { void }
def my_class_method; end
end
obj = MyClass.new
obj.my_class_method # ok!
# extend the object with `MyModule`
extended_obj = MyModule.enhance(obj)
extended_obj.my_class_method # ok!
extended_obj.my_module_method # ok!
Defined Under Namespace
Modules: ClassMethods
Constant Summary collapse
- VERSION =
"0.1.0"
Instance Method Summary collapse
Instance Method Details
#enhance(obj) ⇒ Object
47 48 49 |
# File 'lib/enhance_module.rb', line 47 def enhance(obj) T.unsafe(obj).extend(self) end |