<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -1,5 +1,5 @@
 class MerbEMart::Application &lt; Merb::Controller
-  
+
   controller_for_slice
-  
+
 end</diff>
      <filename>app/controllers/application.rb</filename>
    </modified>
    <modified>
      <diff>@@ -5,4 +5,4 @@ class MerbEMart::Products &lt; MerbEMart::Application
 
     display @products
   end
-end
\ No newline at end of file
+end</diff>
      <filename>app/controllers/products.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,64 +1,64 @@
 module Merb
   module MerbEMart
     module ApplicationHelper
-      
+
       # @param *segments&lt;Array[#to_s]&gt; Path segments to append.
       #
-      # @return &lt;String&gt; 
+      # @return &lt;String&gt;
       #  A path relative to the public directory, with added segments.
       def image_path(*segments)
         public_path_for(:image, *segments)
       end
-      
+
       # @param *segments&lt;Array[#to_s]&gt; Path segments to append.
       #
-      # @return &lt;String&gt; 
+      # @return &lt;String&gt;
       #  A path relative to the public directory, with added segments.
       def javascript_path(*segments)
         public_path_for(:javascript, *segments)
       end
-      
+
       # @param *segments&lt;Array[#to_s]&gt; Path segments to append.
       #
-      # @return &lt;String&gt; 
+      # @return &lt;String&gt;
       #  A path relative to the public directory, with added segments.
       def stylesheet_path(*segments)
         public_path_for(:stylesheet, *segments)
       end
-      
+
       # Construct a path relative to the public directory
-      # 
+      #
       # @param &lt;Symbol&gt; The type of component.
       # @param *segments&lt;Array[#to_s]&gt; Path segments to append.
       #
-      # @return &lt;String&gt; 
+      # @return &lt;String&gt;
       #  A path relative to the public directory, with added segments.
       def public_path_for(type, *segments)
         File.join(::MerbEMart.public_dir_for(type), *segments)
       end
-      
+
       # Construct an app-level path.
-      # 
+      #
       # @param &lt;Symbol&gt; The type of component.
       # @param *segments&lt;Array[#to_s]&gt; Path segments to append.
       #
-      # @return &lt;String&gt; 
+      # @return &lt;String&gt;
       #  A path within the host application, with added segments.
       def app_path_for(type, *segments)
         File.join(::MerbEMart.app_dir_for(type), *segments)
       end
-      
+
       # Construct a slice-level path.
-      # 
+      #
       # @param &lt;Symbol&gt; The type of component.
       # @param *segments&lt;Array[#to_s]&gt; Path segments to append.
       #
-      # @return &lt;String&gt; 
+      # @return &lt;String&gt;
       #  A path within the slice source (Gem), with added segments.
       def slice_path_for(type, *segments)
         File.join(::MerbEMart.dir_for(type), *segments)
       end
-      
+
     end
   end
-end
\ No newline at end of file
+end</diff>
      <filename>app/helpers/application_helper.rb</filename>
    </modified>
    <modified>
      <diff>@@ -9,4 +9,4 @@ class Account
   belongs_to :address, :class_name =&gt; 'Address' #stupid DM, tries to singularize a 'has 1'
 
   validates_present :address
-end
\ No newline at end of file
+end</diff>
      <filename>app/models/account.rb</filename>
    </modified>
    <modified>
      <diff>@@ -30,4 +30,3 @@ class Address
   end
 
 end
-</diff>
      <filename>app/models/address.rb</filename>
    </modified>
    <modified>
      <diff>@@ -9,4 +9,4 @@ class Item
   belongs_to :product
 
   validates_present :product
-end
\ No newline at end of file
+end</diff>
      <filename>app/models/item.rb</filename>
    </modified>
    <modified>
      <diff>@@ -3,4 +3,4 @@ class LineItem &lt; Item
   property :quantity,   Integer
 
   validates_present :unit_price, :quantity
-end
\ No newline at end of file
+end</diff>
      <filename>app/models/item/line_item.rb</filename>
    </modified>
    <modified>
      <diff>@@ -16,4 +16,4 @@ class Product
   has n, :product_images
 
   alias_method :discontinued?, :is_discontinued
-end
\ No newline at end of file
+end</diff>
      <filename>app/models/product.rb</filename>
    </modified>
    <modified>
      <diff>@@ -2,4 +2,4 @@ class Variation &lt; Product
   property :product_id, Integer  # foreign-key
 
   belongs_to :product
-end
\ No newline at end of file
+end</diff>
      <filename>app/models/product/variation.rb</filename>
    </modified>
    <modified>
      <diff>@@ -13,4 +13,4 @@ class ShippingInfo
   has n, :orders
   has n, :weights
   belongs_to :address, :class_name =&gt; 'Address'
