Class: Rasti::App::ServiceFactory

Inherits:
Object
  • Object
show all
Defined in:
lib/rasti/app/service_factory.rb

Class Method Summary collapse

Instance Method Summary collapse

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

.servicesObject



19
20
21
# File 'lib/rasti/app/service_factory.rb', line 19

def services
  @services ||= {}
end