module Crumbs::Extensions::ActionController::Base

Private Instance Methods

set_crumbs() click to toggle source
# File lib/crumbs/extensions/action_controller/base.rb, line 13
def set_crumbs
  paths = [request.path]
  until paths.first == '/'
    paths.prepend File.dirname(paths.first)
  end
  session[:referers] ||= {}
  url, query = request.url.split(/\/?\?/)
  if query
    session[:referers][url] = query
  end
  @crumbs = []
  paths.each do |path|
    url = "#{request.base_url}#{path}".remove(/\/$/)
    begin
      params = Rails.application.routes.recognize_path(url)
    rescue
      next
    end
    if name = Crumbs.definitions.find("#{params[:controller]}##{params[:action]}", params)
      if query = session[:referers][url]
        url << "?#{query}"
      end
      @crumbs << { name: name, url: url }
    end
  end
end