<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>app/models/merb/session.rb</filename>
    </added>
    <added>
      <filename>config/environments/staging.rb</filename>
    </added>
    <added>
      <filename>docs/tutorial.markdown</filename>
    </added>
    <added>
      <filename>merb.thor</filename>
    </added>
    <added>
      <filename>public/favicon.ico</filename>
    </added>
    <added>
      <filename>public/robots.txt</filename>
    </added>
    <added>
      <filename>spec/spec/spec.opts</filename>
    </added>
    <added>
      <filename>spec/spec/spec_helper.rb</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -1,14 +1,9 @@
 require 'rubygems'
-Gem.clear_paths
-Gem.path.unshift(File.join(File.dirname(__FILE__), &quot;gems&quot;))
-
-require 'rake'
 require 'rake/rdoctask'
-require 'rake/testtask'
-require 'spec/rake/spectask'
-require 'fileutils'
+
 require 'merb-core'
-require 'rubigen'
+require 'merb-core/tasks/merb'
+
 include FileUtils
 
 # Load the basic runtime dependencies; this will include 
@@ -19,16 +14,26 @@ Merb.load_dependencies(:environment =&gt; init_env)
 # Get Merb plugins and dependencies
 Merb::Plugins.rakefiles.each { |r| require r } 
 
-desc &quot;start runner environment&quot;
+# Load any app level custom rakefile extensions from lib/tasks
+tasks_path = File.join(File.dirname(__FILE__), &quot;lib&quot;, &quot;tasks&quot;)
+rake_files = Dir[&quot;#{tasks_path}/*.rake&quot;]
+rake_files.each{|rake_file| load rake_file }
+
+desc &quot;Start runner environment&quot;
 task :merb_env do
   Merb.start_environment(:environment =&gt; init_env, :adapter =&gt; 'runner')
 end
 
+
+require 'spec/rake/spectask'
+require &quot;merb-core/test/tasks/spectasks&quot;
+desc 'Default: run spec examples'
+task :default =&gt; 'spec'
+
+
+
+
 ##############################################################################
-# ADD YOUR CUSTOM TASKS BELOW
+# ADD YOUR CUSTOM TASKS IN /lib/tasks
+# NAME YOUR RAKE FILES file_name.rake
 ##############################################################################
-
-desc &quot;Add new files to subversion&quot;
-task :svn_add do
-   system &quot;svn status | grep '^\?' | sed -e 's/? *//' | sed -e 's/ /\ /g' | xargs svn add&quot;
-end</diff>
      <filename>Rakefile</filename>
    </modified>
    <modified>
      <diff>@@ -131,7 +131,7 @@
 		&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;h2&gt;&lt;%=h @exception.message %&gt;&lt;/h2&gt;
 			&lt;% else -%&gt;
 				&lt;h2&gt;Sorry about that...&lt;/h2&gt;
 			&lt;% end -%&gt;</diff>
      <filename>app/views/exceptions/internal_server_error.html.erb</filename>
    </modified>
    <modified>
      <diff>@@ -8,7 +8,7 @@
 
   &lt;div id=&quot;left-container&quot;&gt;
     &lt;h3&gt;Exception:&lt;/h3&gt;
-    &lt;p&gt;&lt;%= params[:exception] %&gt;&lt;/p&gt;
+    &lt;p&gt;&lt;%= request.exceptions.first.message %&gt;&lt;/p&gt;
   &lt;/div&gt;
 
   &lt;div id=&quot;main-container&quot;&gt;
@@ -38,18 +38,26 @@
 
     &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://merb.devjavu.com/&quot;&gt; project development page&lt;/a&gt; or,
-      feel free to come chat at irc.freenode.net, channel #merb.&lt;/p&gt;
+      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
+      &lt;a href=&quot;http://merb.lighthouseapp.com/&quot;&gt;project development page&lt;/a&gt;
+      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 byy editing &lt;tt&gt;app/views/exceptions/not_found.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;
 
   &lt;div id=&quot;footer-container&quot;&gt;
     &lt;hr /&gt;
     &lt;div class=&quot;left&quot;&gt;&lt;/div&gt;
-    &lt;div class=&quot;right&quot;&gt;&amp;copy; 2007 the merb dev team&lt;/div&gt;
+    &lt;div class=&quot;right&quot;&gt;&amp;copy; 2008 the merb dev team&lt;/div&gt;
     &lt;p&gt;&amp;nbsp;&lt;/p&gt;
   &lt;/div&gt;
 &lt;/div&gt;</diff>
      <filename>app/views/exceptions/not_acceptable.html.erb</filename>
    </modified>
    <modified>
      <diff>@@ -8,7 +8,7 @@
 
   &lt;div id=&quot;left-container&quot;&gt;
     &lt;h3&gt;Exception:&lt;/h3&gt;
-    &lt;p&gt;&lt;%= params[:exception] %&gt;&lt;/p&gt;
+    &lt;p&gt;&lt;%= request.exceptions.first.message %&gt;&lt;/p&gt;
   &lt;/div&gt;
 
   &lt;div id=&quot;main-container&quot;&gt;
@@ -17,8 +17,16 @@
     
     &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://merb.devjavu.com/&quot;&gt; project development page&lt;/a&gt; or,
-      feel free to come chat at irc.freenode.net, channel #merb.&lt;/p&gt;
+      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
+      &lt;a href=&quot;http://merb.lighthouseapp.com/&quot;&gt;project development page&lt;/a&gt;
+      on Lighthouse.&lt;/p&gt;
 
     &lt;h3&gt;How do I edit this page?&lt;/h3&gt;
     &lt;p&gt;You're seeing this page because you need to edit the following files:
@@ -33,7 +41,7 @@
   &lt;div id=&quot;footer-container&quot;&gt;
     &lt;hr /&gt;
     &lt;div class=&quot;left&quot;&gt;&lt;/div&gt;
-    &lt;div class=&quot;right&quot;&gt;&amp;copy; 2007 the merb dev team&lt;/div&gt;
+    &lt;div class=&quot;right&quot;&gt;&amp;copy; 2008 the merb dev team&lt;/div&gt;
     &lt;p&gt;&amp;nbsp;&lt;/p&gt;
   &lt;/div&gt;
 &lt;/div&gt;</diff>
      <filename>app/views/exceptions/not_found.html.erb</filename>
    </modified>
    <modified>
      <diff>@@ -9,7 +9,7 @@ class Autotest::Merb &lt; Autotest
   # +fixtures_dir+::         the directory to find fixtures in
   attr_accessor :model_tests_dir, :controller_tests_dir, :view_tests_dir, :fixtures_dir
   
-  def initialize # :nodoc:
+  def initialize
     super
     
     initialize_test_layout
@@ -127,7 +127,7 @@ private
   #   =&gt; &quot;login_controller_test.rb&quot;
   #   &gt; test_for(&quot;form&quot;, :view)
   #   =&gt; &quot;form_view_spec.rb&quot; # If you're running a RSpec-like suite
-  def test_for(filename, kind_of_test) # :nodoc:
+  def test_for(filename, kind_of_test)
     name  = [filename]
     name &lt;&lt; kind_of_test.to_s if kind_of_test == :view
     name &lt;&lt; &quot;test&quot;</diff>
      <filename>autotest/merb.rb</filename>
    </modified>
    <modified>
      <diff>@@ -3,147 +3,115 @@ require 'autotest'
 
 class RspecCommandError &lt; StandardError; end
 
+# This class maps your application's structure so Autotest can understand what 
+# specs to run when files change.
+#
+# Fixtures are _not_ covered by this class. If you change a fixture file, you 
+# will have to run your spec suite manually, or, better yet, provide your own 
+# Autotest map explaining how your fixtures are set up.
 class Autotest::MerbRspec &lt; Autotest
-  
-  # +model_tests_dir+::      the directory to find model-centric tests
-  # +controller_tests_dir+:: the directory to find controller-centric tests
-  # +view_tests_dir+::       the directory to find view-centric tests
-  # +fixtures_dir+::         the directory to find fixtures in
-  attr_accessor :model_tests_dir, :controller_tests_dir, :view_tests_dir, :fixtures_dir
-  
-  def initialize # :nodoc:
+  def initialize
     super
-    
-    initialize_test_layout
-    
+
     # Ignore any happenings in these directories
-    add_exception %r%^\./(?:doc|log|public|tmp)%
-    
+    add_exception %r%^\./(?:doc|log|public|tmp|\.git|\.hg|\.svn|framework|gems|schema|\.DS_Store|autotest|bin|.*\.sqlite3)% 
+    # Ignore SCM directories and custom Autotest mappings
+    %w[.svn .hg .git .autotest].each { |exception| add_exception(exception) }
+
     # Ignore any mappings that Autotest may have already set up
     clear_mappings
-    
-    # Any changes to a file in the root of the 'lib' directory will run any 
-    # model test with a corresponding name.
-    add_mapping %r%^lib\/.*\.rb% do |filename, _|
-      files_matching %r%#{model_test_for(filename)}$%
+
+    # Anything in /lib could have a spec anywhere, if at all. So, look for
+    # files with roughly the same name as the file in /lib
+    add_mapping %r%^lib\/(.*)\.rb% do |_, m|
+      files_matching %r%^spec\/#{m[1]}%
     end
-    
+
     add_mapping %r%^spec/(spec_helper|shared/.*)\.rb$% do
-      files_matching %r%^spec/.*_spec\.rb$%
+      all_specs
     end
-    
-    # Any changes to a fixture will run corresponding view, controller and 
-    # model tests
-    add_mapping %r%^#{fixtures_dir}/(.*)s.yml% do |_, m|
-      [
-        model_test_for(m[1]), 
-        controller_test_for(m[1]), 
-        view_test_for(m[1])
-      ]
-    end
-    
-    # Any change to a test or spec will cause it to be run
-    add_mapping %r%^spec/(unit|models|integration|controllers|views|functional)/.*rb$% do |filename, _|
+
+    # Changing a spec will cause it to run itself
+    add_mapping %r%^spec/.*\.rb$% do |filename, _|
       filename
     end
-    
+
     # Any change to a model will cause it's corresponding test to be run
     add_mapping %r%^app/models/(.*)\.rb$% do |_, m|
-      model_test_for(m[1])
+      spec_for(m[1], 'model')
     end
-    
-    # Any change to the global helper will result in all view and controller 
+
+    # Any change to global_helpers will result in all view and controller
     # tests being run
-    add_mapping %r%^app/helpers/global_helpers.rb% do
-      files_matching %r%^spec/(views|functional|controllers)/.*_spec\.rb$%
+    add_mapping %r%^app/helpers/global_helpers\.rb% do
+      files_matching %r%^spec/(views|controllers|helpers)/.*_spec\.rb$%
     end
-    
-    # Any change to a helper will run it's corresponding view and controller 
-    # tests, unless the helper is the global helper. Changes to the global 
-    # helper run all view and controller tests.
-    add_mapping %r%^app/helpers/(.*)_helper(s)?.rb% do |_, m|
-      if m[1] == &quot;global&quot; then
-        files_matching %r%^spec/(views|functional|controllers)/.*_spec\.rb$%
-      else
-        [
-          view_test_for(m[1]), 
-          controller_test_for(m[1])
-        ]
-      end
+
+    # Any change to a helper will cause its spec to be run
+    add_mapping %r%^app/helpers/((.*)_helper(s)?)\.rb% do |_, m|
+      spec_for(m[1], 'helper')
     end
-    
-    # Changes to views result in their corresponding view and controller test 
-    # being run
+
+    # Changes to a view cause its spec to be run
     add_mapping %r%^app/views/(.*)/% do |_, m|
-      [
-        view_test_for(m[1]), 
-        controller_test_for(m[1])
-      ]
+      spec_for(m[1], 'view')
     end
-    
-    # Changes to a controller result in its corresponding test being run. If 
-    # the controller is the exception or application controller, all 
-    # controller tests are run.
+
+    # Changes to a controller result in its corresponding spec being run. If
+    # the controller is the exception or application controller, all
+    # controller specs are run.
     add_mapping %r%^app/controllers/(.*)\.rb$% do |_, m|
       if [&quot;application&quot;, &quot;exception&quot;].include?(m[1])
-        files_matching %r%^spec/(controllers|views|functional)/.*_spec\.rb$%
+        files_matching %r%^spec/controllers/.*_spec\.rb$%
       else
-        controller_test_for(m[1])
+        spec_for(m[1], 'controller')
       end
     end
 
-    # If a change is made to the router, run all controller and view tests
-    add_mapping %r%^config/router.rb$% do # FIX
-      files_matching %r%^spec/(controllers|views|functional)/.*_spec\.rb$%
+    # If a change is made to the router, run controller, view and helper specs
+    add_mapping %r%^config/router.rb$% do
+      files_matching %r%^spec/(controllers|views|helpers)/.*_spec\.rb$%
     end
 
-    # If any of the major files governing the environment are altered, run 
+    # If any of the major files governing the environment are altered, run
     # everything
-    add_mapping %r%^spec/spec_helper.rb|config/(init|rack|environments/test.rb|database.yml)% do # FIX
-      files_matching %r%^spec/(unit|models|controllers|views|functional)/.*_spec\.rb$%
+    add_mapping %r%^config/(init|rack|environments/test).*\.rb|database\.yml% do 
+      all_specs
     end
   end
-  
+
   def failed_results(results)
     results.scan(/^\d+\)\n(?:\e\[\d*m)?(?:.*?Error in )?'([^\n]*)'(?: FAILED)?(?:\e\[\d*m)?\n(.*?)\n\n/m)
   end
 
   def handle_results(results)
-    @failures = failed_results(results)
-    @files_to_test = consolidate_failures @failures
-    unless $TESTING
-      if @files_to_test.empty?
-        hook :green
-      else
-        hook :red
-      end
-    end
-    @tainted = true unless @files_to_test.empty?
+    @failures      = failed_results(results)
+    @files_to_test = consolidate_failures(@failures)
+    @files_to_test.empty? &amp;&amp; !$TESTING ? hook(:green) : hook(:red)
+    @tainted = !@files_to_test.empty?
   end
-  
+
   def consolidate_failures(failed)
     filters = Hash.new { |h,k| h[k] = [] }
     failed.each do |spec, failed_trace|
-      find_files.keys.select { |f| f =~ /spec\// }.each do |f|
-        if failed_trace =~ Regexp.new(f)
-          filters[f] &lt;&lt; spec
-          break
-        end
+      if f = test_files_for(failed).find { |f| f =~ /spec\// }
+        filters[f] &lt;&lt; spec
+        break
       end
     end
     filters
   end
 
-  def make_test_cmd(files_to_test)
+  def make_test_cmd(specs_to_runs)
     [
-      ruby, 
-      &quot;-S&quot;, 
-      spec_command, 
-      add_options_if_present, 
+      ruby,
+      &quot;-S&quot;,
+      spec_command,
+      add_options_if_present,
       files_to_test.keys.flatten.join(' ')
-    ].join(&quot; &quot;)
+    ].join(' ')
   end
-  
+
   def add_options_if_present
     File.exist?(&quot;spec/spec.opts&quot;) ? &quot;-O spec/spec.opts &quot; : &quot;&quot;
   end
@@ -153,10 +121,10 @@ class Autotest::MerbRspec &lt; Autotest
   # ~/.autotest to provide a different spec command then the default
   # paths provided.
   def spec_command(separator=File::ALT_SEPARATOR)
-    unless defined? @spec_command then
-      @spec_command = spec_commands.find { |cmd| File.exists? cmd }
+    unless defined?(@spec_command)
+      @spec_command = spec_commands.find { |cmd| File.exists?(cmd) }
 
-      raise RspecCommandError, &quot;No spec command could be found!&quot; unless @spec_command
+      raise RspecCommandError, &quot;No spec command could be found&quot; unless @spec_command
 
       @spec_command.gsub!(File::SEPARATOR, separator) if separator
     end
@@ -166,61 +134,32 @@ class Autotest::MerbRspec &lt; Autotest
   # Autotest will look for spec commands in the following
   # locations, in this order:
   #
-  #   * bin/spec
   #   * default spec bin/loader installed in Rubygems
+  #   * any spec command found in PATH
   def spec_commands
-    [
-      File.expand_path(File.join(File.dirname(__FILE__), '..', '..', 'bin', 'spec')),
-      File.join(Config::CONFIG['bindir'], 'spec')
-    ]
+    [File.join(Config::CONFIG['bindir'], 'spec'), 'spec']
   end
-  
+
 private
 
-  # Determines the paths we can expect tests or specs to reside, as well as 
-  # corresponding fixtures.
-  def initialize_test_layout
-    self.model_tests_dir      = &quot;spec/models&quot;
-    self.controller_tests_dir = &quot;spec/controllers&quot;
-    self.view_tests_dir       = &quot;spec/views&quot;
-    self.fixtures_dir         = &quot;spec/fixtures&quot;
+  # Runs +files_matching+ for all specs
+  def all_specs
+    files_matching %r%^spec/.*_spec\.rb$%
   end
-  
-  # Given a filename and the test type, this method will return the 
-  # corresponding test's or spec's name.
-  # 
+
+  # Generates a path to some spec given its kind and the match from a mapping
+  #
   # ==== Arguments
-  # +filename+&lt;String&gt;:: the file name of the model, view, or controller
-  # +kind_of_test+&lt;Symbol&gt;:: the type of test we that we should run
-  # 
+  # match&lt;String&gt;:: the match from a mapping
+  # kind&lt;String&gt;:: the kind of spec that the match represents
+  #
   # ==== Returns
-  # String:: the name of the corresponding test or spec
-  # 
+  # String
+  #
   # ==== Example
-  # 
-  #   &gt; test_for(&quot;user&quot;, :model)
-  #   =&gt; &quot;user_test.rb&quot;
-  #   &gt; test_for(&quot;login&quot;, :controller)
-  #   =&gt; &quot;login_controller_test.rb&quot;
-  #   &gt; test_for(&quot;form&quot;, :view)
-  #   =&gt; &quot;form_view_spec.rb&quot; # If you're running a RSpec-like suite
-  def test_for(filename, kind_of_test) # :nodoc:
-    name  = [filename]
-    name &lt;&lt; kind_of_test.to_s if kind_of_test == :view
-    name &lt;&lt; &quot;spec&quot;
-    return name.join(&quot;_&quot;) + &quot;.rb&quot;
-  end
-  
-  def model_test_for(filename)
-    [model_tests_dir, test_for(filename, :model)].join(&quot;/&quot;)
-  end
-  
-  def controller_test_for(filename)
-    [controller_tests_dir, test_for(filename, :controller)].join(&quot;/&quot;)
-  end
-  
-  def view_test_for(filename)
-    [view_tests_dir, test_for(filename, :view)].join(&quot;/&quot;)
+  #   &gt; spec_for('post', :view')
+  #   =&gt; &quot;spec/views/post_spec.rb&quot;
+  def spec_for(match, kind)
+    File.join(&quot;spec&quot;, kind + 's', &quot;#{match}_spec.rb&quot;)
   end
-  
 end</diff>
      <filename>autotest/merb_rspec.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,10 @@
 Merb.logger.info(&quot;Loaded DEVELOPMENT Environment...&quot;)
 Merb::Config.use { |c|
   c[:exception_details] = true
+  c[:reload_templates] = true
   c[:reload_classes] = true
   c[:reload_time] = 0.5
   c[:log_auto_flush ] = true
+  c[:ignore_tampered_cookies] = true
+  c[:log_level] = :debug
 }
\ No newline at end of file</diff>
      <filename>config/environments/development.rb</filename>
    </modified>
    <modified>
      <diff>@@ -2,4 +2,6 @@ Merb.logger.info(&quot;Loaded PRODUCTION Environment...&quot;)
 Merb::Config.use { |c|
   c[:exception_details] = false
   c[:reload_classes] = false
+  c[:log_level] = :error
+  c[:log_file] = Merb.log_path + &quot;/production.log&quot;
 }
\ No newline at end of file</diff>
      <filename>config/environments/production.rb</filename>
    </modified>
    <modified>
      <diff>@@ -3,4 +3,5 @@ Merb::Config.use { |c|
   c[:testing] = true
   c[:exception_details] = true
   c[:log_auto_flush ] = true
-}
\ No newline at end of file
+  c[:log_level] = :fatal
+}</diff>
      <filename>config/environments/test.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,60 +1,189 @@
-# Make the app's &quot;gems&quot; directory a place where gems are loaded from
-Gem.clear_paths
-Gem.path.unshift(Merb.root / &quot;gems&quot;)
+#
+# ==== Structure of Merb initializer
+#
+# 1. Load paths.
+# 2. Dependencies configuration.
+# 3. Libraries (ORM, testing tool, etc) you use.
+# 4. Application-specific configuration.
 
-# Make the app's &quot;lib&quot; directory a place where ruby files get &quot;require&quot;d from
-$LOAD_PATH.unshift(Merb.root / &quot;lib&quot;)
+#
+# ==== Set up load paths
+#
 
+# Add the app's &quot;gems&quot; directory to the gem load path.
+# Note that the gems directory must mirror the structure RubyGems uses for
+# directories under which gems are kept.
+#
+# To conveniently set it up, use gem install -i &lt;merb_app_root/gems&gt;
+# when installing gems. This will set up the structure under /gems
+# automagically.
+#
+# An example:
+#
+# You want to bundle ActiveRecord and ActiveSupport with your Merb
+# application to be deployment environment independent. To do so,
+# install gems into merb_app_root/gems directory like this:
+#
+# gem install -i merb_app_root/gems activesupport-post-2.0.2.gem activerecord-post-2.0.2.gem
+#
+# Since RubyGems will search merb_app_root/gems for dependencies, order
+# in the statement above is important: we need to install ActiveSupport which
+# ActiveRecord depends on first.
+#
+# Remember that bundling of dependencies as gems with your application
+# makes it independent of the environment it runs in and is a very
+# good, encouraged practice to follow.
 
-Merb::Config.use do |c|
-  
-  ### Sets up a custom session id key, if you want to piggyback sessions of other applications
-  ### with the cookie session store. If not specified, defaults to '_session_id'.
-  # c[:session_id_key] = '_session_id'
-  
-  c[:session_secret_key]  = 'c0113d63bf43fe84d826be0245b26d7a44477e58'
-  c[:session_store] = 'cookie'
-end  
+# If you want modules and classes from libraries organized like
+# merbapp/lib/magicwand/lib/magicwand.rb to autoload,
+# uncomment this.
+# Merb.push_path(:lib, Merb.root / &quot;lib&quot;) # uses **/*.rb as path glob.
+
+# ==== Dependencies
+
+# These are a few, but not all, of the standard merb-more dependencies:
+#
+# dependency &quot;merb-action-args&quot;   # Provides support for querystring arguments to be passed in to controller actions
+# dependency &quot;merb-assets&quot;        # Provides link_to, asset_path, auto_link, image_tag methods (and lots more)
+dependency &quot;merb-helpers&quot;       # Provides the form, date/time, and other helpers
+# dependency &quot;merb-cache&quot;         # Provides your application with caching functions 
+# dependency &quot;merb-haml&quot;          # Adds rake tasks and the haml generators to your merb app
+# dependency &quot;merb-jquery&quot;        # Provides a #jquery method to insert jQuery code in to a content block
+# dependency &quot;merb-mailer&quot;        # Integrates mail support via Merb Mailer
+
+# These are a few, but not all, of the merb-plugin dependencies:
+#
+# dependency &quot;merb_param_protection&quot;  # Lets you have better control over your query string params and param logging
+# dependency &quot;merb_stories&quot;           # Provides rspec helper methods for your application
+
+# Miscellaneous dependencies:
+#
+# Specify more than one dependency at a time with the #dependencies method:
+# dependencies &quot;RedCloth&quot;, &quot;BlueCloth&quot;
+
+# Specify a specific version of a dependency
+# dependency &quot;RedCloth&quot;, &quot;&gt; 3.0&quot;
+
+# Specify more than one dependency at a time as well as the version:
+# dependencies &quot;RedCloth&quot; =&gt; &quot;&gt; 3.0&quot;, &quot;BlueCloth&quot; =&gt; &quot;= 1.0.0&quot;
+
+# You can also add in dependencies after your application loads.
+Merb::BootLoader.after_app_loads do
+  # For example, the magic_admin gem uses the app's model classes. This requires that the models be 
+  # loaded already. So, we can put the magic_admin dependency here:
+  # dependency &quot;magic_admin&quot;
+end
 
-### Merb doesn't come with database support by default.  You need
-### an ORM plugin.  Install one, and uncomment one of the following lines,
-### if you need a database.
+#
+# ==== Set up your ORM of choice
+#
 
-### Uncomment for DataMapper ORM
+# Merb doesn't come with database support by default.  You need
+# an ORM plugin.  Install one, and uncomment one of the following lines,
+# if you need a database.
+
+# Uncomment for DataMapper ORM
 # use_orm :datamapper
 
-### Uncomment for ActiveRecord ORM
+# Uncomment for ActiveRecord ORM
 use_orm :activerecord
 
-### Uncomment for Sequel ORM
+# Uncomment for Sequel ORM
 # use_orm :sequel
 
 
-### This defines which test framework the generators will use
-### rspec is turned on by default
-###
-### Note that you need to install the merb_rspec if you want to ue
-### rspec and merb_test_unit if you want to use test_unit. 
-### merb_rspec is installed by default if you did gem install
-### merb.
-###
+#
+# ==== Pick what you test with
+#
+
+# This defines which test framework the generators will use.
+# RSpec is turned on by default.
+#
+# To use Test::Unit, you need to install the merb_test_unit gem.
+# To use RSpec, you don't have to install any additional gems, since
+# merb-core provides support for RSpec.
+#
 # use_test :test_unit
 use_test :rspec
 
-### Add your other dependencies here
 
-# These are some examples of how you might specify dependencies.
-# 
-# dependencies &quot;RedCloth&quot;, &quot;merb_helpers&quot;
-# OR
-# dependency &quot;RedCloth&quot;, &quot;&gt; 3.0&quot;
-# OR
-# dependencies &quot;RedCloth&quot; =&gt; &quot;&gt; 3.0&quot;, &quot;ruby-aes-cext&quot; =&gt; &quot;= 1.0&quot;
+#
+# ==== Choose which template engine to use by default
+#
 
-dependency &quot;merb_helpers&quot;
+# Merb can generate views for different template engines, choose your favourite as the default.
 
-Merb::BootLoader.after_app_loads do
-  ### Add dependencies here that must load after the application loads:
+use_template_engine :erb
+# use_template_engine :haml
 
-  # dependency &quot;magic_admin&quot; # this gem uses the app's model classes
+
+#
+# ==== Set up your basic configuration
+#
+
+# IMPORTANT:
+#
+# early on Merb boot init file is not yet loaded.
+# Thus setting PORT, PID FILE and ADAPTER using init file does not
+# make sense and only can lead to confusion because default settings
+# will be used instead.
+#
+# Please use command line options for them.
+# See http://wiki.merbivore.com/pages/merb-core-boot-process
+# if you want to know more.
+Merb::Config.use do |c|
+  # Sets up a custom session id key which is used for the session persistence
+  # cookie name.  If not specified, defaults to '_session_id'.
+  # c[:session_id_key] = '_session_id'
+  
+  # The session_secret_key is only required for the cookie session store.
+  c[:session_secret_key]  = '7e10ab4be37b5203f478cde3c07ba051b27ebf20'
+  
+  # There are various options here, by default Merb comes with 'cookie', 
+  # 'memory', 'memcache' or 'container'.  
+  # You can of course use your favorite ORM instead: 
+  # 'datamapper', 'sequel' or 'activerecord'.
+  c[:session_store] = 'cookie'
 end
+
+
+# ==== Tune your inflector
+
+# To fine tune your inflector use the word, singular_word and plural_word
+# methods of English::Inflect module metaclass.
+#
+# Here we define erratum/errata exception case:
+#
+# English::Inflect.word &quot;erratum&quot;, &quot;errata&quot;
+#
+# In case singular and plural forms are the same omit
+# second argument on call:
+#
+# English::Inflect.word 'information'
+#
+# You can also define general, singularization and pluralization
+# rules:
+#
+# Once the following rule is defined:
+# English::Inflect.rule 'y', 'ies'
+#
+# You can see the following results:
+# irb&gt; &quot;fly&quot;.plural
+# =&gt; flies
+# irb&gt; &quot;cry&quot;.plural
+# =&gt; cries
+#
+# Example for singularization rule:
+#
+# English::Inflect.singular_rule 'o', 'oes'
+#
+# Works like this:
+# irb&gt; &quot;heroes&quot;.singular
+# =&gt; hero
+#
+# Example of pluralization rule:
+# English::Inflect.singular_rule 'fe', 'ves'
+#
+# And the result is:
+# irb&gt; &quot;wife&quot;.plural
+# =&gt; wives</diff>
      <filename>config/init.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1 +1,12 @@
+
+# use PathPrefix Middleware if :path_prefix is set in Merb::Config
+if prefix = ::Merb::Config[:path_prefix]
+  use Merb::Rack::PathPrefix, prefix
+end
+
+# comment this out if you are running merb behind a load balancer
+# that serves static files
+use Merb::Rack::Static, Merb.dir_for(:public)
+
+# this is our main merb application
 run Merb::Rack::Application.new
\ No newline at end of file</diff>
      <filename>config/rack.rb</filename>
    </modified>
    <modified>
      <diff>@@ -2,34 +2,40 @@
 #
 # You can route a specific URL to a controller / action pair:
 #
-#   r.match(&quot;/contact&quot;).
+#   match(&quot;/contact&quot;).
 #     to(:controller =&gt; &quot;info&quot;, :action =&gt; &quot;contact&quot;)
 #
 # You can define placeholder parts of the url with the :symbol notation. These
 # placeholders will be available in the params hash of your controllers. For example:
 #
-#   r.match(&quot;/books/:book_id/:action&quot;).
+#   match(&quot;/books/:book_id/:action&quot;).
 #     to(:controller =&gt; &quot;books&quot;)
 #   
 # Or, use placeholders in the &quot;to&quot; results for more complicated routing, e.g.:
 #
-#   r.match(&quot;/admin/:module/:controller/:action/:id&quot;).
+#   match(&quot;/admin/:module/:controller/:action/:id&quot;).
 #     to(:controller =&gt; &quot;:module/:controller&quot;)
 #
+# You can specify conditions on the placeholder by passing a hash as the second
+# argument of &quot;match&quot;
+#
+#   match(&quot;/registration/:course_name&quot;, :course_name =&gt; /^[a-z]{3,5}-\d{5}$/).
+#     to(:controller =&gt; &quot;registration&quot;)
+#
 # You can also use regular expressions, deferred routes, and many other options.
 # See merb/specs/merb/router.rb for a fairly complete usage sample.
 
 Merb.logger.info(&quot;Compiling routes...&quot;)
-Merb::Router.prepare do |r|
+Merb::Router.prepare do
   # RESTful routes
-  # r.resources :posts
+  # resources :posts
 
   # This is the default route for /:controller/:action/:id
   # This is fine for most cases.  If you're heavily using resource-based
   # routes, you may want to comment/remove this line to prevent
   # clients from calling your create or destroy actions with a GET
-  r.default_routes
+  default_routes
   
   # Change this for your home page to be available at /
-  # r.match('/').to(:controller =&gt; 'whatever', :action =&gt;'index')
+  # match('/').to(:controller =&gt; 'whatever', :action =&gt;'index')
 end
\ No newline at end of file</diff>
      <filename>config/router.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,179 +1,119 @@
 body {
-	font-family: Arial, Verdana, sans-serif;
-	font-size: 12px;
-	background-color: #fff;
-	padding: 40px;
+  font-family: Arial, Verdana, sans-serif;
+  font-size: 12px;
+  background-color: #fff;
 }
-
 * {
-	margin: 0px;
-	padding: 0px;
-	text-decoration: none;
+  margin: 0px;
+  padding: 0px;
+  text-decoration: none;
 }
-
 html {
-	margin-bottom: 1px;
+  height: 100%;
+  margin-bottom: 1px;
 }
-
 #container {
-	width: 80%;
-	text-align: left;
-	background-color: #fff;
-	margin-right: auto;
-	margin-left: auto;
+  width: 80%;
+  text-align: left;
+  background-color: #fff;
+  margin-right: auto;
+  margin-left: auto;
 }
-
 #header-container {
-	width: 100%;
-	padding-top: 15px;
+  width: 100%;
+  padding-top: 15px;
 }
-
 #header-container h1, #header-container h2 {
-	margin-left: 6px;
-	margin-bottom: 6px;
+  margin-left: 6px;
+  margin-bottom: 6px;
 }
