require 'cgi-extend' require 'options' require 'i18n' class NoPage #{CGI.escapeHTML e.to_s} (#{CGI.escapeHTML e.class.to_s})
"+ e.backtrace.collect( &CGI.method( :escapeHTML)).join( '
') V2H::Data.new [], -'Exception Raised', text end def urlgen *paras paras = Kernel.str_options paras, :pre, :var, :alt, :suf opts = if paras.last.kind_of? Hash o = paras.last.collect do |k, v| "#{k}=#{CGI.escape v.to_s}" \ unless [:pre, :var, :alt, :suf].include? k end.compact.join ';' o == '' ? '' : '?' + o else '' end paras[1] ||= paras[2] paras[2] = paras[3] paras.unshift @link || '' paras[0...4].compact.collect do |i| j = i.kind_of?( Array) ? i.join( '/') : i.to_s j.gsub( /([^a-z0-9_\-\/.,+()])/i) do |c| '%%%02s' % c[0].to_s( 16) end end.join( '/').gsub( /\/+/, '/') + opts end def confirm *paras, &e paras = Kernel.str_options paras, :pre, :var, :alt, :suf, :class, :txt opts = if paras.last.kind_of? Hash o = paras.pop txt = paras[5] || o[:confirm_text] o[:confirm_text] = txt if txt unless o.empty? o = o.collect do |k, v| "#{k}=#{CGI.escape v.to_s}" \ unless [:pre, :var, :alt, :suf, :class, :txt].include? k end.compact.join ';' o == '' ? '' : '?' + o else '' end else '' end paras[1] ||= paras[2] paras[2] = paras[3] paras.unshift 'confirm' paras.unshift @link || '' @cgi.a :href => paras[0...5].join( '/').gsub( /\/+/, '/') + opts, :class => paras[6], &e end def redirect *paras { :redirect => self.urlgen( *paras) }.darkknight $stdout.puts <