module Actions

Public Instance Methods

capture_path() click to toggle source
# File lib/backpedal/actions.rb, line 11
def capture_path
  session[:tree] = url_for(root_path) if session[:tree].blank?

  tree = session[:tree].split(",")
  previous_page = request.referer
  current_page = request.original_url

  if tree.last == current_page
    # remove this page from the stack if the user was just here(clicked back link)
    tree.pop
    session[:tree] = tree.join(",")
  elsif request.referer.present? and request.referer != tree.last and @@skipped_verbs.exclude? request.referer.split("/").last.split("?")[0]
    tree << previous_page
    session[:tree] = tree.join(",")
  end
end
clear(path) click to toggle source
# File lib/backpedal/actions.rb, line 33
def clear(path)
  session[:tree] = url_for(root_path) if session[:tree].blank?
  tree = session[:tree].split(",")

  tree.delete_if { |x| x = path }
  session[:tree] = tree.join(",")
end
dissolve() click to toggle source
# File lib/backpedal/actions.rb, line 28
def dissolve
              # Erase the navigation stack and restart it at the current controller action.
  session[:tree] = request.original_url
end
stepback(steps = nil) click to toggle source
# File lib/backpedal/actions.rb, line 41
def stepback(steps = nil)
        # Redirect to a specific point in the navigation stack from the controller
        tree = session[:tree].split(",")
        unless steps == nil
                target = tree.reverse[steps - 1]
        else
                target = tree.last
        end
        redirect_to target
end