Class: Lutaml::Xsd::Spa::OutputStrategy Abstract
- Inherits:
-
Object
- Object
- Lutaml::Xsd::Spa::OutputStrategy
- Defined in:
- lib/lutaml/xsd/spa/output_strategy.rb
Overview
Subclass and implement #write_files to create a concrete output strategy
Base class for output strategies (Strategy Pattern)
Defines the interface for different output modes (single-file vs multi-file). Subclasses implement specific strategies for writing generated documentation to the filesystem.
This implements the Template Method pattern where the overall algorithm is defined in the base class, but specific steps are implemented by subclasses.
Direct Known Subclasses
Instance Attribute Summary collapse
-
#verbose ⇒ Object
readonly
Returns the value of attribute verbose.
Instance Method Summary collapse
-
#initialize(verbose: false) ⇒ OutputStrategy
constructor
Initialize output strategy.
-
#write(html_content, schema_data) ⇒ Array<String>
Write output files (template method).
Constructor Details
#initialize(verbose: false) ⇒ OutputStrategy
Initialize output strategy
31 32 33 |
# File 'lib/lutaml/xsd/spa/output_strategy.rb', line 31 def initialize(verbose: false) @verbose = verbose end |
Instance Attribute Details
#verbose ⇒ Object (readonly)
Returns the value of attribute verbose.
26 27 28 |
# File 'lib/lutaml/xsd/spa/output_strategy.rb', line 26 def verbose @verbose end |
Instance Method Details
#write(html_content, schema_data) ⇒ Array<String>
Write output files (template method)
This method defines the algorithm for writing output files:
-
Prepare output directory
-
Write files using strategy-specific implementation
-
Verify written files
-
Return list of written files
46 47 48 49 50 51 52 53 54 55 |
# File 'lib/lutaml/xsd/spa/output_strategy.rb', line 46 def write(html_content, schema_data) log "Preparing output using #{self.class.name}..." prepare_output files = write_files(html_content, schema_data) verify_files(files) log "✓ Successfully wrote #{files.size} file(s)" files end |