45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
|
# File 'lib/logstash/config/config_ast.rb', line 45
def compile
code = []
code << "@inputs = []"
code << "@filters = []"
code << "@outputs = []"
sections = recursive_select(LogStash::Config::AST::PluginSection)
sections.each do |s|
code << s.compile_initializer
end
definitions = []
["filter", "output"].each do |type|
definitions << "@#{type}_func = lambda do |event, &block|"
if type == "filter"
definitions << " extra_events = []"
end
definitions << " @logger.info? && @logger.info(\"#{type} received\", :event => event)"
sections.select { |s| s.plugin_type.text_value == type }.each do |s|
definitions << s.compile.split("\n", -1).map { |e| " #{e}" }
end
if type == "filter"
definitions << " extra_events.each(&block)"
end
definitions << "end"
end
code += definitions.join("\n").split("\n", -1).collect { |l| " #{l}" }
return code.join("\n")
end
|