module Fluent::Configurable
Constants
- CONFIG_TYPE_REGISTRY
Public Class Methods
included(mod)
click to toggle source
# File lib/fluent/configurable.rb, line 26 def self.included(mod) mod.extend(ClassMethods) end
lookup_type(type)
click to toggle source
# File lib/fluent/configurable.rb, line 93 def self.lookup_type(type) CONFIG_TYPE_REGISTRY.lookup(type) end
new()
click to toggle source
Calls superclass method
# File lib/fluent/configurable.rb, line 30 def initialize super # to simulate implicit 'attr_accessor' by config_param / config_section and its value by config_set_default proxy = self.class.merged_configure_proxy proxy.params.keys.each do |name| next if name.to_s.start_with?('@') if proxy.defaults.has_key?(name) instance_variable_set("@#{name}".to_sym, proxy.defaults[name]) end end proxy.sections.keys.each do |name| next if name.to_s.start_with?('@') subproxy = proxy.sections[name] if subproxy.multi? instance_variable_set("@#{subproxy.variable_name}".to_sym, []) else instance_variable_set("@#{subproxy.variable_name}".to_sym, nil) end end end
register_type(type, callable = nil, &block)
click to toggle source
# File lib/fluent/configurable.rb, line 88 def self.register_type(type, callable = nil, &block) callable ||= block CONFIG_TYPE_REGISTRY.register(type, callable) end
Public Instance Methods
config()
click to toggle source
# File lib/fluent/configurable.rb, line 82 def config @masked_config ||= @config.to_masked_element end
configure(conf)
click to toggle source
# File lib/fluent/configurable.rb, line 51 def configure(conf) @config = conf logger = self.respond_to?(:log) ? log : (defined?($log) ? $log : nil) proxy = self.class.merged_configure_proxy conf.corresponding_proxies << proxy if self.respond_to?(:owner) && self.owner owner_proxy = owner.class.merged_configure_proxy if proxy.configured_in_section owner_proxy = owner_proxy.sections[proxy.configured_in_section] end proxy.overwrite_defaults(owner_proxy) if owner_proxy end # In the nested section, can't get plugin class through proxies so get plugin class here plugin_class = Fluent::Plugin.lookup_type_from_class(proxy.name.to_s) root = Fluent::Config::SectionGenerator.generate(proxy, conf, logger, plugin_class) @config_root_section = root root.instance_eval{ @params.keys }.each do |param_name| next if param_name.to_s.start_with?('@') varname = "@#{param_name}".to_sym if (! root[param_name].nil?) || (instance_variable_defined?(varname) && instance_variable_get(varname).nil?) instance_variable_set(varname, root[param_name]) end end self end