Module: Codeine::Injectable

Defined in:
lib/codeine/injectable.rb

Instance Method Summary collapse

Instance Method Details

#codeine_inject(service, options = {}) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/codeine/injectable.rb', line 9

def codeine_inject(service, options = {})
  args = options.delete(:args){[]}
  method_name = options.delete(:method_name) || service
  define_method(method_name.to_sym) do |*args|
    cache = instance_variable_get("@codeine_#{service}")
    unless cache
      cache = self.class.nearest_codeine_container.get(service.to_sym, *args)
      instance_variable_set("@codeine_#{service}", cache)
    end
    cache
  end
end

#nearest_codeine_containerObject



5
6
7
# File 'lib/codeine/injectable.rb', line 5

def nearest_codeine_container
  Codeine::Utility.nearest_container(self)
end