Class: LogStash::Config::AST::Hash
- Inherits:
-
Value
- Object
- Treetop::Runtime::SyntaxNode
- Node
- RValue
- Value
- LogStash::Config::AST::Hash
show all
- Defined in:
- lib/logstash/config/config_ast.rb
Constant Summary
LogStashCompilerLSCLGrammar::LogStash::Compiler::LSCL::AST::Helpers::AND_METHOD, LogStashCompilerLSCLGrammar::LogStash::Compiler::LSCL::AST::Helpers::BOOLEAN_DSL_METHOD_SIGNATURE, LogStashCompilerLSCLGrammar::LogStash::Compiler::LSCL::AST::Helpers::NAND_METHOD, LogStashCompilerLSCLGrammar::LogStash::Compiler::LSCL::AST::Helpers::OR_METHOD, LogStashCompilerLSCLGrammar::LogStash::Compiler::LSCL::AST::Helpers::XOR_METHOD
Instance Method Summary
collapse
Methods inherited from Node
#text_value_for_comments
#base_id, #base_protocol, #base_source_with_metadata, #base_source_with_metadata=, #compose, #compose_for, #jdsl, jdsl, #line_and_column, #source_meta
Instance Method Details
#compile ⇒ Object
335
336
337
338
|
# File 'lib/logstash/config/config_ast.rb', line 335
def compile
validate!
return "{" << recursive_select(HashEntry).collect(&:compile).reject(&:empty?).join(", ") << "}"
end
|
#find_duplicate_keys ⇒ Object
330
331
332
333
|
# File 'lib/logstash/config/config_ast.rb', line 330
def find_duplicate_keys
values = recursive_select(HashEntry).collect { |hash_entry| hash_entry.name.text_value }
values.find_all { |v| values.count(v) > 1 }.uniq
end
|
#validate! ⇒ Object
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
|
# File 'lib/logstash/config/config_ast.rb', line 314
def validate!
duplicate_values = find_duplicate_keys
if duplicate_values.size > 0
raise ConfigurationError.new(
I18n.t("logstash.runner.configuration.invalid_plugin_settings_duplicate_keys",
:keys => duplicate_values.join(', '),
:line => input.line_of(interval.first),
:column => input.column_of(interval.first),
:byte => interval.first + 1,
:after => input[0..interval.first]
)
)
end
end
|