module Dio::ModuleBase
Dio::ModuleBase
provides core methods as a mixin. {Dio} module extends this module so you can use all of the methods from Dio
like `Dio.injector`.
Public Instance Methods
clear_stubs(clazz = nil)
click to toggle source
@see Dio::Injector#clear_stubs
# File lib/dio/module_base.rb, line 61 def clear_stubs(clazz = nil) injector.clear_stubs(clazz) end
create(clazz, *args)
click to toggle source
Create an instance of the given class with injection.
@see
Dio::Injector#create
# File lib/dio/module_base.rb, line 35 def create(clazz, *args) injector.create(clazz, *args) end
inject(target)
click to toggle source
Injects dependencies using the injector this module has.
@see
Dio::Injector#inject
# File lib/dio/module_base.rb, line 27 def inject(target) injector.inject(target) end
injector(id = nil)
click to toggle source
Returns a injector associated with this module. If you call `Dio.injector`, it returns a default injector. If an ID is given, returns an injector of the ID.
@param id [Symbol] @return [Dio::Injector]
# File lib/dio/module_base.rb, line 19 def injector(id = nil) @state.injector(id || @injector_id) end
reset_loader(clazz = nil)
click to toggle source
@see Dio::Injector#reset_loader
# File lib/dio/module_base.rb, line 56 def reset_loader(clazz = nil) injector.reset_loader(clazz) end
reset_state()
click to toggle source
Reset a whole state. This is used mainly for tests.
# File lib/dio/module_base.rb, line 41 def reset_state @state.reset(@injector_id => Dio::Injector.new) end
stub_deps(clazz, deps)
click to toggle source
@see Dio::Injector#stub_deps
# File lib/dio/module_base.rb, line 51 def stub_deps(clazz, deps) injector.stub_deps(clazz, deps) end
wrap_load(clazz, &wrapper)
click to toggle source
@see Dio::Injector#wrap_load
# File lib/dio/module_base.rb, line 46 def wrap_load(clazz, &wrapper) injector.wrap_load(clazz, &wrapper) end
Private Instance Methods
included(base)
click to toggle source
Add some methods to a class which includes Dio
module.
# File lib/dio/module_base.rb, line 68 def included(base) my_injector = injector injector_holder = Module.new do define_method :__dio_injector__ do my_injector end end base.extend(ClassMethods, injector_holder) base.include(InstanceMethods) end