Class: Coradoc::Html::ConverterBase Abstract
- Inherits:
-
Object
- Object
- Coradoc::Html::ConverterBase
- Defined in:
- lib/coradoc/html/converter_base.rb
Overview
Subclass and implement #convert to create a custom converter
Abstract base class for HTML output converters
This class defines the interface that all HTML output converters must implement. It provides common functionality for document validation, configuration building, and HTML output generation.
Defined Under Namespace
Classes: ConfigurationBase, UnsupportedDocumentError, ValidationError
Instance Attribute Summary collapse
-
#config ⇒ Object
readonly
Returns the value of attribute config.
-
#document ⇒ Object
readonly
Returns the value of attribute document.
Class Method Summary collapse
-
.convert(document, config = {}) ⇒ String
Class method to convert a document.
-
.to_file(document, output_path, config = {}) ⇒ String
Class method to convert and write to file.
Instance Method Summary collapse
-
#convert ⇒ String
abstract
Convert the document to HTML.
-
#initialize(document, config = {}) ⇒ ConverterBase
constructor
Initialize a new converter instance.
-
#to_file(output_path) ⇒ String
Convert and write to file.
Constructor Details
#initialize(document, config = {}) ⇒ ConverterBase
Initialize a new converter instance
87 88 89 90 |
# File 'lib/coradoc/html/converter_base.rb', line 87 def initialize(document, config = {}) @document = validate_input(document) @config = build_config(config) end |
Instance Attribute Details
#config ⇒ Object (readonly)
Returns the value of attribute config.
80 81 82 |
# File 'lib/coradoc/html/converter_base.rb', line 80 def config @config end |
#document ⇒ Object (readonly)
Returns the value of attribute document.
80 81 82 |
# File 'lib/coradoc/html/converter_base.rb', line 80 def document @document end |
Class Method Details
.convert(document, config = {}) ⇒ String
Class method to convert a document
123 124 125 |
# File 'lib/coradoc/html/converter_base.rb', line 123 def self.convert(document, config = {}) new(document, config).convert end |
.to_file(document, output_path, config = {}) ⇒ String
Class method to convert and write to file
133 134 135 |
# File 'lib/coradoc/html/converter_base.rb', line 133 def self.to_file(document, output_path, config = {}) new(document, config).to_file(output_path) end |
Instance Method Details
#convert ⇒ String
Subclasses must implement this method
Convert the document to HTML
97 98 99 100 |
# File 'lib/coradoc/html/converter_base.rb', line 97 def convert raise NotImplementedError, "#{self.class.name} must implement #convert method" end |
#to_file(output_path) ⇒ String
Convert and write to file
106 107 108 109 110 111 112 113 114 115 116 |
# File 'lib/coradoc/html/converter_base.rb', line 106 def to_file(output_path) html = convert # Ensure parent directory exists output_dir = File.dirname(output_path) FileUtils.mkdir_p(output_dir) unless output_dir == '.' File.write(output_path, html) output_path end |