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
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
# File lib/ramaze/helper/stack.rb, line 61 61: def answer(alternative = nil) 62: if inside_stack? 63: stack = session[:STACK] 64: target = stack.pop 65: session.delete(:STACK) if stack.empty? 66: redirect(target) 67: elsif alternative 68: redirect(alternative) 69: end 70: end
# File lib/ramaze/helper/stack.rb, line 49 49: def call(this) 50: push(request.fullpath) 51: redirect(this) 52: end
Disabled; run with --debug to generate this.
Generated with the Darkfish Rdoc Generator 1.1.6.