class LogStash::Config::AST::PluginSection

Public Instance Methods

compile_initializer() click to toggle source

Generate ruby code to initialize all the plugins.

# File lib/logstash/config/config_ast.rb, line 89
def compile_initializer
  generate_variables
  code = []
  @variables.collect do |plugin, name|
    code << "#{name} = #{plugin.compile_initializer}"
    code << "@#{plugin.plugin_type}s << #{name}"
  end
  return code.join("\n")
end
generate_variables() click to toggle source
# File lib/logstash/config/config_ast.rb, line 104
def generate_variables
  return if !@variables.nil?
  @variables = {}
  plugins = recursive_select(Plugin)

  plugins.each do |plugin|
    # Unique number for every plugin.
    @@i += 1
    # store things as ivars, like @filter_grok_3
    var = "@#{plugin.plugin_type}_#{plugin.plugin_name}_#{@@i}"
    @variables[plugin] = var
  end
  return @variables
end
variable(object) click to toggle source
# File lib/logstash/config/config_ast.rb, line 99
def variable(object)
  generate_variables
  return @variables[object]
end