Class: Canon::DataModel

Inherits:
Object
  • Object
show all
Defined in:
lib/canon/data_model.rb

Overview

Abstract base class for format-specific data models Provides common interface for parsing and serializing documents

Direct Known Subclasses

Html::DataModel, Xml::DataModel

Class Method Summary collapse

Class Method Details

.parse(input) ⇒ Object

Parse input into data model Must be implemented by subclasses

Parameters:

  • input (String)

    Input content to parse

Returns:

  • (Object)

    Parsed data model representation

Raises:

  • (NotImplementedError)

    if not implemented by subclass



14
15
16
# File 'lib/canon/data_model.rb', line 14

def parse(input)
  raise NotImplementedError, "#{self} must implement #parse"
end

.serialize(node) ⇒ String

Serialize data model node Must be implemented by subclasses

Parameters:

  • node (Object)

    Node to serialize

Returns:

  • (String)

    Serialized representation

Raises:

  • (NotImplementedError)

    if not implemented by subclass



24
25
26
# File 'lib/canon/data_model.rb', line 24

def serialize(node)
  raise NotImplementedError, "#{self} must implement #serialize"
end