module Tochtli
Constants
- VERSION
Attributes
cache[W]
Global cache store for services (default: Rails.cache)
debug_bunny[RW]
If set to true bunny log level would be set to DEBUG (by default it is WARN)
logger[W]
Global logger for services (default: RAILS_ROOT/log/service.log)
Public Class Methods
application()
click to toggle source
# File lib/tochtli.rb, line 86 def application unless @application @application = Tochtli::Application.new @application.use_default_middlewares end @application end
cache()
click to toggle source
# File lib/tochtli.rb, line 79 def cache if !@cache && defined?(Rails) @cache = Rails.cache end @cache end
eager_load_service_controllers()
click to toggle source
# File lib/tochtli.rb, line 150 def eager_load_service_controllers existent_engine_paths('controllers').each do |load_path| Dir.glob("#{load_path}/**/*.rb").sort.each do |file| require file end end end
eager_load_service_messages()
click to toggle source
# File lib/tochtli.rb, line 142 def eager_load_service_messages existent_engine_paths('messages').each do |load_path| Dir.glob("#{load_path}/**/*.rb").sort.each do |file| require file end end end
existent_engine_paths(type)
click to toggle source
# File lib/tochtli.rb, line 158 def existent_engine_paths(type) engines = ::Rails::Engine.subclasses.map(&:instance) engines += [Rails.application] engines.collect do |railtie| railtie.paths["service/#{type}"].try(:existent) end.compact.flatten end
load_services()
click to toggle source
Should be invoked only once
# File lib/tochtli.rb, line 95 def load_services eager_load_service_messages eager_load_service_controllers end
logger()
click to toggle source
# File lib/tochtli.rb, line 66 def logger unless @logger if defined?(Rails) @logger = Logger.new(File.join(Rails.root, 'log/service.log')) @logger.level = Rails.env.production? ? Logger::WARN : Logger::DEBUG else @logger = Logger.new(STDERR) @logger.level = Logger::WARN end end @logger end
restart_services(rabbit_config=nil, logger=nil)
click to toggle source
# File lib/tochtli.rb, line 129 def restart_services(rabbit_config=nil, logger=nil) ControllerManager.stop if ControllerManager.running? ControllerManager.start(rabbit_config, logger) true rescue if logger logger.error "Error during service restart" logger.error "#{$!.class}: #{$!}" logger.error $!.backtrace.join("\n") end false end
services_running?()
click to toggle source
# File lib/tochtli.rb, line 125 def services_running? ControllerManager.running? end
start_services(rabbit_config=nil, logger=nil)
click to toggle source
# File lib/tochtli.rb, line 100 def start_services(rabbit_config=nil, logger=nil) ControllerManager.setup(config: rabbit_config, logger: logger) ControllerManager.start true rescue if logger logger.error "Error during service start" logger.error "#{$!.class}: #{$!}" logger.error $!.backtrace.join("\n") end false end
stop_services(logger=nil)
click to toggle source
# File lib/tochtli.rb, line 113 def stop_services(logger=nil) ControllerManager.stop true rescue if logger logger.error "Error during service stop" logger.error "#{$!.class}: #{$!}" logger.error $!.backtrace.join("\n") end false end