Module: SimpleWorkflow::Detour
- Included in:
- Controller, Helper, Middleware
- Defined in:
- lib/simple_workflow/detour.rb
Overview
Utility methods to manage the breadcrumb history
Instance Method Summary collapse
- #pop_detour(session) ⇒ Object
- #reset_workflow(session) ⇒ Object
- #store_detour_in_session(session, options) ⇒ Object
Instance Method Details
#pop_detour(session) ⇒ Object
14 15 16 17 18 19 20 21 |
# File 'lib/simple_workflow/detour.rb', line 14 def pop_detour(session) detours = session[:detours] return nil unless detours detour = detours.pop Rails.logger.debug "popped detour: #{detour.inspect} #{session[:detours].size} more" reset_workflow(session) if detours.empty? detour end |
#reset_workflow(session) ⇒ Object
23 24 25 |
# File 'lib/simple_workflow/detour.rb', line 23 def reset_workflow(session) session.delete(:detours) end |
#store_detour_in_session(session, options) ⇒ Object
3 4 5 6 7 8 9 10 11 12 |
# File 'lib/simple_workflow/detour.rb', line 3 def store_detour_in_session(session, ) if session[:detours] && session[:detours].last == Rails.logger.try(:debug, "Ignored duplicate detour: #{.inspect}") return end session[:detours] ||= [] session[:detours] << Rails.logger .try(:debug, "Added detour (#{session[:detours].try(:size) || 0}): #{.inspect}") end |