module Pharrell::Injectable::ClassMethods

Public Instance Methods

injected(name, klass=nil) click to toggle source
# File lib/pharrell/injectable.rb, line 8
def injected(name, klass=nil)
  if klass.nil?
    klass_name = name.to_s.split("_").map(&:capitalize).join
    klass = Kernel.const_get(klass_name)
  end

  define_method(name) do
    @__pharrell_cache__ ||= {}
    @__pharrell_cache__[klass] ||= Pharrell.instance_for(klass)
  end
end