86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
|
# File 'lib/logstash/config/config_ast.rb', line 86
def compile
LogStash::Config::AST.defered_conditionals = []
LogStash::Config::AST.defered_conditionals_index = 0
code = []
code << <<-CODE
@inputs = []
@filters = []
@outputs = []
@periodic_flushers = []
@shutdown_flushers = []
CODE
sections = recursive_select(LogStash::Config::AST::PluginSection)
sections.each do |s|
code << s.compile_initializer
end
definitions = []
["filter", "output"].each do |type|
definitions << "def #{type}_func(event)"
definitions << " events = [event]" if type == "filter"
definitions << " @logger.debug? && @logger.debug(\"#{type} received\", :event => event.to_hash)"
sections.select { |s| s.plugin_type.text_value == type }.each do |s|
definitions << s.compile.split("\n", -1).map { |e| " #{e}" }
end
definitions << " events" if type == "filter"
definitions << "end"
end
code += definitions.join("\n").split("\n", -1).collect { |l| " #{l}" }
code += LogStash::Config::AST.defered_conditionals
return code.join("\n")
end
|