Class: Html2rss::SST::Document

Inherits:
Data
  • Object
show all
Defined in:
lib/html2rss/sst/document.rb

Overview

Immutable SST document: root node plus relationship index.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Attribute Details

#degradedObject (readonly)

Returns the value of attribute degraded

Returns:

  • (Object)

    the current value of degraded



7
8
9
# File 'lib/html2rss/sst/document.rb', line 7

def degraded
  @degraded
end

#indexObject (readonly)

Returns the value of attribute index

Returns:

  • (Object)

    the current value of index



7
8
9
# File 'lib/html2rss/sst/document.rb', line 7

def index
  @index
end

#node_countObject (readonly)

Returns the value of attribute node_count

Returns:

  • (Object)

    the current value of node_count



7
8
9
# File 'lib/html2rss/sst/document.rb', line 7

def node_count
  @node_count
end

#rootObject (readonly)

Returns the value of attribute root

Returns:

  • (Object)

    the current value of root



7
8
9
# File 'lib/html2rss/sst/document.rb', line 7

def root
  @root
end

Class Method Details

.build(root:, index:, degraded: false, node_count: 0) ⇒ Document

Parameters:

  • root (Node)
  • index (Index)
  • degraded (Boolean) (defaults to: false)

    true when MAX_NODES forced semantic-tag-only mode

  • node_count (Integer) (defaults to: 0)

Returns:

Raises:

  • (ArgumentError)

    when root/index missing



15
16
17
18
19
20
# File 'lib/html2rss/sst/document.rb', line 15

def self.build(root:, index:, degraded: false, node_count: 0)
  raise ArgumentError, 'root is required' unless root.is_a?(Node)
  raise ArgumentError, 'index is required' unless index.is_a?(Index)

  new(root:, index:, degraded: !!degraded, node_count: Integer(node_count))
end