<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>spec/public/controller/controllers/redirect.rb</filename>
    </added>
    <added>
      <filename>spec/public/controller/redirect_spec.rb</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -118,13 +118,21 @@ module Merb
     #   redirect(&quot;/posts/34&quot;)
     #   redirect(&quot;http://www.merbivore.com/&quot;)
     #   redirect(&quot;http://www.merbivore.com/&quot;, true)
-    def redirect(url, permanent = false)
-      self.status = permanent ? 301 : 302
+    def redirect(url, message = nil)
+      if message
+        notice = Merb::Request.escape([Marshal.dump(message)].pack(&quot;m&quot;))
+        url = url =~ /\?/ ? &quot;#{url}&amp;_message=#{notice}&quot; : &quot;#{url}?_message=#{notice}&quot;
+      end
+      self.status = 302
       Merb.logger.info(&quot;Redirecting to: #{url} (#{self.status})&quot;)
       headers['Location'] = url
       &quot;&lt;html&gt;&lt;body&gt;You are being &lt;a href=\&quot;#{url}\&quot;&gt;redirected&lt;/a&gt;.&lt;/body&gt;&lt;/html&gt;&quot;
     end
     
+    def message
+      @_message = defined?(@_message) ? @_message : request.message
+    end
+    
     # Sends a file over HTTP.  When given a path to a file, it will set the
     # right headers so that the static file is served directly.
     #</diff>
      <filename>lib/merb-core/controller/mixins/controller.rb</filename>
    </modified>
    <modified>
      <diff>@@ -168,6 +168,15 @@ module Merb
         h
       end
     end
+    
+    def message
+      return {} unless params[:_message]
+      begin
+        Marshal.load(Merb::Request.unescape(params[:_message]).unpack(&quot;m&quot;).first)
+      rescue ArgumentError
+        {}
+      end
+    end
 
     # Resets the params to a nil value.
     def reset_params!</diff>
      <filename>lib/merb-core/dispatch/request.rb</filename>
    </modified>
    <modified>
      <diff>@@ -6,5 +6,6 @@ require File.join(__DIR__, &quot;controllers&quot;, &quot;base&quot;)
 require File.join(__DIR__, &quot;controllers&quot;, &quot;responder&quot;)
 require File.join(__DIR__, &quot;controllers&quot;, &quot;display&quot;)
 require File.join(__DIR__, &quot;controllers&quot;, &quot;authentication&quot;)
+require File.join(__DIR__, &quot;controllers&quot;, &quot;redirect&quot;)
 
 Merb.start :environment =&gt; 'test'
\ No newline at end of file</diff>
      <filename>spec/public/controller/spec_helper.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>950ad54582e03bbf174498e21b2aa3254c1ae8fb</id>
    </parent>
  </parents>
  <author>
    <name>Yehuda Katz</name>
    <email>wycats@gmail.com</email>
  </author>
  <url>http://github.com/wycats/merb-core/commit/5ae0124fd58464e668896335c5015b786fbb591c</url>
  <id>5ae0124fd58464e668896335c5015b786fbb591c</id>
  <committed-date>2008-07-09T16:17:07-07:00</committed-date>
  <authored-date>2008-07-09T16:17:07-07:00</authored-date>
  <message>Adds message support (like flash in Rails but with somewhat different semantics)</message>
  <tree>af594e0b32d92c94229fc0f07099e8658e058e10</tree>
  <committer>
    <name>Yehuda Katz</name>
    <email>wycats@gmail.com</email>
  </committer>
</commit>
