Module: SimpleWorkflow::Detour
- Included in:
- Controller, Helper, Middleware
- Defined in:
- lib/simple_workflow/detour.rb
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
12 13 14 15 16 17 18 19 |
# File 'lib/simple_workflow/detour.rb', line 12 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
21 22 23 |
# File 'lib/simple_workflow/detour.rb', line 21 def reset_workflow(session) session.delete(:detours) end |
#store_detour_in_session(session, options) ⇒ Object
2 3 4 5 6 7 8 9 10 |
# File 'lib/simple_workflow/detour.rb', line 2 def store_detour_in_session(session, ) if session[:detours] && session[:detours].last == Rails.logger.try(:debug, "Ignored duplicate detour: #{options.inspect}") return end session[:detours] ||= [] session[:detours] << Rails.logger.try(:debug, "Added detour (#{session[:detours].try(:size) || 0}): #{options.inspect}") end |