module Fluent::PluginHelper
def self.extended(mod)
def self.extended(mod) def mod.inherited(subclass) subclass.module_eval do @_plugin_helpers_list = [] end end end
def helpers(*snake_case_symbols)
def helpers(*snake_case_symbols) @_plugin_helpers_list ||= [] @_plugin_helpers_list.concat(snake_case_symbols) helpers_internal(*snake_case_symbols) end
def helpers_internal(*snake_case_symbols)
def helpers_internal(*snake_case_symbols) helper_modules = [] snake_case_symbols.each do |name| begin helper_modules << Fluent::PluginHelper.const_get(name.to_s.split('_').map(&:capitalize).join) rescue NameError raise "Unknown plugin helper:#{name}" end end include(*helper_modules) end
def plugin_helpers
def plugin_helpers @_plugin_helpers_list || [] end