Sha256: 2eaea040bb3f4f7ad7d1e86574e7d779b6ba509d31e010c1479f7b7186e680ac
Contents?: true
Size: 1.51 KB
Versions: 3
Compression:
Stored size: 1.51 KB
Contents
module Seiten module HTML class Breadcrumb attr_reader :body def initialize(view_context, page:, separator: '>', html: {}) @view_context = view_context @current_page = page @separator = separator @html_options = Seiten.config[:html].deep_merge(html || {}) @body = build_navigation if @current_page end private def build_navigation classes = Seiten::HTML::Helpers.build_classes(class_options: @html_options[:breadcrumb], modifier_options: @html_options[:modifier]) @view_context.content_tag(:ul, class: classes) do pages = @current_page.breadcrumbs.each_with_index.map do |page, index| build_page_element(page, index) end @view_context.safe_join(pages) end end def build_page_element(page, index) modifiers = page == @current_page ? [:current] : [] classes = Seiten::HTML::Helpers.build_classes(:item, modifiers: modifiers, class_options: @html_options[:breadcrumb], modifier_options: @html_options[:modifier]) @view_context.content_tag :li, class: classes do if @separator && index.positive? sep_class = Seiten::HTML::Helpers.build_classes(:separator, class_options: @html_options[:breadcrumb]) span = @view_context.content_tag(:span, @separator, class: sep_class) end link = @view_context.link_to_seiten_page(page) @view_context.safe_join([span, link]) end end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
seiten-1.0.2 | lib/seiten/html/breadcrumb.rb |
seiten-1.0.1 | lib/seiten/html/breadcrumb.rb |
seiten-1.0.0 | lib/seiten/html/breadcrumb.rb |