lib/fusuma.rb in fusuma-3.5.0 vs lib/fusuma.rb in fusuma-3.6.0

- old
+ new

@@ -13,18 +13,17 @@ class Runner class << self def run(option = {}) read_options(option) instance = new + instance.initialize_plugins instance.set_trap ## NOTE: Uncomment following line to measure performance # instance.run_with_lineprof instance.run - rescue => e - MultiLogger.error("Shutdown by error") - MultiLogger.error(e) - instance.send(:shutdown) + ensure + instance&.send(:shutdown) end private def read_options(option) @@ -57,11 +56,13 @@ def load_custom_config(config_path = nil) Config.custom_path = config_path end end - def initialize + def initialize; end + + def initialize_plugins @inputs = Plugin::Inputs::Input.plugins.map do |cls| cls.ancestors.include?(Singleton) ? cls.instance : cls.new end @filters = Plugin::Filters::Filter.plugins.map(&:new) @parsers = Plugin::Parsers::Parser.plugins.map(&:new) @@ -204,10 +205,10 @@ end private def shutdown - [@inputs, @filters, @parsers, @buffers, @detectors, @executors].flatten.each do |plugin| + [@inputs, @filters, @parsers, @buffers, @detectors, @executors].flatten.compact.each do |plugin| plugin.shutdown end end end end