<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -1,4 +1,4 @@
-== 0.0.1 2009-06-03
+== 0.0.1 2009-06-08
 
 * 1 major enhancement:
   * Initial release</diff>
      <filename>History.txt</filename>
    </modified>
    <modified>
      <diff>@@ -2,7 +2,7 @@
 &lt;script type=&quot;text/javascript&quot; charset=&quot;utf-8&quot;&gt;
   &lt;%= sammy_js %&gt;
   (function($) {
-    var app = $.sammy(function() { with(this) {
+     app = $.sammy(function() { with(this) {
 
       &lt;% @sammy_options.each do |option, value| %&gt;
       this.&lt;%= option %&gt; = &lt;%= value.inspect %&gt;;
@@ -13,6 +13,25 @@
         partial(params['splat'] + '?_sammy=true');
       }});
       
+      post(/^(.*)$/, function() { with(this) {
+        try {
+        var context = this;
+        trigger('loading');
+        $.ajax({
+          type: 'post',
+          url: this.params['splat'][0], 
+          data: this.params.toHash(), 
+          success: function(data) {
+            context.app.swap(data);
+            context.trigger('changed');
+          }
+        });
+      } catch(e) {
+        this.log(e);
+      }
+        return false;
+      }});
+      
       bind('changed', function() { with(this) {
         $('a').attr('href', function() {
           var href = $(this).attr('href');
@@ -23,7 +42,7 @@
           }
         });
       }});
-      
+            
     }});
     
     $(function() {</diff>
      <filename>lib/sinatra/sammy.erb</filename>
    </modified>
    <modified>
      <diff>@@ -24,7 +24,7 @@ module Sinatra
       end
       
       def sammy_js
-        File.read(vendor_path('sammy.js'))
+        File.read(vendor_path('sammy.min.js'))
       end
       
       private</diff>
      <filename>lib/sinatra/sammy.rb</filename>
    </modified>
    <modified>
      <diff>@@ -14,4 +14,9 @@ class TestApp &lt; Sinatra::Default
     haml :user
   end
   
+  post '/user' do
+    @name = params['name'] + &quot; POSTED&quot;
+    haml :user
+  end
+  
 end</diff>
      <filename>spec/test_app/test_app.rb</filename>
    </modified>
    <modified>
      <diff>@@ -4,4 +4,10 @@
 %h2 Check out these users!
 - ['aq', 'team_lazer'].each do |name|
   %p
-    %a{:href =&gt; &quot;/user/#{name}&quot;}= name
\ No newline at end of file
+    %a{:href =&gt; &quot;/user/#{name}&quot;}= name
+
+%h2 Or create your own!
+
+%form{:method =&gt; 'post', :action =&gt; '/user'}
+  %input{:type =&gt; 'text', :name =&gt; 'name'}
+  %input{:type =&gt; 'submit', :value =&gt; 'Go!'}
\ No newline at end of file</diff>
      <filename>spec/test_app/views/index.haml</filename>
    </modified>
    <modified>
      <diff>@@ -106,6 +106,17 @@
       return $.extend({}, obj);
     },
     
+    // Returns a copy of the object with Functions removed.
+    toHash: function() {
+      var json = {}; 
+      this.each(function(k,v) {
+        if (!$.isFunction(v)) {
+          json[k] = v
+        }
+      });
+      return json;
+    },
+    
     // Renders a simple HTML version of this Objects attributes.
     // Does not render functions.
     // For example. Given this Sammy.Object:
@@ -116,7 +127,7 @@
     toHTML: function() {
       var display = &quot;&quot;;
       this.each(function(k, v) {
-        if (v.constructor != Function) {
+        if (!$.isFunction(v)) {
           display += &quot;&lt;strong&gt;&quot; + k + &quot;&lt;/strong&gt; &quot; + v + &quot;&lt;br /&gt;&quot;;
         }
       });
@@ -634,6 +645,8 @@
         // reset last location
         this.last_location = location;
       } catch(e) {
+        // reset last location
+        this.last_location = location;
         // unless the error is a 404 and 404s are silenced
         if (e.toString().match(/^404/) &amp;&amp; this.silence_404) {
           return returned;</diff>
      <filename>vendor/sammy.js</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,5 @@
 // -- Sammy --
 // http://code.quirkey.com/sammy
-// Version: 0.1.4
-// Built: Wed Jun 03 16:29:52 -0400 2009
-(function(){var a=false,b=/xyz/.test(function(){xyz})?/\b_super\b/:/.*/;this.Class=function(){};Class.extend=function(g){var f=this.prototype;a=true;var e=new this();a=false;for(var d in g){e[d]=typeof g[d]==&quot;function&quot;&amp;&amp;typeof f[d]==&quot;function&quot;&amp;&amp;b.test(g[d])?(function(h,i){return function(){var k=this._super;this._super=f[h];var j=i.apply(this,arguments);this._super=k;return j}})(d,g[d]):g[d]}function c(){if(!a&amp;&amp;this.init){this.init.apply(this,arguments)}}c.prototype=e;c.constructor=c;c.extend=arguments.callee;return c}})();(function(a){a.srender=function(b,c,d){a.srender.cache=a.srender.cache||{};if(a.srender.cache[b]){fn=a.srender.cache[b]}else{if(typeof c==&quot;undefined&quot;){return false}fn=a.srender.cache[b]=new Function(&quot;obj&quot;,&quot;var p=[],print=function(){p.push.apply(p,arguments);};with(obj){p.push('&quot;+c.replace(/[\r\t\n]/g,&quot; &quot;).split(&quot;&lt;%&quot;).join(&quot;\t&quot;).replace(/((^|%&gt;)[^\t]*)'/g,&quot;$1\r&quot;).replace(/\t=(.*?)%&gt;/g,&quot;',$1,'&quot;).split(&quot;\t&quot;).join(&quot;');&quot;).split(&quot;%&gt;&quot;).join(&quot;p.push('&quot;).split(&quot;\r&quot;).join(&quot;\\'&quot;)+&quot;');}return p.join('');&quot;)}if(typeof d!=&quot;undefined&quot;){return fn(d)}else{return fn}}})(jQuery);(function(c){var a=&quot;([^/]+)&quot;;var b=/:([\w\d]+)/g;Sammy={};Sammy.VERSION=&quot;0.1.4&quot;;Sammy.Object=Class.extend({init:function(d){c.extend(this,d)},clone:function(d){if(typeof d==&quot;undefined&quot;){d=this}return c.extend({},d)},toHTML:function(){var d=&quot;&quot;;this.each(function(f,e){if(e.constructor!=Function){d+=&quot;&lt;strong&gt;&quot;+f+&quot;&lt;/strong&gt; &quot;+e+&quot;&lt;br /&gt;&quot;}});return d},uuid:function(){if(typeof this._uuid==&quot;undefined&quot;||!this._uuid){this._uuid=(new Date()).getTime()+&quot;-&quot;+parseInt(Math.random()*1000)}return this._uuid},each:function(){var f,e,g,d;f=this;if(typeof arguments[0]!=&quot;function&quot;){e=arguments[0];g=arguments[1]}else{e=this;g=arguments[0]}d=function(){return g.apply(f,arguments)};c.each(e,d)},log:function(){var d=[].slice.call(arguments);d.unshift(&quot;[&quot;+Date()+&quot;]&quot;);if(typeof window.console!=&quot;undefined&quot;){window.console.log.apply(window.console,d)}else{if(typeof console!=&quot;undefined&quot;){console.log.apply(this,d)}else{}}}});Sammy.Application=Sammy.Object.extend({ROUTE_VERBS:[&quot;get&quot;,&quot;post&quot;,&quot;put&quot;,&quot;delete&quot;],APP_EVENTS:[&quot;run&quot;,&quot;unload&quot;,&quot;lookup-route&quot;,&quot;run-route&quot;,&quot;route-found&quot;,&quot;event-context-before&quot;,&quot;event-context-after&quot;,&quot;changed&quot;,&quot;error-404&quot;,&quot;check-form-submission&quot;,&quot;redirect&quot;],_last_route:null,_running:false,data_store_name:&quot;sammy-app&quot;,element_selector:&quot;body&quot;,debug:false,silence_404:true,run_interval_every:50,init:function(d){var e=this;this.routes={};this.listeners={};this.befores=[];this.namespace=this.uuid();this.context_prototype=Sammy.EventContext.extend({});this.each(this.ROUTE_VERBS,function(f,g){this._defineRouteShortcut(g)});d.apply(this);if(this.debug){this.addLogger(function(g,f){e.log(e.toString(),g.cleaned_type,f||{})})}},toString:function(){return&quot;Sammy.Application:&quot;+this.element_selector},$element:function(){return c(this.element_selector)},route:function(h,f,j){var g=this;var i=[];if(f.constructor==String){while((path_match=b.exec(f))!=null){i.push(path_match[1])}f=new RegExp(f.replace(b,a)+&quot;$&quot;)}var d={verb:h,path:f,callback:j,param_names:i};if(typeof this.routes[h]==&quot;undefined&quot;||this.routes[h].length==0){this.routes[h]=[d]}else{var e=false;this.each(this.routes[h],function(l,k){if(f.toString().length&gt;=k.path.toString().length){this.routes[h].splice(l,0,d);e=true;return false}});if(!e){this.routes[h].push(d)}}return d},eventNamespace:function(){return this.data_store_name+&quot;-&quot;+this.namespace+&quot;-&quot;},bind:function(d,f,g){if(typeof g==&quot;undefined&quot;){g=f}var e=function(){var j,h,i;j=arguments[0];h=arguments[1];i=arguments[2];j.cleaned_type=j.type.replace(h.eventNamespace(),&quot;&quot;);g.apply(h,[j,i])};if(!this.listeners[d]){this.listeners[d]=[]}this.listeners[d].push(e);if(this.isRunning()){return this._listen(d,e)}},trigger:function(d,f,e){if(typeof e==&quot;undefined&quot;){e=new this.context_prototype(this,&quot;bind&quot;,d,f)}return this.$element().triggerHandler(e.eventNamespace()+d,[e,f])},before:function(d){return this.befores.push(d)},after:function(d){return this.bind(&quot;event-context-after&quot;,d)},isRunning:function(){return this._running},helpers:function(d){this.context_prototype=this.context_prototype.extend(d)},run:function(d){if(this.isRunning()){return false}var e=this;this.each(this.listeners,function(f,g){this.each(g,function(j,h){this._listen(f,h)})});this.trigger(&quot;run&quot;,{start_url:d});this._running=true;this.$element().data(this.data_store_name,this);this.last_location={href:&quot;&quot;,pathname:&quot;&quot;,hash:&quot;&quot;};if(typeof d!=&quot;undefined&quot;){window.location=d}this._checkURL();this._interval=setInterval(function(){e._checkURL.apply(e)},this.run_interval_every);this.bind(&quot;changed&quot;,function(){e.$element().find(&quot;form:not(.&quot;+e.eventNamespace()+&quot;)&quot;).bind(&quot;submit&quot;,function(){return e._checkFormSubmission(this)}).addClass(e.eventNamespace())});c(&quot;body&quot;).bind(&quot;onunload&quot;,function(){e.unload()});this.trigger(&quot;changed&quot;)},unload:function(){if(!this.isRunning()){return false}var d=this;this.trigger(&quot;unload&quot;);clearInterval(this._interval);this.$element().find(&quot;form&quot;).unbind(&quot;submit&quot;).removeClass(d.eventNamespace());this.$element().removeData(this.data_store_name);this.each(this.listeners,function(e,f){this.each(f,function(h,g){this._unlisten(e,g)})});this._running=false},addLogger:function(d){this.each(this.APP_EVENTS,function(f,g){this.bind(g,d)})},lookupRoute:function(f,e){var d=false;this.trigger(&quot;lookup-route&quot;,{verb:f,path:e});if(typeof this.routes[f]!=&quot;undefined&quot;){this.each(this.routes[f],function(h,g){if(e.match(g.path)){d=g;return false}})}return d},runRoute:function(k,h,j){this.trigger(&quot;run-route&quot;,{verb:k,path:h,params:j});if(typeof j==&quot;undefined&quot;){j={}}var e=this.lookupRoute(k,h);if(e){this.trigger(&quot;route-found&quot;,{route:e});if((path_params=e.path.exec(h))!=null){path_params.shift();this.each(path_params,function(l,m){if(e.param_names[l]){j[e.param_names[l]]=m}else{if(!j.splat){j.splat=[]}j.splat.push(m)}})}var f=new this.context_prototype(this,k,h,j);this.last_route=e;var d=true;var i=this.befores.slice(0);while(i.length&gt;0){if(i.shift().apply(f)===false){return false}}f.trigger(&quot;event-context-before&quot;);var g=e.callback.apply(f);f.trigger(&quot;event-context-after&quot;);f.trigger(&quot;changed&quot;);return g}else{this.notFound(k,h)}},currentLocation:function(){var d=this.clone(window.location);return d},notFound:function(e,d){this.trigger(&quot;error-404&quot;,{verb:e,path:d});throw (&quot;404 Not Found &quot;+e+&quot; &quot;+d)},_defineRouteShortcut:function(e){var d=this;this[e]=function(f,g){d.route.apply(d,[e,f,g])}},_checkURL:function(){try{var d,f;d=this.currentLocation();if(d.hash!=&quot;&quot;&amp;&amp;d.hash!=this.last_location.hash){f=this.runRoute(&quot;get&quot;,d.hash)}else{if(d.pathname!=this.last_location.pathname){f=this.runRoute(&quot;get&quot;,d.pathname)}}this.last_location=d}catch(g){if(g.toString().match(/^404/)&amp;&amp;this.silence_404){return f}else{throw (g)}}return f},_checkFormSubmission:function(g){var d,i,k,j,f;this.trigger(&quot;check-form-submission&quot;,{form:g});d=c(g);i=d.attr(&quot;action&quot;);k=d.attr(&quot;method&quot;).toString().toLowerCase();j={};d.find(&quot;:input[type!=submit]&quot;).each(function(){j[c(this).attr(&quot;name&quot;)]=c(this).val()});try{f=this.runRoute(k,i,j)}catch(h){if(h.toString().match(/^404/)&amp;&amp;this.silence_404){return true}else{throw (h)}}return(typeof f==&quot;undefined&quot;)?false:f},_listen:function(d,e){return this.$element().bind(this.eventNamespace()+d,e)},_unlisten:function(d,e){return this.$element().unbind(this.eventNamespace()+d,e)}});Sammy.EventContext=Sammy.Object.extend({init:function(g,f,d,e){this.app=g;this.verb=f;this.path=d;this.params=new Sammy.Object(e)},$element:function(){return this.app.$element()},template:function(e,f,d){if(typeof d==&quot;undefined&quot;){d=e}return c.srender(d,e,c.extend({},f,this))},partial:function(g,f,i){var e,h,d;d=this;if(typeof i==&quot;undefined&quot;){if(typeof f==&quot;function&quot;){i=f;f={}}else{i=function(j){d.app.$element().html(j)}}}e=c.srender(g);f=c.extend({},f,this);if(e){h=e(f);i.apply(d,[h]);d.trigger(&quot;changed&quot;)}else{c.get(g,function(j){h=c.srender(g,j,f);i.apply(d,[h]);d.trigger(&quot;changed&quot;)})}},redirect:function(d){this.trigger(&quot;redirect&quot;,{to:d});if(d.match(/^\#/)){window.location.hash=d}else{if(d.match(/^\//)){window.location.pathname=d}else{window.location=d}}return true},trigger:function(d,e){return this.app.trigger(d,e,this)},eventNamespace:function(){return this.app.eventNamespace()},notFound:function(){return this.app.notFound(this.verb,this.path)}});c.sammy=function(d){return new Sammy.Application(d)}})(jQuery);
\ No newline at end of file
+// Version: 0.2.0pre
+// Built: Tue Jun 09 18:18:42 -0400 2009
+(function(){var a=false,b=/xyz/.test(function(){xyz})?/\b_super\b/:/.*/;this.Class=function(){};Class.extend=function(g){var f=this.prototype;a=true;var e=new this();a=false;for(var d in g){e[d]=typeof g[d]==&quot;function&quot;&amp;&amp;typeof f[d]==&quot;function&quot;&amp;&amp;b.test(g[d])?(function(h,i){return function(){var k=this._super;this._super=f[h];var j=i.apply(this,arguments);this._super=k;return j}})(d,g[d]):g[d]}function c(){if(!a&amp;&amp;this.init){this.init.apply(this,arguments)}}c.prototype=e;c.constructor=c;c.extend=arguments.callee;return c}})();(function(a){a.srender=function(b,c,d){a.srender.cache=a.srender.cache||{};if(a.srender.cache[b]){fn=a.srender.cache[b]}else{if(typeof c==&quot;undefined&quot;){return false}fn=a.srender.cache[b]=new Function(&quot;obj&quot;,'var p=[],print=function(){p.push.apply(p,arguments);};with(obj){p.push(&quot;'+c.replace(/[\r\t\n]/g,&quot; &quot;).replace(/\&quot;/g,'\\&quot;').split(&quot;&lt;%&quot;).join(&quot;\t&quot;).replace(/((^|%&gt;)[^\t]*)/g,&quot;$1\r&quot;).replace(/\t=(.*?)%&gt;/g,'&quot;,$1,&quot;').split(&quot;\t&quot;).join('&quot;);').split(&quot;%&gt;&quot;).join('p.push(&quot;').split(&quot;\r&quot;).join(&quot;&quot;)+&quot;\&quot;);}return p.join('');&quot;)}if(typeof d!=&quot;undefined&quot;){return fn(d)}else{return fn}}})(jQuery);(function(c){var a=&quot;([^/]+)&quot;;var b=/:([\w\d]+)/g;Sammy={};Sammy.VERSION=&quot;0.2.0pre&quot;;Sammy.Object=Class.extend({init:function(d){c.extend(this,d)},clone:function(d){if(typeof d==&quot;undefined&quot;){d=this}return c.extend({},d)},toHash:function(){var d={};this.each(function(f,e){if(!c.isFunction(e)){d[f]=e}});return d},toHTML:function(){var d=&quot;&quot;;this.each(function(f,e){if(!c.isFunction(e)){d+=&quot;&lt;strong&gt;&quot;+f+&quot;&lt;/strong&gt; &quot;+e+&quot;&lt;br /&gt;&quot;}});return d},uuid:function(){if(typeof this._uuid==&quot;undefined&quot;||!this._uuid){this._uuid=(new Date()).getTime()+&quot;-&quot;+parseInt(Math.random()*1000)}return this._uuid},each:function(){var f,e,g,d;f=this;if(typeof arguments[0]!=&quot;function&quot;){e=arguments[0];g=arguments[1]}else{e=this;g=arguments[0]}d=function(){return g.apply(f,arguments)};c.each(e,d)},log:function(){var d=[].slice.call(arguments);d.unshift(&quot;[&quot;+Date()+&quot;]&quot;);if(typeof window.console!=&quot;undefined&quot;){window.console.log.apply(window.console,d)}else{if(typeof console!=&quot;undefined&quot;){console.log.apply(this,d)}else{}}}});Sammy.Application=Sammy.Object.extend({ROUTE_VERBS:[&quot;get&quot;,&quot;post&quot;,&quot;put&quot;,&quot;delete&quot;],APP_EVENTS:[&quot;run&quot;,&quot;unload&quot;,&quot;lookup-route&quot;,&quot;run-route&quot;,&quot;route-found&quot;,&quot;event-context-before&quot;,&quot;event-context-after&quot;,&quot;changed&quot;,&quot;error-404&quot;,&quot;check-form-submission&quot;,&quot;redirect&quot;],_last_route:null,_running:false,data_store_name:&quot;sammy-app&quot;,element_selector:&quot;body&quot;,debug:false,silence_404:true,run_interval_every:50,init:function(d){var e=this;this.routes={};this.listeners={};this.befores=[];this.namespace=this.uuid();this.context_prototype=Sammy.EventContext.extend({});this.each(this.ROUTE_VERBS,function(f,g){this._defineRouteShortcut(g)});d.apply(this);if(this.debug){this.addLogger(function(g,f){e.log(e.toString(),g.cleaned_type,f||{})})}},toString:function(){return&quot;Sammy.Application:&quot;+this.element_selector},$element:function(){return c(this.element_selector)},route:function(h,f,j){var g=this;var i=[];if(f.constructor==String){while((path_match=b.exec(f))!=null){i.push(path_match[1])}f=new RegExp(f.replace(b,a)+&quot;$&quot;)}var d={verb:h,path:f,callback:j,param_names:i};if(typeof this.routes[h]==&quot;undefined&quot;||this.routes[h].length==0){this.routes[h]=[d]}else{var e=false;this.each(this.routes[h],function(l,k){if(f.toString().length&gt;=k.path.toString().length){this.routes[h].splice(l,0,d);e=true;return false}});if(!e){this.routes[h].push(d)}}return d},eventNamespace:function(){return this.data_store_name+&quot;-&quot;+this.namespace+&quot;-&quot;},bind:function(d,f,g){if(typeof g==&quot;undefined&quot;){g=f}var e=function(){var j,h,i;j=arguments[0];h=arguments[1];i=arguments[2];j.cleaned_type=j.type.replace(h.eventNamespace(),&quot;&quot;);g.apply(h,[j,i])};if(!this.listeners[d]){this.listeners[d]=[]}this.listeners[d].push(e);if(this.isRunning()){return this._listen(d,e)}},trigger:function(d,f,e){if(typeof e==&quot;undefined&quot;){e=new this.context_prototype(this,&quot;bind&quot;,d,f)}return this.$element().triggerHandler(e.eventNamespace()+d,[e,f])},before:function(d){return this.befores.push(d)},after:function(d){return this.bind(&quot;event-context-after&quot;,d)},isRunning:function(){return this._running},helpers:function(d){this.context_prototype=this.context_prototype.extend(d)},run:function(d){if(this.isRunning()){return false}var e=this;this.each(this.listeners,function(f,g){this.each(g,function(j,h){this._listen(f,h)})});this.trigger(&quot;run&quot;,{start_url:d});this._running=true;this.$element().data(this.data_store_name,this);this.last_location=null;if(this.getLocation()==&quot;&quot;&amp;&amp;typeof d!=&quot;undefined&quot;){this.setLocation(d)}this._checkLocation();this._interval=setInterval(function(){e._checkLocation.apply(e)},this.run_interval_every);this.bind(&quot;changed&quot;,function(){e.$element().find(&quot;form:not(.&quot;+e.eventNamespace()+&quot;)&quot;).bind(&quot;submit&quot;,function(){return e._checkFormSubmission(this)}).addClass(e.eventNamespace())});c(&quot;body&quot;).bind(&quot;onunload&quot;,function(){e.unload()});this.trigger(&quot;changed&quot;)},unload:function(){if(!this.isRunning()){return false}var d=this;this.trigger(&quot;unload&quot;);clearInterval(this._interval);this.$element().find(&quot;form&quot;).unbind(&quot;submit&quot;).removeClass(d.eventNamespace());this.$element().removeData(this.data_store_name);this.each(this.listeners,function(e,f){this.each(f,function(h,g){this._unlisten(e,g)})});this._running=false},addLogger:function(d){this.each(this.APP_EVENTS,function(f,g){this.bind(g,d)})},lookupRoute:function(f,e){var d=false;this.trigger(&quot;lookup-route&quot;,{verb:f,path:e});if(typeof this.routes[f]!=&quot;undefined&quot;){this.each(this.routes[f],function(h,g){if(e.match(g.path)){d=g;return false}})}return d},runRoute:function(k,h,j){this.trigger(&quot;run-route&quot;,{verb:k,path:h,params:j});if(typeof j==&quot;undefined&quot;){j={}}var e=this.lookupRoute(k,h);if(e){this.trigger(&quot;route-found&quot;,{route:e});if((path_params=e.path.exec(h))!=null){path_params.shift();this.each(path_params,function(l,m){if(e.param_names[l]){j[e.param_names[l]]=m}else{if(!j.splat){j.splat=[]}j.splat.push(m)}})}var f=new this.context_prototype(this,k,h,j);this.last_route=e;var d=true;var i=this.befores.slice(0);while(i.length&gt;0){if(i.shift().apply(f)===false){return false}}f.trigger(&quot;event-context-before&quot;);var g=e.callback.apply(f);f.trigger(&quot;event-context-after&quot;);return g}else{this.notFound(k,h)}},getLocation:function(){return this.clone(window.location).hash.toString()},setLocation:function(d){window.location=d},swap:function(d){return this.$element().html(d)},notFound:function(e,d){this.trigger(&quot;error-404&quot;,{verb:e,path:d});throw (&quot;404 Not Found &quot;+e+&quot; &quot;+d)},_defineRouteShortcut:function(e){var d=this;this[e]=function(f,g){d.route.apply(d,[e,f,g])}},_checkLocation:function(){try{var d,f;d=this.getLocation();if(d!=this.last_location){f=this.runRoute(&quot;get&quot;,d)}this.last_location=d}catch(g){this.last_location=d;if(g.toString().match(/^404/)&amp;&amp;this.silence_404){return f}else{throw (g)}}return f},_checkFormSubmission:function(g){var d,i,k,j,f;this.trigger(&quot;check-form-submission&quot;,{form:g});d=c(g);i=d.attr(&quot;action&quot;);k=d.attr(&quot;method&quot;).toString().toLowerCase();j={};d.find(&quot;:input[type!=submit]&quot;).each(function(){j[c(this).attr(&quot;name&quot;)]=c(this).val()});try{f=this.runRoute(k,i,j)}catch(h){if(h.toString().match(/^404/)&amp;&amp;this.silence_404){return true}else{throw (h)}}return(typeof f==&quot;undefined&quot;)?false:f},_listen:function(d,e){return this.$element().bind(this.eventNamespace()+d,e)},_unlisten:function(d,e){return this.$element().unbind(this.eventNamespace()+d,e)}});Sammy.EventContext=Sammy.Object.extend({init:function(g,f,d,e){this.app=g;this.verb=f;this.path=d;this.params=new Sammy.Object(e)},$element:function(){return this.app.$element()},template:function(e,f,d){if(typeof d==&quot;undefined&quot;){d=e}return c.srender(d,e,c.extend({},f,this))},partial:function(g,f,i){var e,h,d;d=this;if(typeof i==&quot;undefined&quot;){if(typeof f==&quot;function&quot;){i=f;f={}}else{i=function(j){d.app.swap(j)}}}e=c.srender(g);f=c.extend({},f,this);if(e){h=e(f);i.apply(d,[h]);d.trigger(&quot;changed&quot;)}else{c.get(g,function(j){h=c.srender(g,j,f);i.apply(d,[h]);d.trigger(&quot;changed&quot;)})}},redirect:function(d){this.trigger(&quot;redirect&quot;,{to:d});return this.app.setLocation(d)},trigger:function(d,e){return this.app.trigger(d,e,this)},eventNamespace:function(){return this.app.eventNamespace()},notFound:function(){return this.app.notFound(this.verb,this.path)}});c.sammy=function(d){return new Sammy.Application(d)}})(jQuery);
\ No newline at end of file</diff>
      <filename>vendor/sammy.min.js</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>c772d4134b7ec6450aec4ae380f3e246712430ca</id>
    </parent>
  </parents>
  <author>
    <name>Aaron Quint</name>
    <email>aaron@quirkey.com</email>
  </author>
  <url>http://github.com/quirkey/sinatra-sammy/commit/a833ebecd73230323c8b4b4ac3f064b01df7846f</url>
  <id>a833ebecd73230323c8b4b4ac3f064b01df7846f</id>
  <committed-date>2009-06-09T15:19:54-07:00</committed-date>
  <authored-date>2009-06-09T15:19:54-07:00</authored-date>
  <message>Updated Sammy to lastest and got POST forms working</message>
  <tree>65e85f1c615a7b836d5a08f953e9c23cf757d500</tree>
  <committer>
    <name>Aaron Quint</name>
    <email>aaron@quirkey.com</email>
  </committer>
</commit>
