module ActionSegue::SegueRegistration

Public Instance Methods

clear_segue(id) click to toggle source

Remove a segue from the stack

# File lib/action_segue/segue_registration.rb, line 29
def clear_segue(id)
  Rails.logger.debug "[ActionSegue] clearing segue '#{id}'"
  session[:action_segues].delete id
end
complete_current_segue_url(fallback:) click to toggle source

Completes the last segue, regardless of what it was

# File lib/action_segue/segue_registration.rb, line 35
def complete_current_segue_url(fallback:)
  complete_segue_url session[:action_segues].try(:keys).try(:last), fallback: fallback
end
complete_segue_url(id, fallback:) click to toggle source

Completes the segue and returns either the params to redirect to the segue start point, all the fallback if the segue is not in progress.

# File lib/action_segue/segue_registration.rb, line 17
def complete_segue_url(id, fallback:)
  if session[:action_segues].present? && session[:action_segues][id].present?
    segue = clear_segue id
    Rails.logger.debug "[ActionSegue] completed '#{id}'"
    url_for segue.params
  else
    Rails.logger.debug "[ActionSegue] no segue matched '#{id}'"
    fallback
  end
end