Class: Uniword::Assembly::AssemblyManifest
- Inherits:
-
Object
- Object
- Uniword::Assembly::AssemblyManifest
- Defined in:
- lib/uniword/assembly/assembly_manifest.rb
Overview
Parses and validates assembly manifest YAML files.
Responsibility: Parse assembly.yml configuration files. Single Responsibility: Only handles manifest parsing and validation.
The AssemblyManifest:
-
Loads YAML assembly configuration
-
Validates manifest structure
-
Provides default values for optional settings
-
Exposes configuration through a clean interface
Instance Attribute Summary collapse
-
#options ⇒ Hash
readonly
Additional options.
-
#output_path ⇒ String
readonly
Path to output file.
-
#sections ⇒ Array<Hash>
readonly
Section configurations.
-
#template_name ⇒ String?
readonly
Template name.
-
#variables ⇒ Hash
readonly
Template variables.
Instance Method Summary collapse
-
#initialize(manifest_path, override_variables: {}) ⇒ AssemblyManifest
constructor
Initialize manifest from YAML file.
-
#section_list ⇒ Array<Hash>
Get section configurations.
-
#template? ⇒ Boolean
Check if manifest has a template.
-
#variable(key) ⇒ Object?
Get variable value by key.
-
#variable?(key) ⇒ Boolean
Check if variable exists.
Constructor Details
#initialize(manifest_path, override_variables: {}) ⇒ AssemblyManifest
Initialize manifest from YAML file.
55 56 57 58 59 60 61 62 63 |
# File 'lib/uniword/assembly/assembly_manifest.rb', line 55 def initialize(manifest_path, override_variables: {}) @manifest_path = manifest_path @raw_data = load_yaml(manifest_path) validate_structure! parse_manifest apply_variable_overrides(override_variables) end |
Instance Attribute Details
#options ⇒ Hash (readonly)
Returns Additional options.
41 42 43 |
# File 'lib/uniword/assembly/assembly_manifest.rb', line 41 def @options end |
#output_path ⇒ String (readonly)
Returns Path to output file.
29 30 31 |
# File 'lib/uniword/assembly/assembly_manifest.rb', line 29 def output_path @output_path end |
#sections ⇒ Array<Hash> (readonly)
Returns Section configurations.
38 39 40 |
# File 'lib/uniword/assembly/assembly_manifest.rb', line 38 def sections @sections end |
#template_name ⇒ String? (readonly)
Returns Template name.
32 33 34 |
# File 'lib/uniword/assembly/assembly_manifest.rb', line 32 def template_name @template_name end |
#variables ⇒ Hash (readonly)
Returns Template variables.
35 36 37 |
# File 'lib/uniword/assembly/assembly_manifest.rb', line 35 def variables @variables end |
Instance Method Details
#section_list ⇒ Array<Hash>
Get section configurations.
75 76 77 |
# File 'lib/uniword/assembly/assembly_manifest.rb', line 75 def section_list @sections.dup end |
#template? ⇒ Boolean
Check if manifest has a template.
68 69 70 |
# File 'lib/uniword/assembly/assembly_manifest.rb', line 68 def template? !@template_name.nil? end |
#variable(key) ⇒ Object?
Get variable value by key.
83 84 85 |
# File 'lib/uniword/assembly/assembly_manifest.rb', line 83 def variable(key) @variables[key.to_s] end |
#variable?(key) ⇒ Boolean
Check if variable exists.
91 92 93 |
# File 'lib/uniword/assembly/assembly_manifest.rb', line 91 def variable?(key) @variables.key?(key.to_s) end |