Class: Coradoc::Docx::Transform::Rule
- Inherits:
-
Object
- Object
- Coradoc::Docx::Transform::Rule
- Defined in:
- lib/coradoc/docx/transform/rule.rb
Overview
Base class for OOXML → CoreModel transform rules.
Each rule handles one OOXML element type and produces a CoreModel node. Rules are registered in RuleRegistry and dispatched by the ToCoreModel orchestrator.
Subclasses must implement:
- matches?(element) → true if this rule handles the element
- apply(element, context) → CoreModel node or Array of nodes
Direct Known Subclasses
Coradoc::Docx::Transform::Rules::BookmarkRule, Coradoc::Docx::Transform::Rules::BreakRule, Coradoc::Docx::Transform::Rules::FootnoteRule, Coradoc::Docx::Transform::Rules::HeadingRule, Coradoc::Docx::Transform::Rules::HyperlinkRule, Coradoc::Docx::Transform::Rules::ImageRule, Coradoc::Docx::Transform::Rules::ListItemRule, Coradoc::Docx::Transform::Rules::MathRule, Coradoc::Docx::Transform::Rules::ParagraphRule, Coradoc::Docx::Transform::Rules::ProofErrorRule, Coradoc::Docx::Transform::Rules::RunRule, Coradoc::Docx::Transform::Rules::SimpleFieldRule, Coradoc::Docx::Transform::Rules::StructuredDocumentTagRule, Coradoc::Docx::Transform::Rules::TableRule, Coradoc::Docx::Transform::Rules::TextRule
Instance Method Summary collapse
-
#apply(element, context) ⇒ Coradoc::CoreModel::Base, ...
Transform an OOXML element to a CoreModel node.
-
#matches?(element) ⇒ Boolean
Check if this rule handles the given element.
-
#priority ⇒ Integer
Rule priority — higher priority rules are checked first.
Instance Method Details
#apply(element, context) ⇒ Coradoc::CoreModel::Base, ...
Transform an OOXML element to a CoreModel node
43 44 45 |
# File 'lib/coradoc/docx/transform/rule.rb', line 43 def apply(element, context) raise NotImplementedError, "#{self.class}#apply not implemented" end |
#matches?(element) ⇒ Boolean
Check if this rule handles the given element
34 35 36 |
# File 'lib/coradoc/docx/transform/rule.rb', line 34 def matches?(element) raise NotImplementedError, "#{self.class}#matches? not implemented" end |
#priority ⇒ Integer
Rule priority — higher priority rules are checked first. Override in subclasses when needed.
51 52 53 |
# File 'lib/coradoc/docx/transform/rule.rb', line 51 def priority 0 end |