/usr/lib/ruby/vendor_ruby/simple_navigation/renderer/breadcrumbs.rb is in ruby-simple-navigation 4.0.3-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 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 55 56 57 58 59 60 61 62 63 64 65 66 | module SimpleNavigation
module Renderer
# Renders an ItemContainer as a <div> element and its containing items as
# <a> elements.
# It only renders 'selected' elements.
#
# By default, the renderer sets the item's key as dom_id for the rendered
# <a> element unless the config option <tt>autogenerate_item_ids</tt> is
# set to false.
#
# The id can also be explicitely specified by setting the id in the
# html-options of the 'item' method in the config/navigation.rb file.
# The ItemContainer's dom_attributes are applied to the surrounding <div>
# element.
class Breadcrumbs < SimpleNavigation::Renderer::Base
def render(item_container)
content = a_tags(item_container).join(join_with)
content_tag(:div,
prefix_for(content) + content,
item_container.dom_attributes)
end
protected
def a_tags(item_container)
item_container.items.each_with_object([]) do |item, list|
next unless item.selected?
list << tag_for(item)
if include_sub_navigation?(item)
list.concat a_tags(item.sub_navigation)
end
end
end
def join_with
@join_with ||= options[:join_with] || ' '
end
def suppress_link?(item)
super || (options[:static_leaf] && item.active_leaf_class)
end
def prefix_for(content)
if !content.empty? && options[:prefix]
options[:prefix]
else
''
end
end
# Extracts the options relevant for the generated link
#
def link_options_for(item)
if options[:allow_classes_and_ids]
opts = super
opts[:id] &&= "breadcrumb_#{opts[:id]}"
opts
else
html_options = item.html_options.except(:class, :id)
{ method: item.method }.merge(html_options)
end
end
end
end
end
|