Sha256: f4ae979503184f15e4531338e8a2a16448cdb1ab37c4dba23dda133317a40531
Contents?: true
Size: 808 Bytes
Versions: 9
Compression:
Stored size: 808 Bytes
Contents
module Rasti class App class ServiceFactory class << self def service(name, service_class=nil) services[name] = service_class || Consty.get(Inflecto.camelize(name), self) define_method name do cache[name] ||= begin adapter_class = Consty.get(settings[name][:adapter], self.class.services[name]) self.class.services[name].new adapter_class.new(environment, settings[name][:options]) end end end def services @services ||= {} end end def initialize(environment, settings) @environment = environment @settings = settings @cache = {} end private attr_reader :environment, :settings, :cache end end end
Version data entries
9 entries across 9 versions & 1 rubygems