/usr/lib/ruby/1.8/ramaze/helper/flash.rb is in libramaze-ruby1.8 2010.06.18-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 | # Copyright (c) 2008 Michael Fellinger m.fellinger@gmail.com
# All files in this distribution are subject to the terms of the Ruby license.
module Ramaze
# The purpose of this class is to provide an easy way of setting/retrieving
# from the current flash.
#
# Flash is a way to keep a temporary pairs of keys and values for the duration
# of two requests, the current and following.
#
# Very vague Example:
#
# On the first request, for example on registering:
#
# flash[:error] = "You should reconsider your username, it's taken already"
# redirect R(self, :register)
#
# This is the request from the redirect:
#
# do_stuff if flash[:error]
#
# On the request after this, flash[:error] is gone.
module Helper
module Flash
include Innate::Traited
trait :flashbox => "<div class='flash' id='flash_%key'>%value</div>"
# answers with Current.session.flash
def flash
Current.session.flash
end
# Use in your template to display all flash messages that may be stored.
# For example, given you stored:
#
# flash # => { :error => 'Pleae enter your name'
# :info => 'Do you see the fnords?' }
#
# Then a flashbox would display:
#
# <div class='flash' id='flash_error'>Please enter your name</div>
# <div class='flash' id='flash_info'>Do you see the fnords?</div>
#
# This is designed to be customized permanently or per usage:
#
# flashbox("<div class='flash_%key'>%value</div>")
#
# Where any occurrence of %key and %value will be replaced by the actual
# contents of each element of flash
def flashbox(tag = ancestral_trait[:flashbox])
flash.map{|key, *values|
values.flatten.map do |value|
tag.gsub(/%key/, key.to_s).gsub(/%value/, value.to_s)
end
}.flatten.join("\n")
end
end
end
end
|