lib/nanoc/helpers/breadcrumbs.rb in nanoc-3.6.1 vs lib/nanoc/helpers/breadcrumbs.rb in nanoc-3.6.2
- old
+ new
@@ -13,27 +13,22 @@
# will contain a `nil` element.
#
# @return [Array] The breadcrumbs, starting with the root item and ending
# with the item itself
def breadcrumbs_trail
- breadcrumbs_for_identifier(@item.identifier)
- end
+ trail = []
+ idx_start = 0
- def item_with_identifier(identifier)
- @identifier_cache ||= {}
- @identifier_cache[identifier] ||= begin
- @items.find { |i| i.identifier == identifier }
- end
- end
+ loop do
+ idx = @item.identifier.index('/', idx_start)
+ break if idx.nil?
- def breadcrumbs_for_identifier(identifier)
- @breadcrumbs_cache ||= {}
- @breadcrumbs_cache[identifier] ||= begin
- head = (identifier == '/' ? [] : breadcrumbs_for_identifier(identifier.sub(/[^\/]+\/$/, '')) )
- tail = [ item_with_identifier(identifier) ]
-
- head + tail
+ idx_start = idx+1
+ identifier = @item.identifier[0..idx]
+ trail << @items[identifier]
end
+
+ trail
end
end
end