Module: Fluentd::Setting::Plugin::ClassMethods
- Defined in:
- app/models/concerns/fluentd/setting/plugin.rb
Instance Method Summary collapse
- #create_driver(config) ⇒ Object
- #load_plugin_config ⇒ Object
- #plugin_class ⇒ Object
- #plugin_helpers ⇒ Object
- #plugin_instance ⇒ Object
- #register_plugin(type, name) ⇒ Object
- #section? ⇒ Boolean
Instance Method Details
#create_driver(config) ⇒ Object
69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 |
# File 'app/models/concerns/fluentd/setting/plugin.rb', line 69 def create_driver(config) case plugin_type when "input" if plugin_class.class_variable_defined?(:@@pos_file_paths) plugin_class.class_variable_set(:@@pos_file_paths, {}) end Fluent::Test::Driver::Input.new(plugin_class).configure(config) when "output" if Fluent::Plugin::FileBuffer.class_variable_defined?(:@@buffer_paths) Fluent::Plugin::FileBuffer.class_variable_set(:@@buffer_paths, {}) end Fluent::Test::Driver::Output.new(plugin_class).configure(config) when "filter" Fluent::Test::Driver::Filter.new(plugin_class).configure(config) when "parser" Fluent::Test::Driver::Parser.new(plugin_class).configure(config) when "formatter" FLuent::Test::Driver::Formatter.new(plugin_class).configure(config) else nil end end |
#load_plugin_config ⇒ Object
48 49 50 51 52 53 54 55 56 57 58 59 |
# File 'app/models/concerns/fluentd/setting/plugin.rb', line 48 def load_plugin_config dumped_config = {} plugin_class.ancestors.reverse_each do |klass| next unless klass.respond_to?(:dump_config_definition) dumped_config_definition = klass.dump_config_definition dumped_config[klass.name] = dumped_config_definition unless dumped_config_definition.empty? end self.config_definition = dumped_config dumped_config.each do |name, config| yield name, config end end |
#plugin_class ⇒ Object
65 66 67 |
# File 'app/models/concerns/fluentd/setting/plugin.rb', line 65 def plugin_class @plugin_class ||= plugin_instance.class end |
#plugin_helpers ⇒ Object
92 93 94 95 96 97 98 |
# File 'app/models/concerns/fluentd/setting/plugin.rb', line 92 def plugin_helpers @plugin_helpers ||= if plugin_instance.respond_to?(:plugin_helpers) plugin_instance.plugin_helpers else [] end end |
#plugin_instance ⇒ Object
61 62 63 |
# File 'app/models/concerns/fluentd/setting/plugin.rb', line 61 def plugin_instance @plugin_instance ||= Fluent::Plugin.__send__("new_#{plugin_type}", plugin_name) end |
#register_plugin(type, name) ⇒ Object
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'app/models/concerns/fluentd/setting/plugin.rb', line 26 def register_plugin(type, name) self.plugin_type = type self.plugin_name = name if ["filter", "output"].include?(type) include Fluentd::Setting::Pattern end self.load_plugin_config do |_name, params| params.each do |param_name, definition| if definition[:section] parse_section(param_name, definition) if %i(buffer storage parse format).include?(param_name) attribute("#{param_name}_type", :string) end else config_param(param_name, definition[:type], **definition.except(:type)) end end end end |
#section? ⇒ Boolean
100 101 102 |
# File 'app/models/concerns/fluentd/setting/plugin.rb', line 100 def section? false end |