Module Ramaze::Helper::Stack
In: lib/ramaze/helper/stack.rb

Provides an call/answer mechanism, this is useful for example in a login-system.

It is basically good to redirect temporarly somewhere else without forgetting where you come from and offering a nice way to get back to the last urls.

Example:

class AuthController < Controller

  helper :stack

  def login pass
    if pass == 'password'
      session[:logged_in] = true
      answer '/'
    else
      "failed"
    end
  end

  def logged_in?
    !!session[:logged_in]
  end

end

class ImportantController < Controller

  helper :stack

  def secret_information
    call :login unless logged_in?
    "Agent X is assigned to fight the RubyNinjas"
  end

end

Methods

answer   call   inside_stack?   push  

Public Instance methods

return to the last location on session[:STACK] The optional alternative paramter will be used to redirect in case you are not inside_stack? If the session has no stack and no alternative is given this won‘t do anything

check if the stack has something inside.

redirect to another location and pushing the current location on the session[:STACK]

[Validate]