class Phobos::CLI::Start
Attributes
boot_file[R]
config_file[R]
listeners_file[R]
Public Class Methods
new(options)
click to toggle source
# File lib/phobos/cli/start.rb, line 8 def initialize(options) @config_file = File.expand_path(options[:config]) unless options[:skip_config] @boot_file = File.expand_path(options[:boot]) @listeners_file = File.expand_path(options[:listeners]) if options[:listeners] end
Public Instance Methods
execute()
click to toggle source
# File lib/phobos/cli/start.rb, line 15 def execute load_boot_file if config_file validate_config_file! Phobos.configure(config_file) end Phobos.add_listeners(listeners_file) if listeners_file validate_listeners! Phobos::CLI::Runner.new.run! end
Private Instance Methods
error_exit(msg)
click to toggle source
# File lib/phobos/cli/start.rb, line 61 def error_exit(msg) Phobos::CLI.logger.error { Hash(message: msg) } exit(1) end
load_boot_file()
click to toggle source
# File lib/phobos/cli/start.rb, line 66 def load_boot_file load(boot_file) if File.exist?(boot_file) end
validate_config_file!()
click to toggle source
# File lib/phobos/cli/start.rb, line 34 def validate_config_file! File.exist?(config_file) || error_exit("Config file not found (#{config_file})") end
validate_listeners!()
click to toggle source
# File lib/phobos/cli/start.rb, line 38 def validate_listeners! # rubocop:disable Metrics/MethodLength Phobos.config.listeners.each do |listener| handler = listener.handler begin handler.constantize rescue NameError error_exit("Handler '#{handler}' not defined") end delivery = listener.delivery if delivery.nil? Phobos::CLI.logger.warn do Hash(message: "Delivery option should be specified, defaulting to 'batch'"\ ' - specify this option to silence this message') end elsif !Listener::DELIVERY_OPTS.include?(delivery) error_exit("Invalid delivery option '#{delivery}'. Please specify one of: "\ "#{Listener::DELIVERY_OPTS.join(', ')}") end end end