Sha256: 828d8c26ec13cd34a2a7137fb900cc59e238ca66feacb570b00db5f3532448ea

Contents?: true

Size: 1.3 KB

Versions: 50

Compression:

Stored size: 1.3 KB

Contents

# frozen_string_literal: true

require 'avm/eac_asciidoctor_base0/instances/macros/base'
require 'eac_ruby_utils/core_ext'

module Avm
  module EacAsciidoctorBase0
    module Instances
      module Macros
        class Breadcrumbs < ::Avm::EacAsciidoctorBase0::Instances::Macros::Base
          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

Version data entries

50 entries across 50 versions & 2 rubygems

Version Path
avm-eac_asciidoctor_base0-0.25.0 lib/avm/eac_asciidoctor_base0/instances/macros/breadcrumbs.rb
eac_tools-0.97.0 sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/macros/breadcrumbs.rb
avm-eac_asciidoctor_base0-0.24.0 lib/avm/eac_asciidoctor_base0/instances/macros/breadcrumbs.rb
eac_tools-0.96.0 sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/macros/breadcrumbs.rb
avm-eac_asciidoctor_base0-0.23.0 lib/avm/eac_asciidoctor_base0/instances/macros/breadcrumbs.rb
eac_tools-0.88.0 sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/macros/breadcrumbs.rb
eac_tools-0.87.0 sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/macros/breadcrumbs.rb
avm-eac_asciidoctor_base0-0.22.1 lib/avm/eac_asciidoctor_base0/instances/macros/breadcrumbs.rb
eac_tools-0.86.13 sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/macros/breadcrumbs.rb
avm-eac_asciidoctor_base0-0.22.0 lib/avm/eac_asciidoctor_base0/instances/macros/breadcrumbs.rb
eac_tools-0.85.0 sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/macros/breadcrumbs.rb
eac_tools-0.84.2 sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/macros/breadcrumbs.rb
eac_tools-0.84.1 sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/macros/breadcrumbs.rb
avm-eac_asciidoctor_base0-0.21.0 lib/avm/eac_asciidoctor_base0/instances/macros/breadcrumbs.rb
eac_tools-0.84.0 sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/macros/breadcrumbs.rb
avm-eac_asciidoctor_base0-0.20.0 lib/avm/eac_asciidoctor_base0/instances/macros/breadcrumbs.rb
eac_tools-0.83.0 sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/macros/breadcrumbs.rb
eac_tools-0.82.0 sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/macros/breadcrumbs.rb
eac_tools-0.81.0 sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/macros/breadcrumbs.rb
eac_tools-0.80.0 sub/avm-eac_asciidoctor_base0/lib/avm/eac_asciidoctor_base0/instances/macros/breadcrumbs.rb