-end
\ No newline at end of file
+end</diff>
      <filename>app/models/shipping_info.rb</filename>
    </modified>
    <modified>
      <diff>@@ -16,4 +16,4 @@ class Transaction
   belongs_to :account
 
   validates_present :order, :account
-end
\ No newline at end of file
+end</diff>
      <filename>app/models/transaction.rb</filename>
    </modified>
    <modified>
      <diff>@@ -8,4 +8,4 @@ class Upload
   before :save, :process
 
   def process; end
-end
\ No newline at end of file
+end</diff>
      <filename>app/models/upload.rb</filename>
    </modified>
    <modified>
      <diff>@@ -10,4 +10,4 @@ class Image &lt; Upload
   after :process, :resize
 
   def resize; end
-end
\ No newline at end of file
+end</diff>
      <filename>app/models/upload/image.rb</filename>
    </modified>
    <modified>
      <diff>@@ -9,4 +9,4 @@ class ProductImage &lt; Image
   validates_present :product
 
   def generate_thumbnail; end
-end
\ No newline at end of file
+end</diff>
      <filename>app/models/upload/image/product_image.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,3 +1,3 @@
 class Customer &lt; User
   has n, :orders
-end
\ No newline at end of file
+end</diff>
      <filename>app/models/user/customer.rb</filename>
    </modified>
    <modified>
      <diff>@@ -8,4 +8,4 @@ class Weight
   property :shipping_info_id, Integer  # foreign-key
 
   belongs_to :shipping_info
-end
\ No newline at end of file
+end</diff>
      <filename>app/models/weight.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,216 +1,216 @@
 &lt;html&gt;
 &lt;head&gt;
