module Fluent::Configurable::ClassMethods
Public Instance Methods
config_param(name, *args, &block)
click to toggle source
# File lib/fluent/configurable.rb, line 78 def config_param(name, *args, &block) configure_proxy(self.name).config_param(name, *args, &block) attr_accessor name end
config_section(name, *args, &block)
click to toggle source
# File lib/fluent/configurable.rb, line 87 def config_section(name, *args, &block) configure_proxy(self.name).config_section(name, *args, &block) attr_accessor configure_proxy(self.name).sections[name].param_name end
config_set_default(name, defval)
click to toggle source
# File lib/fluent/configurable.rb, line 83 def config_set_default(name, defval) configure_proxy(self.name).config_set_default(name, defval) end
configure_proxy(mod_name)
click to toggle source
# File lib/fluent/configurable.rb, line 69 def configure_proxy(mod_name) map = configure_proxy_map unless map[mod_name] proxy = Fluent::Config::ConfigureProxy.new(mod_name, required: true, multi: false) map[mod_name] = proxy end map[mod_name] end
configure_proxy_map()
click to toggle source
# File lib/fluent/configurable.rb, line 63 def configure_proxy_map map = {} self.define_singleton_method(:configure_proxy_map){ map } map end
merged_configure_proxy()
click to toggle source
# File lib/fluent/configurable.rb, line 92 def merged_configure_proxy configurables = ancestors.reverse.select{ |a| a.respond_to?(:configure_proxy) } # 'a.object_id.to_s' is to support anonymous class # which created in tests to overwrite original behavior temporally # # p Module.new.name #=> nil # p Class.new.name #=> nil # p AnyGreatClass.dup.name #=> nil configurables.map{ |a| a.configure_proxy(a.name || a.object_id.to_s) }.reduce(:merge) end