Class: Coradoc::AsciiDoc::Model::Header

Inherits:
Base
  • Object
show all
Includes:
Anchorable
Defined in:
lib/coradoc/asciidoc/model/header.rb

Overview

Document header containing title and metadata.

The Header represents the document-level metadata including the main title, author information, and revision details. This corresponds to the AsciiDoc header line (e.g., ‘= Document Title`) and associated metadata.

Examples:

Create a simple header

header = Coradoc::AsciiDoc::Model::Header.new(title: "My Document")

Create a header with author and revision

header = Coradoc::AsciiDoc::Model::Header.new(
  title: "My Document",
  author: Coradoc::AsciiDoc::Model::Author.new("John Doe"),
  revision: Coradoc::AsciiDoc::Model::Revision.new("1.0", "2024-01-01")
)

Instance Attribute Summary collapse

Attributes inherited from Base

#id

Instance Method Summary collapse

Methods included from Anchorable

#default_anchor, #gen_anchor, included, #initialize

Methods inherited from Base

#block_level?, #inline?, #serialize_content, #simplify_block_content, #to_adoc, #to_h, visit, #visit

Instance Attribute Details

#authorAuthor? (readonly)

Returns Document author information.

Returns:

  • (Author, nil)

    Document author information



29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# File 'lib/coradoc/asciidoc/model/header.rb', line 29

class Header < Base
  include Coradoc::AsciiDoc::Model::Anchorable

  attribute :title, Coradoc::AsciiDoc::Model::Title
  attribute :author, Coradoc::AsciiDoc::Model::Author
  attribute :revision, Coradoc::AsciiDoc::Model::Revision

  def validate
    validate_author_type
    validate_revision_type
  end

  private

  def validate_author_type
    return if author.nil? || author.is_a?(Coradoc::AsciiDoc::Model::Author)

    raise TypeError, "author must be a Coradoc::AsciiDoc::Model::Author, got #{author.class}"
  end

  def validate_revision_type
    return if revision.nil? || revision.is_a?(Coradoc::AsciiDoc::Model::Revision)

    raise TypeError, "revision must be a Coradoc::AsciiDoc::Model::Revision, got #{revision.class}"
  end
end

#revisionRevision? (readonly)

Returns Document revision information (version, date).

Returns:

  • (Revision, nil)

    Document revision information (version, date)



29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# File 'lib/coradoc/asciidoc/model/header.rb', line 29

class Header < Base
  include Coradoc::AsciiDoc::Model::Anchorable

  attribute :title, Coradoc::AsciiDoc::Model::Title
  attribute :author, Coradoc::AsciiDoc::Model::Author
  attribute :revision, Coradoc::AsciiDoc::Model::Revision

  def validate
    validate_author_type
    validate_revision_type
  end

  private

  def validate_author_type
    return if author.nil? || author.is_a?(Coradoc::AsciiDoc::Model::Author)

    raise TypeError, "author must be a Coradoc::AsciiDoc::Model::Author, got #{author.class}"
  end

  def validate_revision_type
    return if revision.nil? || revision.is_a?(Coradoc::AsciiDoc::Model::Revision)

    raise TypeError, "revision must be a Coradoc::AsciiDoc::Model::Revision, got #{revision.class}"
  end
end

#titleString (readonly)

Returns The main document title.

Returns:

  • (String)

    The main document title



29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# File 'lib/coradoc/asciidoc/model/header.rb', line 29

class Header < Base
  include Coradoc::AsciiDoc::Model::Anchorable

  attribute :title, Coradoc::AsciiDoc::Model::Title
  attribute :author, Coradoc::AsciiDoc::Model::Author
  attribute :revision, Coradoc::AsciiDoc::Model::Revision

  def validate
    validate_author_type
    validate_revision_type
  end

  private

  def validate_author_type
    return if author.nil? || author.is_a?(Coradoc::AsciiDoc::Model::Author)

    raise TypeError, "author must be a Coradoc::AsciiDoc::Model::Author, got #{author.class}"
  end

  def validate_revision_type
    return if revision.nil? || revision.is_a?(Coradoc::AsciiDoc::Model::Revision)

    raise TypeError, "revision must be a Coradoc::AsciiDoc::Model::Revision, got #{revision.class}"
  end
end

Instance Method Details

#validateObject



36
37
38
39
# File 'lib/coradoc/asciidoc/model/header.rb', line 36

def validate
  validate_author_type
  validate_revision_type
end