Class: Rasti::App::ServiceFactory
- Inherits:
-
Object
- Object
- Rasti::App::ServiceFactory
- Defined in:
- lib/rasti/app/service_factory.rb
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(environment, settings) ⇒ ServiceFactory
constructor
A new instance of ServiceFactory.
Constructor Details
#initialize(environment, settings) ⇒ ServiceFactory
Returns a new instance of ServiceFactory.
25 26 27 28 29 |
# File 'lib/rasti/app/service_factory.rb', line 25 def initialize(environment, settings) @environment = environment @settings = settings @cache = {} end |
Class Method Details
.service(name, service_class = nil) ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 |
# File 'lib/rasti/app/service_factory.rb', line 7 def service(name, service_class=nil) services[name] = service_class || Consty.get(Inflecto.camelize(name), self) define_method name do cache[name] ||= begin raise "Undefined settings for service: #{name}" unless settings.key? name 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 |
.services ⇒ Object
19 20 21 |
# File 'lib/rasti/app/service_factory.rb', line 19 def services @services ||= {} end |