Class: Serialbench::ConfigManager
- Inherits:
-
Object
- Object
- Serialbench::ConfigManager
- 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
-
.load_and_validate(config_path) ⇒ Object
Load and validate configuration from file.
Instance Method Summary collapse
-
#initialize ⇒ ConfigManager
constructor
A new instance of ConfigManager.
-
#load_and_validate(config_path) ⇒ Object
Load configuration file and validate against schema.
Constructor Details
#initialize ⇒ ConfigManager
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
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 |