class Lita::ConfigurationValidator
Validates a registry's configuration, checking for required attributes that are missing. @since 4.0.0 @api private
Public Class Methods
new(registry)
click to toggle source
@param registry [Lita::Registry] The registry to validate.
# File lib/lita/configuration_validator.rb, line 7 def initialize(registry) @registry = registry end
Public Instance Methods
call()
click to toggle source
Validates adapter and handler configuration. Logs a fatal warning and aborts if any required configuration attributes are missing. @return [void]
# File lib/lita/configuration_validator.rb, line 14 def call validate_adapters validate_handlers end
Private Instance Methods
adapters()
click to toggle source
The registry's adapters.
# File lib/lita/configuration_validator.rb, line 22 def adapters @registry.adapters end
children_for(plugin)
click to toggle source
All a plugin's top-level configuration attributes.
# File lib/lita/configuration_validator.rb, line 27 def children_for(plugin) plugin.configuration_builder.children end
full_attribute_name(names, name)
click to toggle source
Generates the fully qualified name of a configuration attribute.
# File lib/lita/configuration_validator.rb, line 32 def full_attribute_name(names, name) (names + [name]).join(".") end
handlers()
click to toggle source
The registry's handlers.
# File lib/lita/configuration_validator.rb, line 37 def handlers @registry.handlers end
validate(type, plugin, attributes, attribute_namespace = [])
click to toggle source
Validates an array of attributes, recursing if any nested attributes are encountered.
# File lib/lita/configuration_validator.rb, line 52 def validate(type, plugin, attributes, attribute_namespace = []) attributes.each do |attribute| if attribute.children? validate(type, plugin, attribute.children, attribute_namespace.clone.push(attribute.name)) elsif attribute.required? && attribute.value.nil? Lita.logger.fatal I18n.t( "lita.config.missing_required_#{type}_attribute", type => plugin.namespace, attribute: full_attribute_name(attribute_namespace, attribute.name) ) abort end end end
validate_adapters()
click to toggle source
Validates the registry's adapters.
# File lib/lita/configuration_validator.rb, line 42 def validate_adapters adapters.each_value { |adapter| validate(:adapter, adapter, children_for(adapter)) } end
validate_handlers()
click to toggle source
Validates the registry's handlers.
# File lib/lita/configuration_validator.rb, line 47 def validate_handlers handlers.each { |handler| validate(:handler, handler, children_for(handler)) } end