Sha256: 04a5ba362c922d21c4db653a8928af5b52581b55629281a203fb7768a3213fc8

Contents?: true

Size: 885 Bytes

Versions: 1

Compression:

Stored size: 885 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 Loaf::Crumb.new(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.1 lib/loaf/view_extensions.rb