-
 .spacer {
-	width: 100%;
-	height: 15px;
+  width: 100%;
+  height: 15px;
 }
-
 hr {
-	border: 0px;
-	color: #ccc;
-	background-color: #cdcdcd;
-	height: 1px;
-	width: 100%;
-	text-align: left;
+  border: 0px;
+  color: #ccc;
+  background-color: #cdcdcd;
+  height: 1px;
+  width: 100%;
+  text-align: left;
 }
-
 h1 {
-	color: #c55;
-	background-color: #fff;
-	letter-spacing: -0.05em;
-	word-spacing: 2px;
-	font: bold 32px &quot;Helvetica Neue&quot;, Helvetica, Arial, FreeSans, sans-serif;
-	text-transform: uppercase;
+  font-size: 28px;
+  color: #c55;
+  background-color: #fff;
+  font-family: Arial, Verdana, sans-serif;
+  font-weight: 300;
 }
-
 h2 {
-	font-size: 20px;
-	color: #999;
-	font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, FreeSans, sans-serif;
-	;
+  font-size: 15px;
+  color: #999;
+  font-family: Arial, Verdana, sans-serif;
   font-weight: 300;
-	background-color: #fff;
-	margin-bottom: 40px;
+  background-color: #fff;
 }
-
 h3 {
-	color: #4d9b12;
-	font-size: 15px;
-	text-align: left;
-	font-weight: 300;
-	padding: 5px;
-	margin-top: 5px;
+  color: #4d9b12;
+  font-size: 15px;
+  text-align: left;
+  font-weight: 300;
+  padding: 5px;
+  margin-top: 5px;
 }
 
 #left-container {
