Sha256: c877d9215ee9984d21894aecedc05ab0ea1297f3c5e2bdb262dbe6e9d12efd9a

Contents?: true

Size: 816 Bytes

Versions: 2

Compression:

Stored size: 816 Bytes

Contents

# frozen_string_literal: true

class Breadcrumbs
  module Render
    class List < Base # :nodoc: all
      def render
        options = {class: "breadcrumbs"}.merge(default_options)

        tag(list_style, options) do
          html = []
          items = breadcrumbs.items
          size = items.size

          items.each_with_index do |item, i|
            html << render_item(item, i, size)
          end

          html.join.html_safe
        end
      end

      def list_style
        :ul
      end

      def render_item(item, i, size)
        css = []
        css << "first" if i.zero?
        css << "last" if i == size - 1
        css << "item-#{i}"

        text, url, options = *item
        text = wrap_item(url, text, options)
        tag(:li, text, class: css.join(" "))
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
breadcrumbs-0.3.0 lib/breadcrumbs/render/list.rb
breadcrumbs-0.2.0 lib/breadcrumbs/render/list.rb