-	&lt;meta http-equiv=&quot;Content-type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt;
-	&lt;title&gt;&lt;%= @exception_name %&gt;&lt;/title&gt;
-	&lt;style type=&quot;text/css&quot; media=&quot;screen&quot;&gt;
-		body {
-			font-family:arial;
-			font-size:11px;
-		}
-		h1 {
-			font-size:48px;
-			letter-spacing:-4px;
-			margin:0;
-			line-height:36px;
-			color:#333;
-		}
-			h1 sup {
-				font-size: 0.5em;
-			}
-			h1 sup.error_500, h1 sup.error_400 {
-				color:#990E05;
-			}
-			h1 sup.error_100, h1 sup.error_200 {
-				color:#00BF10;
-			}
-			h1 sup.error_300 {
-				/* pretty sure you cant 'see' status 300 
-				errors but if you could I think they 
-				would be blue */
-				color:#1B2099;
-			}
-		h2 {
-			font-size:36px;
-			letter-spacing:-3px;
-			margin:0;
-			line-height:28px;
-			color:#444;
-		}
-		a, a:visited {
-			color:#00BF10;
-		}
-		.internalError {
-			width:800px;
-			margin:50px auto;
-		}
-		.header {
-			border-bottom:10px solid #333;
-			margin-bottom:1px;
-			background-image: url(&quot;data:image/gif;base64,R0lGODlhAwADAIAAAP///8zMzCH5BAAAAAAALAAAAAADAAMAAAIEBHIJBQA7&quot;);
-			padding:20px;
-		}
-		table.trace {
-			width:100%;
-			font-family:courier, monospace;
-			letter-spacing:-1px;
-			border-collapse: collapse;
-			border-spacing:0;
-		}
-		table.trace tr td{
-			padding:0;
-			height:26px;
-			font-size:13px;
-			vertical-align:middle;
-		}
-		table.trace tr.file{
-			border-top:2px solid #fff;
-			background-color:#F3F3F3;
-		}
-		table.trace tr.source {
-			background-color:#F8F8F8;
-			display:none;
-		}
-		table.trace .open tr.source {
-			display:table-row;
-		}
-			table.trace tr.file td.expand {
-				width:23px;
-				background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABcAAAAXCAIAAABvSEP3AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAdVJREFUeNqMVL+TwUAYxaRIOlEhlZHGDAUzzOQ61+AqXMV1lJSU7q/QRqm8KFUcJTNn5qJkaPyoKKVz7y4mF8na5Kt29tt9+/Z97/u81+vVQ4r9frdarS6Xi7ETDIZisRjxMGPfmk4niNPpZE+xLAugbPaZ53nzvtfMBe/3+/3dbuehBrAKhZdUKkVAWa9Xsiybv0CPZDJZLr/qa5/BwgwRjYqOKIvFYjQa/aNommZh0Ww2K5UqzwfoQOPxaLPZ3FAmk0+7lplMpt1u53J5OpBOR0eZEE9wHJfP5zud93g88QhluwWbjW+5VOmKBgKBer3eaDTDYeGBQF8+x7rqIYoiPgixWJazpA6HA+MSxRArkUgMh0M409g8Ho8+9wYxxCqVSq1W26EDHGM2m4HOHQrEc38f/Yn7cLmlIRhBENzcx8cVRZnPZ/YUep2BWkjTIfA+PKVpZAXR5QxsjiqCKvGEqqp443w+0dvy17swqD0HB3S73V5PpkNg1qBqt8kwGCjmPkinM0QJbIoEa7U6UG6ToVgs4V9G2g0ESoP5Aoi7KYX5oCgf8IKbkvn9/mr1LRQKESamzgJy0g0tSZIuB3nuGqRU9Vv9C4sKkUhEkp4soxvxI8AAhWrrtXa3X8EAAAAASUVORK5CYII=);
-				background-position:top left;
-				background-repeat:no-repeat;
-			}
-			table.trace .open tr.file td.expand {
-				width:19px;
-				background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABcAAAB1CAIAAAAqdO2mAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAXZJREFUeNrslK1ywkAUhcMOBomEOiSdqLxEBJX0NaijOsjyHGGmCGyQQYaiiiw4gktkcOmZbpsuuzQ/M5XnqJ2d3S/n3nM3rTzPLUP7/Tt0+pLcGQwG3W53OLyHzPMtjYL7q9UqSRLrD4E1Gj1orCvKYuFHUWTVkOM44/HjDcp8/lL4r6NerzeZPMm1KFw0QkDn83m5fP2lHA4fNQvRtNvtjsfDd0WzmSfb2e/fdTqdOvdh/HLJZLOn0+d2HJ+KRGzbdl23EpFlmed5cp2maRzHQq1lvQ5KMi6EUZBGfup6E1pTfd+vrGW7jbQ2C9hTt9BpqNyIWaAwAy6xg2eBz5iRC/NomiZhGN5sqmnkauo0BUGgVQoBjQ80oCACgNQdZHfTYBkF2mxCtWWAqunWpahxIDUt3QYUxIFQpJHyIWpXjinabKbbwItMHT+NyjchrP8QKaSQQgoppJBCCimkkEIKKaSQQgoppJBCCimkkEIKKaSo+hRgAEFD17X08O2NAAAAAElFTkSuQmCC);
-				background-position:top left;
-				background-repeat:no-repeat;				
-			}
-			table.trace tr.source td.collapse {
-				width:19px;
-				background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABcAAAB1CAIAAAAqdO2mAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAVxJREFUeNrs0zFygkAUBmBlUkgJHdABlQwVkVJKKUxBYWbkALTxMJwhltyDFkss03IF8pudIcwaDaDl/6pd2P327b7d+eHwMXs4lNkzggoVKlSoUKFChQoVKlSoUKFChQoVKlSoUKFChQqVEYqm6ft9+qiSJEkYho7jTlcw2fd9NOI4nq4gEdFwXXe1Cqco63VkWVbXRTqLhTpOwQRpF7quR1E0TgGhqvLKUFCyoQqG/rks3O6kZKW/eRFpevOCoGTXVTcMQ5EyxyDEkML1c5RzuZOICIyXqn7JBVez6282MWrx731HOv2qB8Hri2lamNk0DfpVVdV1Peodappmmua8bdvzuc7zfNprzrLMth1FnGh/X8MjCAIQv/cFz/+65PcDh7rbvYv2ZUfdj+PxsyzLgVl0hKwgTqeqKApx2LeOc7t98zyv/1FWOgvx9RPii23bmL9cetJ8Ed8CDAC6aFW8bCzFhwAAAABJRU5ErkJggg==);
-				background-position:bottom left;
-				background-repeat:no-repeat;	
-				background-color:#6F706F;			
-			}
-			table.trace tr td.path {
-				padding-left:10px;
-			}
-			table.trace tr td.code {
-				padding-left:35px;
-				white-space: pre;
-				line-height:9px;
-				padding-bottom:10px;				
-			}
-				table.trace tr td.code em {
-					font-weight:bold;
-					color:#00BF10;
-				}
-				table.trace tr td.code a {
-				  width: 20px;
-				  float: left;
-				}
-				table.trace tr td.code .more {
-					color:#666;
-				}
-			table.trace tr td.line {
-				width:30px;
-				text-align:right;
-				padding-right:4px;
-			}
-		.footer {
-			margin-top:5px;
-			font-size:11px;
-			color:#444;
-			text-align:right;
-		}
-	&lt;/style&gt;
+ &lt;meta http-equiv=&quot;Content-type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt;
+ &lt;title&gt;&lt;%= @exception_name %&gt;&lt;/title&gt;
+ &lt;style type=&quot;text/css&quot; media=&quot;screen&quot;&gt;
+  body {
+   font-family:arial;
+   font-size:11px;
+  }
+  h1 {
+   font-size:48px;
+   letter-spacing:-4px;
+   margin:0;
+   line-height:36px;
+   color:#333;
+  }
+   h1 sup {
+    font-size: 0.5em;
+   }
+   h1 sup.error_500, h1 sup.error_400 {
+    color:#990E05;
+   }
+   h1 sup.error_100, h1 sup.error_200 {
+    color:#00BF10;
+   }
+   h1 sup.error_300 {
+    /* pretty sure you cant 'see' status 300
+    errors but if you could I think they
+    would be blue */
+    color:#1B2099;
+   }
+  h2 {
+   font-size:36px;
+   letter-spacing:-3px;
+   margin:0;
+   line-height:28px;
+   color:#444;
+  }
+  a, a:visited {
+   color:#00BF10;
+  }
+  .internalError {
+   width:800px;
+   margin:50px auto;
+  }
+  .header {
+   border-bottom:10px solid #333;
+   margin-bottom:1px;
+   background-image: url(&quot;data:image/gif;base64,R0lGODlhAwADAIAAAP///8zMzCH5BAAAAAAALAAAAAADAAMAAAIEBHIJBQA7&quot;);
+   padding:20px;
+  }
+  table.trace {
+   width:100%;
+   font-family:courier, monospace;
+   letter-spacing:-1px;
+   border-collapse: collapse;
+   border-spacing:0;
+  }
+  table.trace tr td{
+   padding:0;
+   height:26px;
+   font-size:13px;
+   vertical-align:middle;
+  }
+  table.trace tr.file{
+   border-top:2px solid #fff;
+   background-color:#F3F3F3;
+  }
+  table.trace tr.source {
+   background-color:#F8F8F8;
+   display:none;
+  }
+  table.trace .open tr.source {
+   display:table-row;
+  }
+   table.trace tr.file td.expand {
+    width:23px;
+    background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABcAAAAXCAIAAABvSEP3AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAdVJREFUeNqMVL+TwUAYxaRIOlEhlZHGDAUzzOQ61+AqXMV1lJSU7q/QRqm8KFUcJTNn5qJkaPyoKKVz7y4mF8na5Kt29tt9+/Z97/u81+vVQ4r9frdarS6Xi7ETDIZisRjxMGPfmk4niNPpZE+xLAugbPaZ53nzvtfMBe/3+/3dbuehBrAKhZdUKkVAWa9Xsiybv0CPZDJZLr/qa5/BwgwRjYqOKIvFYjQa/aNommZh0Ww2K5UqzwfoQOPxaLPZ3FAmk0+7lplMpt1u53J5OpBOR0eZEE9wHJfP5zud93g88QhluwWbjW+5VOmKBgKBer3eaDTDYeGBQF8+x7rqIYoiPgixWJazpA6HA+MSxRArkUgMh0M409g8Ho8+9wYxxCqVSq1W26EDHGM2m4HOHQrEc38f/Yn7cLmlIRhBENzcx8cVRZnPZ/YUep2BWkjTIfA+PKVpZAXR5QxsjiqCKvGEqqp443w+0dvy17swqD0HB3S73V5PpkNg1qBqt8kwGCjmPkinM0QJbIoEa7U6UG6ToVgs4V9G2g0ESoP5Aoi7KYX5oCgf8IKbkvn9/mr1LRQKESamzgJy0g0tSZIuB3nuGqRU9Vv9C4sKkUhEkp4soxvxI8AAhWrrtXa3X8EAAAAASUVORK5CYII=);
+    background-position:top left;
+    background-repeat:no-repeat;
+   }
+   table.trace .open tr.file td.expand {
+    width:19px;
+    background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABcAAAB1CAIAAAAqdO2mAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAXZJREFUeNrslK1ywkAUhcMOBomEOiSdqLxEBJX0NaijOsjyHGGmCGyQQYaiiiw4gktkcOmZbpsuuzQ/M5XnqJ2d3S/n3nM3rTzPLUP7/Tt0+pLcGQwG3W53OLyHzPMtjYL7q9UqSRLrD4E1Gj1orCvKYuFHUWTVkOM44/HjDcp8/lL4r6NerzeZPMm1KFw0QkDn83m5fP2lHA4fNQvRtNvtjsfDd0WzmSfb2e/fdTqdOvdh/HLJZLOn0+d2HJ+KRGzbdl23EpFlmed5cp2maRzHQq1lvQ5KMi6EUZBGfup6E1pTfd+vrGW7jbQ2C9hTt9BpqNyIWaAwAy6xg2eBz5iRC/NomiZhGN5sqmnkauo0BUGgVQoBjQ80oCACgNQdZHfTYBkF2mxCtWWAqunWpahxIDUt3QYUxIFQpJHyIWpXjinabKbbwItMHT+NyjchrP8QKaSQQgoppJBCCimkkEIKKaSQQgoppJBCCimkkEIKKaSo+hRgAEFD17X08O2NAAAAAElFTkSuQmCC);
+    background-position:top left;
+    background-repeat:no-repeat;
+   }
+   table.trace tr.source td.collapse {
+    width:19px;
+    background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABcAAAB1CAIAAAAqdO2mAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAVxJREFUeNrs0zFygkAUBmBlUkgJHdABlQwVkVJKKUxBYWbkALTxMJwhltyDFkss03IF8pudIcwaDaDl/6pd2P327b7d+eHwMXs4lNkzggoVKlSoUKFChQoVKlSoUKFChQoVKlSoUKFChQqVEYqm6ft9+qiSJEkYho7jTlcw2fd9NOI4nq4gEdFwXXe1Cqco63VkWVbXRTqLhTpOwQRpF7quR1E0TgGhqvLKUFCyoQqG/rks3O6kZKW/eRFpevOCoGTXVTcMQ5EyxyDEkML1c5RzuZOICIyXqn7JBVez6282MWrx731HOv2qB8Hri2lamNk0DfpVVdV1Peodappmmua8bdvzuc7zfNprzrLMth1FnGh/X8MjCAIQv/cFz/+65PcDh7rbvYv2ZUfdj+PxsyzLgVl0hKwgTqeqKApx2LeOc7t98zyv/1FWOgvx9RPii23bmL9cetJ8Ed8CDAC6aFW8bCzFhwAAAABJRU5ErkJggg==);
+    background-position:bottom left;
+    background-repeat:no-repeat;
+    background-color:#6F706F;
+   }
+   table.trace tr td.path {
+    padding-left:10px;
+   }
+   table.trace tr td.code {
+    padding-left:35px;
+    white-space: pre;
+    line-height:9px;
+    padding-bottom:10px;
+   }
+    table.trace tr td.code em {
+     font-weight:bold;
+     color:#00BF10;
+    }
+    table.trace tr td.code a {
+      width: 20px;
+      float: left;
+    }
+    table.trace tr td.code .more {
+     color:#666;
+    }
+   table.trace tr td.line {
+    width:30px;
+    text-align:right;
+    padding-right:4px;
+   }
+  .footer {
+   margin-top:5px;
+   font-size:11px;
+   color:#444;
+   text-align:right;
+  }
+ &lt;/style&gt;
 &lt;/head&gt;
 &lt;body&gt;
