Class: Sc4ry::Config::Validator

Inherits:
Object
  • Object
show all
Includes:
Sc4ry::Constants, Exceptions
Defined in:
lib/sc4ry/config.rb

Overview

Configuration validator for Sc4ry default and circuits configuration

Constant Summary

Constants included from Sc4ry::Constants

Sc4ry::Constants::CURRENT_NOTIFIERS, Sc4ry::Constants::DEFAULT_CONFIG, Sc4ry::Constants::DEFAULT_CONFIG_FORMATS

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(definition:, from: DEFAULT_CONFIG) ⇒ Validator

Validator constructor

Parameters:

  • definition (Hash)

    the config hash to merge and validate

  • from (Hash) (defaults to: DEFAULT_CONFIG)

    config hash merged on origin (default : the Sc4ry base config from Constants )



29
30
31
32
# File 'lib/sc4ry/config.rb', line 29

def initialize(definition:, from: DEFAULT_CONFIG)
  @config = from
  @input = definition
end

Instance Attribute Details

#configObject (readonly)

Note:

altered by reference to final result mapping with #validate!

accessor on circuit initial definition from default config or given in construction by from keyword



17
18
19
# File 'lib/sc4ry/config.rb', line 17

def config
  @config
end

#inputObject (readonly)

accessor on Circuit definition given for validation



13
14
15
# File 'lib/sc4ry/config.rb', line 13

def input
  @input
end

Instance Method Details

#resultObject



19
20
21
# File 'lib/sc4ry/config.rb', line 19

def result
  @config
end

#validate!Object

Validation method, alter by reference the config attribut

Raises:

  • ConfigError if un unknown key is given in definition to merge.



36
37
38
39
40
41
42
43
# File 'lib/sc4ry/config.rb', line 36

def validate!
  unknown_keys = @input.keys.difference @config.keys
  raise ConfigError, "Unknown keys in config set : #{unknown_keys}" unless unknown_keys.empty?

  validate_formats
  @config.merge! @input
  format_exceptions
end