Class: Coradoc::CoreModel::StructuralElement

Inherits:
Base
  • Object
show all
Defined in:
lib/coradoc/core_model/structural_element.rb

Overview

Base class for structural elements

Represents document structure elements that organize content. Typed subclasses (SectionElement, DocumentElement, etc.) express their role via the class hierarchy — the class IS the type.

Structural elements can contain other elements (blocks, lists, etc.) and can be nested hierarchically to represent document structure.

Instance Attribute Summary collapse

Attributes inherited from Base

#element_attributes, #id, #metadata_entries, #title

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Base

#accept, #attr, #metadata, #semantically_equivalent?, #set_attr, #set_metadata

Instance Attribute Details

#attributesMetadata?

Returns document-level attributes (typed key-value pairs).

Returns:

  • (Metadata, nil)

    document-level attributes (typed key-value pairs)



28
# File 'lib/coradoc/core_model/structural_element.rb', line 28

attribute :attributes, Metadata

#childrenArray<Base>?

Returns child elements (sections, blocks, etc.).

Returns:

  • (Array<Base>, nil)

    child elements (sections, blocks, etc.)



24
# File 'lib/coradoc/core_model/structural_element.rb', line 24

attribute :children, Base, collection: true

#contentString?

Returns text content of the element.

Returns:

  • (String, nil)

    text content of the element



20
# File 'lib/coradoc/core_model/structural_element.rb', line 20

attribute :content, :string

#levelInteger?

Returns hierarchical level (1-6 for sections).

Returns:

  • (Integer, nil)

    hierarchical level (1-6 for sections)



16
# File 'lib/coradoc/core_model/structural_element.rb', line 16

attribute :level, :integer

Class Method Details

.element_type_nameObject



46
47
48
# File 'lib/coradoc/core_model/structural_element.rb', line 46

def element_type_name
  nil
end

Instance Method Details

#document?Boolean

Returns:

  • (Boolean)


35
# File 'lib/coradoc/core_model/structural_element.rb', line 35

def document? = false

#element_typeObject

Derived element_type string for backward compatibility with templates and legacy consumers. Subclasses override this.



41
42
43
# File 'lib/coradoc/core_model/structural_element.rb', line 41

def element_type
  self.class.element_type_name
end

#header?Boolean

Returns:

  • (Boolean)


37
# File 'lib/coradoc/core_model/structural_element.rb', line 37

def header? = false

#heading_levelObject



30
31
32
# File 'lib/coradoc/core_model/structural_element.rb', line 30

def heading_level
  level || 1
end

#preamble?Boolean

Returns:

  • (Boolean)


36
# File 'lib/coradoc/core_model/structural_element.rb', line 36

def preamble? = false

#section?Boolean

Returns:

  • (Boolean)


34
# File 'lib/coradoc/core_model/structural_element.rb', line 34

def section? = false