Sha256: a58e7aa461f8f02573ca8521e9708888d26e1b120b5e643ce9a6f1805bf6425c

Contents?: true

Size: 869 Bytes

Versions: 1

Compression:

Stored size: 869 Bytes

Contents

# encoding: utf-8

require 'loaf/crumb_formatter'

module Loaf
  module ViewExtensions
    include Loaf::CrumbFormatter

    # Adds breadcrumbs in a view.
    #
    def add_breadcrumb(name, url)
      _breadcrumbs.push(name, url)
    end

    # Renders breadcrumbs inside view.
    #
    def breadcrumbs(options={}, &block)
      #builder = Loaf::Builder.new(options)
      options = Loaf.config.merge(options)

      _breadcrumbs.each do |crumb|
        name = format_name crumb, options

        url = url_for _process_url_for(crumb.url)

        styles = current_page?(url) ? "#{options[:style_classes]}" : ''

        block.call(name, url, styles)
      end
    end

    private

    def _process_url_for(url)
      if url.is_a?(String) || url.is_a?(Symbol)
        return send url
      else
        return url
      end
    end

  end # ViewExtensions
end # Loaf

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
loaf-0.2.0 lib/loaf/view_extensions.rb