Class: Serialbench::ConfigManager

Inherits:
Object
  • Object
show all
Defined in:
lib/serialbench/config_manager.rb

Overview

Manages configuration loading and validation for Serialbench

Defined Under Namespace

Classes: ConfigurationError

Constant Summary collapse

SCHEMA_PATH =
File.join(__dir__, '../../docs/serialbench_config_schema.yaml')

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeConfigManager

Returns a new instance of ConfigManager.



19
20
21
# File 'lib/serialbench/config_manager.rb', line 19

def initialize
  @validator = SchemaValidator.new
end

Class Method Details

.load_and_validate(config_path) ⇒ Object

Load and validate configuration from file



15
16
17
# File 'lib/serialbench/config_manager.rb', line 15

def self.load_and_validate(config_path)
  new.load_and_validate(config_path)
end

Instance Method Details

#load_and_validate(config_path) ⇒ Object

Load configuration file and validate against schema

Raises:



24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/serialbench/config_manager.rb', line 24

def load_and_validate(config_path)
  raise ConfigurationError, "Configuration file not found: #{config_path}" unless File.exist?(config_path)

  begin
    config_data = YAML.load_file(config_path)
  rescue Psych::SyntaxError => e
    raise ConfigurationError, "Invalid YAML syntax in #{config_path}: #{e.message}"
  rescue StandardError => e
    raise ConfigurationError, "Error reading configuration file #{config_path}: #{e.message}"
  end

  validate_config(config_data, config_path)
  normalize_config(config_data)
end