class Cylons::ServiceManager

Public Class Methods

build_service(model_klass) click to toggle source
# File lib/cylons/service_manager.rb, line 20
def self.build_service(model_klass)
  proxy_service_class_name = "#{model_klass.name}Service"
  ::Object.const_set(proxy_service_class_name, ::Class.new(::Cylons::Service))
  service_klass = proxy_service_class_name.constantize
  service_klass.model = model_klass

  ::Cylons.logger.info "REGISTERING_SERVICE_FOR #{model_klass}"

  service_klass
end
remotes?() click to toggle source
# File lib/cylons/service_manager.rb, line 43
def self.remotes?
  ::Cylons::RemoteRegistry.remotes.any?
end
service_defined?(model_klass) click to toggle source
# File lib/cylons/service_manager.rb, line 31
def self.service_defined?(model_klass)
  proxy_service_class_name = "#{model_klass.name}Service"

  const_defined?(:"#{proxy_service_class_name}")
end
start() click to toggle source
# File lib/cylons/service_manager.rb, line 6
def self.start
  ::Cylons.logger.info "STARTING CYLON SERVICES"
  start_services
end
start_service(model_klass) click to toggle source

todo: split supervision and building

# File lib/cylons/service_manager.rb, line 12
def self.start_service(model_klass)
  unless service_defined?(model_klass)
    service_klass = build_service(model_klass)

    service_klass.supervise_as service_klass.name.to_sym
  end
end
start_services() click to toggle source
# File lib/cylons/service_manager.rb, line 37
def self.start_services
  ::Cylons::RemoteRegistry.remotes.each do |remote|
    start_service(remote)
  end if remotes?
end
stop() click to toggle source
# File lib/cylons/service_manager.rb, line 47
def self.stop
  ::Cylons::RemoteRegistry.remotes.each do |remote|
    ::Cylons.logger.info{ "Shutting Down #{remote.name}"}
    remote.stop
  end
end