lib/longleaf/services/service_definition_validator.rb in longleaf-0.3.0 vs lib/longleaf/services/service_definition_validator.rb in longleaf-1.0.0
- old
+ new
@@ -8,24 +8,32 @@
# Validates application configuration of service definitions
class ServiceDefinitionValidator < ConfigurationValidator
SF ||= Longleaf::ServiceFields
AF ||= Longleaf::AppFields
+ # @param config [Hash] hash containing the application configuration
+ def initialize(config)
+ super(config)
+ end
+
+ protected
# Validates configuration to ensure that it is syntactically correct and does not violate
# schema requirements.
# @param config [Hash] hash containing the application configuration
- def self.validate_config(config)
- assert("Configuration must be a hash, but a #{config.class} was provided", config.class == Hash)
- assert("Configuration must contain a root '#{AF::SERVICES}' key", config.key?(AF::SERVICES))
- services = config[AF::SERVICES]
+ def validate
+ assert("Configuration must be a hash, but a #{@config.class} was provided", @config.class == Hash)
+ assert("Configuration must contain a root '#{AF::SERVICES}' key", @config.key?(AF::SERVICES))
+ services = @config[AF::SERVICES]
assert("'#{AF::SERVICES}' must be a hash of services", services.class == Hash)
services.each do |name, properties|
- assert("Name of service definition must be a string, but was of type #{name.class}", name.instance_of?(String))
- assert("Service definition '#{name}' must be a hash, but a #{properties.class} was provided", properties.is_a?(Hash))
+ register_on_failure do
+ assert("Name of service definition must be a string, but was of type #{name.class}", name.instance_of?(String))
+ assert("Service definition '#{name}' must be a hash, but a #{properties.class} was provided", properties.is_a?(Hash))
- work_script = properties[SF::WORK_SCRIPT]
- assert("Service definition '#{name}' must specify a '#{SF::WORK_SCRIPT}' property", !work_script.nil? && !work_script.empty?)
+ work_script = properties[SF::WORK_SCRIPT]
+ assert("Service definition '#{name}' must specify a '#{SF::WORK_SCRIPT}' property", !work_script.nil? && !work_script.empty?)
+ end
end
end
end
end