# = htmlhelper.rb
#
# == Copyright (c) 2005 George Moschovitis and Thomas Sawyer
#
# Ruby License
#
# This module is free software. You may use, modify, and/or redistribute this
# software under the same terms as Ruby.
#
# This program is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
# FOR A PARTICULAR PURPOSE.
#
# == Author(s)
#
# * George Moschovitis
# * Thomas Sawyer
# Author:: George Moschovitis and Thomas Sawyer
# Copyright:: Copyright (c) 2005 George Moschovitis and Thomas Sawyer
# License:: Ruby License
# = HTMLHelper
#
# Helper methods for working with CGI forms and HTML/XHTML documents.
#
# == Synopsis
#
# # TODO
#
require 'cgi' # TODO deprecate use
require 'facets/more/xmlhelper.rb'
module HTMLHelper
include XMLHelper
###############
module_function
###############
# Create an hidden input field through which an object can can be marshalled.
# This makes it very easy to pass from data betwenn requests.
def marshal_to_cgi(name, iobj)
data = CGI.escape(Marshal.dump(iobj))
return %Q{\n}
end
# Create an hidden input field through which an object can can be marshalled.
# This makes it very easy to pass from data between requests.
def marshal_from_cgi(name)
if self.params.has_key?("__#{name}__")
return Marshal.load(CGI.unescape(self["__#{name}__"][0]))
end
end
# Are these two good enough to replace CGI.escape?
# Return an html "safe" version of the string,
# where every &, < and > are replaced with appropriate entities.
def esc(str)
str.gsub(/&/,'&').gsub(/,'<').gsub(/>/,'>')
end
# Calls #esc, and then further replaces carriage returns and quote characters with entities.
def escformat(str)
esc(str).gsub(/[\r\n]+/,'
').gsub(%r|"|,'"').gsub(%r|'|,''')
end
end
=begin
if defined? CGI
class CGI
include CGISupport
class << self
alias :escape_html :escapeHTML
alias :unescape_html :unescapeHTML
alias :escape_element :escapeElement
alias :unescape_element :unescapeElement
end
end
end
if defined? FCGI
class FCGI
include CGISupport
end
end
=end