-	&lt;div class=&quot;internalError&quot;&gt;
-		
-		&lt;div class=&quot;header&quot;&gt;
-			&lt;h1&gt;&lt;%= @exception_name %&gt; &lt;sup class=&quot;error_&lt;%= @exception.class::STATUS %&gt;&quot;&gt;&lt;%= @exception.class::STATUS %&gt;&lt;/sup&gt;&lt;/h1&gt;
-			&lt;% if show_details = ::Merb::Config[:exception_details] -%&gt;
-				&lt;h2&gt;&lt;%= @exception.message %&gt;&lt;/h2&gt;
-			&lt;% else -%&gt;
-				&lt;h2&gt;Sorry about that...&lt;/h2&gt;
-			&lt;% end -%&gt;
-			&lt;h3&gt;Parameters&lt;/h3&gt;
-			&lt;ul&gt;
-			&lt;% params[:original_params].each do |param, value| %&gt;
-				&lt;li&gt;&lt;strong&gt;&lt;%= param %&gt;:&lt;/strong&gt; &lt;%= value.inspect %&gt;&lt;/li&gt;
-			&lt;% end %&gt;
-			&lt;%= &quot;&lt;li&gt;None&lt;/li&gt;&quot; if params[:original_params].empty? %&gt;
-			&lt;/ul&gt;
-			
-			&lt;h3&gt;Session&lt;/h3&gt;
-			&lt;ul&gt;
-			&lt;% params[:original_session].each do |param, value| %&gt;
-				&lt;li&gt;&lt;strong&gt;&lt;%= param %&gt;:&lt;/strong&gt; &lt;%= value.inspect %&gt;&lt;/li&gt;
-			&lt;% end %&gt;
-			&lt;%= &quot;&lt;li&gt;None&lt;/li&gt;&quot; if params[:original_session].empty? %&gt;			
-			&lt;/ul&gt;
-			
-			&lt;h3&gt;Cookies&lt;/h3&gt;
-			&lt;ul&gt;
-			&lt;% params[:original_cookies].each do |param, value| %&gt;
-				&lt;li&gt;&lt;strong&gt;&lt;%= param %&gt;:&lt;/strong&gt; &lt;%= value.inspect %&gt;&lt;/li&gt;
-			&lt;% end %&gt;
-			&lt;%= &quot;&lt;li&gt;None&lt;/li&gt;&quot; if params[:original_cookies].empty? %&gt;			
-			&lt;/ul&gt;			
-		&lt;/div&gt;
-		
-	&lt;% if show_details %&gt;
-		&lt;table class=&quot;trace&quot;&gt;
-			&lt;% @exception.backtrace.each_with_index do |line, index| %&gt;
-				&lt;tbody class=&quot;close&quot;&gt;
-					&lt;tr class=&quot;file&quot;&gt;
-						&lt;td class=&quot;expand&quot;&gt;
-						&lt;/td&gt;
-						&lt;td class=&quot;path&quot;&gt;
-							&lt;%= (line.match(/^([^:]+)/)[1] rescue 'unknown').sub(/\/((opt|usr)\/local\/lib\/(ruby\/)?(gems\/)?(1.8\/)?(gems\/)?|.+\/app\/)/, '') %&gt;
-							&lt;% unless line.match(/\.erb:/) %&gt;
+ &lt;div class=&quot;internalError&quot;&gt;
+
+  &lt;div class=&quot;header&quot;&gt;
+   &lt;h1&gt;&lt;%= @exception_name %&gt; &lt;sup class=&quot;error_&lt;%= @exception.class::STATUS %&gt;&quot;&gt;&lt;%= @exception.class::STATUS %&gt;&lt;/sup&gt;&lt;/h1&gt;
+   &lt;% if show_details = ::Merb::Config[:exception_details] -%&gt;
+    &lt;h2&gt;&lt;%= @exception.message %&gt;&lt;/h2&gt;
+   &lt;% else -%&gt;
+    &lt;h2&gt;Sorry about that...&lt;/h2&gt;
+   &lt;% end -%&gt;
+   &lt;h3&gt;Parameters&lt;/h3&gt;
+   &lt;ul&gt;
+   &lt;% params[:original_params].each do |param, value| %&gt;
+    &lt;li&gt;&lt;strong&gt;&lt;%= param %&gt;:&lt;/strong&gt; &lt;%= value.inspect %&gt;&lt;/li&gt;
+   &lt;% end %&gt;
+   &lt;%= &quot;&lt;li&gt;None&lt;/li&gt;&quot; if params[:original_params].empty? %&gt;
+   &lt;/ul&gt;
+
+   &lt;h3&gt;Session&lt;/h3&gt;
+   &lt;ul&gt;
+   &lt;% params[:original_session].each do |param, value| %&gt;
+    &lt;li&gt;&lt;strong&gt;&lt;%= param %&gt;:&lt;/strong&gt; &lt;%= value.inspect %&gt;&lt;/li&gt;
+   &lt;% end %&gt;
+   &lt;%= &quot;&lt;li&gt;None&lt;/li&gt;&quot; if params[:original_session].empty? %&gt;
+   &lt;/ul&gt;
+
+   &lt;h3&gt;Cookies&lt;/h3&gt;
+   &lt;ul&gt;
+   &lt;% params[:original_cookies].each do |param, value| %&gt;
+    &lt;li&gt;&lt;strong&gt;&lt;%= param %&gt;:&lt;/strong&gt; &lt;%= value.inspect %&gt;&lt;/li&gt;
+   &lt;% end %&gt;
+   &lt;%= &quot;&lt;li&gt;None&lt;/li&gt;&quot; if params[:original_cookies].empty? %&gt;
+   &lt;/ul&gt;
+  &lt;/div&gt;
+
+ &lt;% if show_details %&gt;
+  &lt;table class=&quot;trace&quot;&gt;
+   &lt;% @exception.backtrace.each_with_index do |line, index| %&gt;
+    &lt;tbody class=&quot;close&quot;&gt;
+     &lt;tr class=&quot;file&quot;&gt;
+      &lt;td class=&quot;expand&quot;&gt;
+      &lt;/td&gt;
+      &lt;td class=&quot;path&quot;&gt;
+       &lt;%= (line.match(/^([^:]+)/)[1] rescue 'unknown').sub(/\/((opt|usr)\/local\/lib\/(ruby\/)?(gems\/)?(1.8\/)?(gems\/)?|.+\/app\/)/, '') %&gt;
+       &lt;% unless line.match(/\.erb:/) %&gt;
                 in &quot;&lt;strong&gt;&lt;%= line.match(/:in `(.+)'$/)[1] rescue '?' %&gt;&lt;/strong&gt;&quot;
               &lt;% else %&gt;
                 (&lt;strong&gt;ERB Template&lt;/strong&gt;)
               &lt;% end %&gt;
-						&lt;/td&gt;
-						&lt;td class=&quot;line&quot;&gt;
-							&lt;a href=&quot;txmt://open?url=file://&lt;%=file = (line.match(/^([^:]+)/)[1] rescue 'unknown')%&gt;&amp;amp;line=&lt;%= lineno = line.match(/:([0-9]+):/)[1] rescue '?' %&gt;&quot;&gt;&lt;%=lineno%&gt;&lt;/a&gt;&amp;nbsp;
-						&lt;/td&gt; 
-					&lt;/tr&gt;
-					&lt;tr class=&quot;source&quot;&gt;
-						&lt;td class=&quot;collapse&quot;&gt;
-						&lt;/td&gt;
-						&lt;td class=&quot;code&quot; colspan=&quot;2&quot;&gt;&lt;% (__caller_lines__(file, lineno, 5) rescue []).each do |llineno, lcode, lcurrent| %&gt;
+      &lt;/td&gt;
+      &lt;td class=&quot;line&quot;&gt;
+       &lt;a href=&quot;txmt://open?url=file://&lt;%=file = (line.match(/^([^:]+)/)[1] rescue 'unknown')%&gt;&amp;amp;line=&lt;%= lineno = line.match(/:([0-9]+):/)[1] rescue '?' %&gt;&quot;&gt;&lt;%=lineno%&gt;&lt;/a&gt;&amp;nbsp;
+      &lt;/td&gt;
+     &lt;/tr&gt;
+     &lt;tr class=&quot;source&quot;&gt;
+      &lt;td class=&quot;collapse&quot;&gt;
+      &lt;/td&gt;
+      &lt;td class=&quot;code&quot; colspan=&quot;2&quot;&gt;&lt;% (__caller_lines__(file, lineno, 5) rescue []).each do |llineno, lcode, lcurrent| %&gt;
 &lt;a href=&quot;txmt://open?url=file://&lt;%=file%&gt;&amp;amp;line=&lt;%=llineno%&gt;&quot;&gt;&lt;%= llineno %&gt;&lt;/a&gt;&lt;%='&lt;em&gt;' if llineno==lineno.to_i %&gt;&lt;%= lcode.size &gt; 90 ? CGI.escapeHTML(lcode[0..90])+'&lt;span class=&quot;more&quot;&gt;......&lt;/span&gt;' : CGI.escapeHTML(lcode) %&gt;&lt;%='&lt;/em&gt;' if llineno==lineno.to_i %&gt;
 &lt;% end %&gt;
 
 &lt;/td&gt;
-					&lt;/tr&gt;
-				&lt;/tbody&gt;
-			&lt;% end %&gt;
-		&lt;/table&gt;
-		&lt;script type=&quot;text/javascript&quot; charset=&quot;utf-8&quot;&gt;
-			// swop the open &amp; closed classes
-			els = document.getElementsByTagName('td');
-			for(i=0; i&lt;els.length; i++){
-				if(els[i].className=='expand' || els[i].className=='collapse'){
-					els[i].onclick = function(e){
-						tbody = this.parentNode.parentNode;
-						if(tbody.className=='open'){
-							tbody.className='closed';
-						}else{
-							tbody.className='open';
-						}
-					}
-				}
-			}
-		&lt;/script&gt;
-	&lt;% end %&gt;
-	&lt;div class=&quot;footer&quot;&gt;
-		lots of love, from &lt;a href=&quot;#&quot;&gt;merb&lt;/a&gt;
-	&lt;/div&gt;
-	&lt;/div&gt;
+     &lt;/tr&gt;
+    &lt;/tbody&gt;
+   &lt;% end %&gt;
+  &lt;/table&gt;
+  &lt;script type=&quot;text/javascript&quot; charset=&quot;utf-8&quot;&gt;
+   // swop the open &amp; closed classes
+   els = document.getElementsByTagName('td');
+   for(i=0; i&lt;els.length; i++){
+    if(els[i].className=='expand' || els[i].className=='collapse'){
+     els[i].onclick = function(e){
+      tbody = this.parentNode.parentNode;
+      if(tbody.className=='open'){
+       tbody.className='closed';
+      }else{
+       tbody.className='open';
+      }
+     }
+    }
+   }
+  &lt;/script&gt;
+ &lt;% end %&gt;
+ &lt;div class=&quot;footer&quot;&gt;
+  lots of love, from &lt;a href=&quot;#&quot;&gt;merb&lt;/a&gt;
+ &lt;/div&gt;
+ &lt;/div&gt;
 &lt;/body&gt;
 &lt;/html&gt;</diff>
      <filename>app/views/exceptions/internal_server_error.html.erb</filename>
    </modified>
    <modified>
      <diff>@@ -42,7 +42,7 @@
       feel free to come chat at irc.freenode.net, channel #merb,
       or post to &lt;a href=&quot;http://groups.google.com/group/merb&quot;&gt;merb mailing list&lt;/a&gt;
       on Google Groups.&lt;/p&gt;
-      
+
     &lt;h3&gt;What if I've found a bug?&lt;/h3&gt;
     &lt;p&gt;If you want to file a bug or make your own contribution to Merb,
       feel free to register and create a ticket at our
@@ -50,7 +50,7 @@
       on Lighthouse.&lt;/p&gt;
 
     &lt;h3&gt;How do I edit this page?&lt;/h3&gt;
-    &lt;p&gt;You can change what people see when this happens by editing &lt;tt&gt;app/views/exceptions/not_acceptable.html.erb&lt;/tt&gt;.&lt;/p&gt; 
+    &lt;p&gt;You can change what people see when this happens by editing &lt;tt&gt;app/views/exceptions/not_acceptable.html.erb&lt;/tt&gt;.&lt;/p&gt;
 
   &lt;/div&gt;
 </diff>
      <filename>app/views/exceptions/not_acceptable.html.erb</filename>
    </modified>
    <modified>
      <diff>@@ -14,14 +14,14 @@
   &lt;div id=&quot;main-container&quot;&gt;
     &lt;h3&gt;Welcome to Merb!&lt;/h3&gt;
     &lt;p&gt;Merb is a light-weight MVC framework written in Ruby.  We hope you enjoy it.&lt;/p&gt;
-    
+
     &lt;h3&gt;Where can I find help?&lt;/h3&gt;
     &lt;p&gt;If you have any questions or if you can't figure something out, please take a
       look at our &lt;a href=&quot;http://merbivore.com/&quot;&gt; project page&lt;/a&gt;,
       feel free to come chat at irc.freenode.net, channel #merb,
       or post to &lt;a href=&quot;http://groups.google.com/group/merb&quot;&gt;merb mailing list&lt;/a&gt;
       on Google Groups.&lt;/p&gt;
-      
+
     &lt;h3&gt;What if I've found a bug?&lt;/h3&gt;
     &lt;p&gt;If you want to file a bug or make your own contribution to Merb,
       feel free to register and create a ticket at our</diff>
      <filename>app/views/exceptions/not_found.html.erb</filename>
    </modified>
    <modified>
      <diff>@@ -9,8 +9,8 @@
   &lt;!-- you can override this layout at slices/merb_e_mart/app/views/layout/merb_e_mart.html.erb --&gt;
   &lt;body class=&quot;merb_e_mart-slice&quot;&gt;
   &lt;div id=&quot;container&quot;&gt;
-	  &lt;h1&gt;MerbEMart Slice&lt;/h1&gt;
+   &lt;h1&gt;MerbEMart Slice&lt;/h1&gt;
     &lt;div id=&quot;main&quot;&gt;&lt;%= catch_content :for_layout %&gt;&lt;/div&gt;
   &lt;/div&gt;
   &lt;/body&gt;
-&lt;/html&gt;
\ No newline at end of file
+&lt;/html&gt;</diff>
      <filename>app/views/layout/merb_e_mart.html.erb</filename>
    </modified>
    <modified>
      <diff>@@ -6,4 +6,4 @@
   .price
     Price:
     =product.price
-  .description=product.description
\ No newline at end of file
+  .description=product.description</diff>
      <filename>app/views/products/_preview.html.haml</filename>
    </modified>
    <modified>
      <diff>@@ -1,4 +1,4 @@
 %h3 Products
 %ul.products
   -@products.each do |product|
-    =partial :preview, :product =&gt; product
\ No newline at end of file
+    =partial :preview, :product =&gt; product</diff>
      <filename>app/views/products/index.html.haml</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>409c08cc360d93260ad69a173f0516b77e8f9588</id>
    </parent>
  </parents>
  <author>
    <name>Alex Coles</name>
    <email>alexbcoles@mac.com</email>
  </author>
  <url>http://github.com/myabc/merb_mart/commit/4a76b9902c4077eeb41a6ad2971a6e11e5a9ed41</url>
  <id>4a76b9902c4077eeb41a6ad2971a6e11e5a9ed41</id>
  <committed-date>2008-06-02T06:05:25-07:00</committed-date>
  <authored-date>2008-06-02T06:05:25-07:00</authored-date>
  <message>Whitespace cleanup</message>
  <tree>11b58fbc5ccbd35cb76e43381ddc83009f507464</tree>
  <committer>
    <name>Alex Coles</name>
    <email>alexbcoles@mac.com</email>
  </committer>
</commit>