-	float: left;
-	width: 250px;
-	background-color: #FFFFFF;
-	color: black;
+  float: left;
+  width: 250px;
+  background-color: #FFFFFF;
+  color: black;
 }
 
 #left-container h3 {
-	color: #c55;
+  color: #c55;
 }
 
 #main-container {
-	margin: 5px 5px 5px 260px;
-	padding: 15px;
-	border-left: 1px solid silver;
-	min-height: 400px;
+  margin: 5px 5px 5px 260px;
+  padding: 15px;
+  border-left: 1px solid silver;
+  min-height: 400px;
 }
-
 p {
-	color: #767d83;
-	background-color: #fff;
-	padding: 5px;
-	font: 17px/20px &quot;Helvetica Neue&quot;, Helvetica, Arial, FreeSans, sans-serif;
+  color: #000;
+  background-color: #fff;
+  line-height: 20px;
+  padding: 5px;
 }
-
 a {
-	color: #4d9b12;
-	background-color: #fff;
-	text-decoration: none;
+  color: #4d9b12;
+  background-color: #fff;
+  text-decoration: none;
 }
-
 a:hover {
-	color: #4d9b12;
-	background-color: #fff;
-	text-decoration: underline;
+  color: #4d9b12;
+  background-color: #fff;
+  text-decoration: underline;
 }
