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

answer(alternative = nil)

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

call(this)
inside_stack?()

check if the stack has something inside.

push(frame)

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

[Validate]