Sha256: 698e2f01508407986968b055a55948eff12b34e7581ab8cad7c427b20965b8a5

Contents?: true

Size: 1.38 KB

Versions: 6

Compression:

Stored size: 1.38 KB

Contents

# frozen_string_literal: true

require 'eac_ruby_utils/core_ext'

module Avm
  module EacAsciidoctorBase0
    module Instances
      class Build
        class Document
          class BreadcrumbsMacroValue
            enable_method_class
            common_constructor :document

            NODE_SEPARATOR = ' ยป '
            ROOT_DOCUMENT_TITLE = 'Home'

            # @return [Array<String>]
            def result
              trail_nodes.join(NODE_SEPARATOR)
            end

            def trail_nodes
              r = []
              current = document
              while current.present?
                r.unshift(Node.new(document, current))
                current = current.parent_document
              end
              r
            end

            class Node
              common_constructor :current, :document

              # @return [String]
              def address
                current.href_to_other_body(document)
              end

              # @return [String]
              def title
                if document.parent_document.present?
                  document.source_document.title
                else
                  ROOT_DOCUMENT_TITLE
                end
              end

              # @return [String]
              def to_s
                "link:#{address}[#{title}]"
              end
            end
          end
        end
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 2 rubygems

Version Path
eac_tools-0.60.3 sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/build/document/breadcrumbs_macro_value.rb
eac_tools-0.60.2 sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/build/document/breadcrumbs_macro_value.rb
avm-eac_asciidoctor_base0-0.18.1 lib/avm/eac_asciidoctor_base0/instances/build/document/breadcrumbs_macro_value.rb
eac_tools-0.60.1 sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/build/document/breadcrumbs_macro_value.rb
avm-eac_asciidoctor_base0-0.18.0 lib/avm/eac_asciidoctor_base0/instances/build/document/breadcrumbs_macro_value.rb
eac_tools-0.60.0 sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/build/document/breadcrumbs_macro_value.rb