-
 #footer-container {
-	clear: both;
-	font-size: 12px;
-	font-family: Verdana, Arial, sans-serif;
+  clear: both;
+  font-size: 12px;
+  font-family: Verdana, Arial, sans-serif;
 }
-
 .right {
-	float: right;
-	font-size: 100%;
-	margin-top: 5px;
-	color: #999;
-	background-color: #fff;
+  float: right;
+  font-size: 100%;
+  margin-top: 5px;
+  color: #999;
+  background-color: #fff;
 }
-
 .left {
-	float: left;
-	font-size: 100%;
-	margin-top: 5px;
-	color: #999;
-	background-color: #fff;
+  float: left;
+  font-size: 100%;
+  margin-top: 5px;
+  color: #999;
+  background-color: #fff;
 }
-
 #main-container ul {
-	margin-left: 3.0em;
-}
-
-#posts.container {
-	border: 10px solid #eaeaea;
-	min-height: 240px;
-	position: relative;
-}
-
-div.post {
-	position: relative;
-	border-bottom: 2px solid #c0c0c0;
-}
-
-div.post p.body {
-	color: #3d4043;
-}
-
-div.post p.created {
-	color: #d5d5d5;
-	position: absolute;
-	top: 0px;
-	right: 10px;
-	font-weight: bold;
-	font-size: 15px;
-}
-
-form {
-	background-color: #d5d5d5;
-	padding: 20px;
-}
-
-form input[type=text] {
-	font: 17px &quot;Helvetica Neue&quot;, Helvetica, Arial, FreeSans, sans-serif;
-	padding: 3px 5px;
-	color: #424242;
-}
-
-form button {
-	font-size: medium;
-	padding: 5px 10px;
+  margin-left: 3.0em;
 }
\ No newline at end of file</diff>
      <filename>public/stylesheets/master.css</filename>
    </modified>
  </modified>
  <removed type="array">
    <removed>
      <filename>log/merb_test.log</filename>
    </removed>
  </removed>
  <parents type="array">
    <parent>
      <id>f7df4c7f5f0d2e3d55af51e61d57679f7bf01ee4</id>
    </parent>
  </parents>
  <author>
    <name>Anonymous</name>
    <email>admin@monsterignite.com</email>
  </author>
  <url>http://github.com/oftenvoid/slapp/commit/1b6ba6f5ce4451effefdd996f804c2e0ad4af97e</url>
  <id>1b6ba6f5ce4451effefdd996f804c2e0ad4af97e</id>
  <committed-date>2008-12-28T21:04:35-08:00</committed-date>
  <authored-date>2008-12-28T21:04:35-08:00</authored-date>
  <message>Partial update to Merb 0.9.8-0.9.9.</message>
  <tree>2260525af1ac727ffa1233a4da16570c6f60dced</tree>
  <committer>
    <name>Anonymous</name>
    <email>admin@monsterignite.com</email>
  </committer>
</commit>
