Module: SimpleInjector::ClassMethods

Defined in:
lib/simple_injector.rb

Overview

methods to add on included class

Instance Method Summary collapse

Instance Method Details

#attr_injector(name) ⇒ Object



18
19
20
21
22
23
24
25
26
# File 'lib/simple_injector.rb', line 18

def attr_injector(name)
  injectable = Inject.find(@contractor_class, name)

  define_method name do
    instance_variable_set(:"@#{name}", injectable.callback.call) unless instance_variable_defined?(:"@#{name}")

    instance_variable_get(:"@#{name}")
  end
end

#contract(klass) ⇒ Object



28
29
30
# File 'lib/simple_injector.rb', line 28

def contract(klass)
  @contractor_class = klass.to_s
end