Sha256: 2e435b2f141b379be89df0c04c0604ccb9f58ac6af3e469ea1b5d17879a7d9a6

Contents?: true

Size: 1.82 KB

Versions: 1

Compression:

Stored size: 1.82 KB

Contents

module Gretel
  module ViewHelpers
    # Sets the current breadcrumb to be rendered elsewhere. Put it somewhere in the view, preferably in the top, before you render any breadcrumbs HTML:
    #   <%
    #   breadcrumb :category, @category
    #   %>
    def breadcrumb(key = nil, *args)
      if key.nil? || key.is_a?(Hash)
        raise ArgumentError, "The `breadcrumb` method was called with #{key.inspect} as the key. This method is used to set the breadcrumb. Maybe you meant to call the `breadcrumbs` method (with an 's' in the end) which is used to render the breadcrumbs?"
      end
      @_gretel_renderer = Gretel::Renderer.new(self, key, *args)
    end

    # Renders the breadcrumbs HTML, for example in your layout. See the readme for default options.
    #   <%= breadcrumbs pretext: "You are here: " %>
    #
    # If you supply a block, it will yield an array with the breadcrumb links so you can build the breadcrumbs HTML manually:
    #   <% breadcrumbs do |links| %>
    #     <% if links.any? %>
    #       You are here:
    #       <% links.each do |link| %>
    #         <%= link_to link.text, link.url %> (<%= link.key %>)
    #       <% end %>
    #     <% end %>
    #   <% end %>
    def breadcrumbs(options = {}, &block)
      if block_given?
        gretel_renderer.yield_links(options, &block)
      else
        gretel_renderer.render(options)
      end
    end

    # Returns or yields parent breadcrumb (second-to-last in the trail) if it is present.
    def parent_breadcrumb(options = {}, &block)
      if block_given?
        gretel_renderer.yield_parent_breadcrumb(options, &block)
      else
        gretel_renderer.parent_breadcrumb(options)
      end
    end

    private

    # Reference to the Gretel breadcrumbs renderer.
    def gretel_renderer
      @_gretel_renderer ||= Gretel::Renderer.new(self, nil)
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
gretel-3.0.0.beta5 lib/gretel/view_helpers.rb