class Jackhammer::ConfigurationValidator
Attributes
config_yaml[RW]
environment[RW]
errors[RW]
Public Class Methods
new()
click to toggle source
# File lib/jackhammer/configuration_validator.rb, line 5 def initialize @errors = [] end
Public Instance Methods
validate()
click to toggle source
# File lib/jackhammer/configuration_validator.rb, line 9 def validate validate_environment_defined return if errors.any? validate_topic_exchange_defined return if errors.any? validate_queues_defined return if errors.any? validate_handlers_defined end
validate_environment_defined()
click to toggle source
# File lib/jackhammer/configuration_validator.rb, line 19 def validate_environment_defined return if config_yaml[environment] add_error("Environment '#{environment}' is not defined") end
validate_handlers_defined()
click to toggle source
# File lib/jackhammer/configuration_validator.rb, line 44 def validate_handlers_defined config_yaml[environment].each do |exchange_name, exchange_config| exchange_config['queues'].each do |qconfig| Object.const_get(qconfig['handler']) rescue NameError add_error("Uninitialized constant #{qconfig['handler']}") end end end
validate_queues_defined()
click to toggle source
# File lib/jackhammer/configuration_validator.rb, line 31 def validate_queues_defined topics = config_yaml[environment].keys topics.each do |topic| begin next if config_yaml[environment][topic]['queues'] rescue StandardError false end add_error("Topic '#{topic}' does not define any queues") end end
validate_topic_exchange_defined()
click to toggle source
# File lib/jackhammer/configuration_validator.rb, line 25 def validate_topic_exchange_defined return if config_yaml[environment].keys.any? add_error("Environment '#{environment}' does not define a topic exchange") end
Private Instance Methods
add_error(str)
click to toggle source
# File lib/jackhammer/configuration_validator.rb, line 56 def add_error(str) @errors << str end