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