<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>lib/generators/cucumber/templates/features/login.feature</filename>
    </added>
    <added>
      <filename>lib/generators/cucumber/templates/features/steps/login_steps.rb</filename>
    </added>
    <added>
      <filename>lib/merb_cucumber/helpers/activerecord.rb</filename>
    </added>
    <added>
      <filename>lib/merb_cucumber/helpers/datamapper.rb</filename>
    </added>
    <added>
      <filename>lib/merb_cucumber/world/base.rb</filename>
    </added>
    <added>
      <filename>lib/merb_cucumber/world/simple.rb</filename>
    </added>
    <added>
      <filename>lib/merb_cucumber/world/webrat.rb</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -1,6 +1,29 @@
 merb_cucumber
 =============
 
-Merb + Cucumber integration
+Merb + Cucumber integration with Webrat support.
 
-  merb-gen cucumber
\ No newline at end of file
+
+Installation
+------------
+
+If you want to use webrat, you need to install the fork at http://github.com/david/webrat.git
+
+
+First Time
+----------
+
+  cd your_merb_app
+  merb-gen cucumber
+  
+For Webrat run this instead:
+
+  merb-gen cucumber --session-type webrat
+
+It will also install a simple login feature that should pass if you're using merb-auth.
+
+
+Usage
+-----
+
+  rake features</diff>
      <filename>README</filename>
    </modified>
    <modified>
      <diff>@@ -1,4 +1,2 @@
 TODO:
-Handle ORM transactions before and after each scenario
-Detect the ORM
-Handle World, according to the ORM
+Fix bugs in the RequestMatchers from merb-core</diff>
      <filename>TODO</filename>
    </modified>
    <modified>
      <diff>@@ -1,24 +1,41 @@
 module Merb::Generators
+  
   class CucumberGenerator &lt; Generator
     
     desc &lt;&lt;-DESC
       Generates setup code for cucumber feature framework
     DESC
     
-    
     def self.source_root
       File.join(File.dirname(__FILE__), 'cucumber', 'templates')
     end
     
+    option :orm, :desc =&gt; 'Object-Relation Mapper to use (one of: none, activerecord, datamapper, sequel)'
+    
+    option :session_type, :default =&gt; :simple, :desc =&gt; 'Session type to use (one of: simple, webrat)'
+    
     template(:env) { |t| t.source = t.destination = &quot;features/env.rb&quot; }
-    # Webrat is not well supported (yet)
-    #template(:common_webrat) { |t| t.source = t.destination = &quot;features/steps/common_webrat.rb&quot; }
+    
+    template(:example_feature, :session_type =&gt; :webrat) do |t| 
+      t.source = t.destination = &quot;features/login.feature&quot; 
+    end
+    
+    template(:example_feature_steps, :session_type =&gt; :webrat) do |t| 
+      t.source = t.destination = &quot;features/steps/login_steps.rb&quot;
+    end
+    
+    template(:common_webrat, :session_type =&gt; :webrat) do |t| 
+      t.source = t.destination = &quot;features/steps/common_webrat.rb&quot;
+    end
+    
     template(:cucumber, :after =&gt; :chmod) { |t| t.source = t.destination = &quot;bin/cucumber&quot; }
     
     def chmod(action)
       File.chmod(0755, action.destination)
     end
+    
   end 
   
   add :cucumber, CucumberGenerator
+  
 end</diff>
      <filename>lib/generators/cucumber.rb</filename>
    </modified>
    <modified>
      <diff>@@ -9,8 +9,15 @@ end
 
 require &quot;merb-core&quot;
 require &quot;spec&quot;
+&lt;% if session_type == :webrat -%&gt;
+require &quot;webrat&quot;
+&lt;% end -%&gt;
+require &quot;merb_cucumber/world/&lt;%= session_type %&gt;&quot;
+&lt;% if Merb.orm == :datamapper -%&gt;
+require &quot;merb_cucumber/helpers/datamapper&quot;
+&lt;% elsif Merb.orm == :activerecord -%&gt;
+require &quot;merb_cucumber/helpers/activerecord&quot;
+&lt;% end -%&gt;
 
 Merb.start_environment(:testing =&gt; true, :adapter =&gt; 'runner', :environment =&gt; ENV['MERB_ENV'] || 'test')
-
-require 'merb_cucumber/feature'
   </diff>
      <filename>lib/generators/cucumber/templates/features/env.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,10 @@
 # Commonly used webrat steps
 # http://github.com/brynary/webrat
 
+When /^I go to (.*)$/ do |path|
+  visits path
+end
+
 When /^I press &quot;(.*)&quot;$/ do |button|
   clicks_button(button)
 end</diff>
      <filename>lib/generators/cucumber/templates/features/steps/common_webrat.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,11 +1,3 @@
 if defined?(Merb::Plugins)
   Merb::Plugins.add_rakefiles &quot;merb_cucumber&quot; / &quot;merbtasks&quot;
-  
-  # this should be called only on features/env.rb
-  #if Merb.environment == &quot;test&quot;
-  #  Merb::BootLoader.after_app_loads do
-  #    require File.join(File.dirname(__FILE__) / &quot;merb_cucumber&quot; / &quot;feature&quot;)
-  #  end
-  #end
-  
 end</diff>
      <filename>lib/merb_cucumber.rb</filename>
    </modified>
    <modified>
      <diff>@@ -6,6 +6,12 @@ Cucumber::Rake::Task.new(:features) do |t|
   t.cucumber_opts = &quot;--format pretty&quot;
 end
 
-if defined?(DataMapper)
-  task :features =&gt; 'db:automigrate'
+namespace :merb_cucumber do 
+  task :test_env do
+    Merb.start_environment(:environment =&gt; &quot;test&quot;, :adapter =&gt; 'runner')
+  end
+end
+
+if Merb.orm == :datamapper
+  task :features =&gt; ['merb_cucumber:test_env', 'db:automigrate']
 end</diff>
      <filename>lib/merb_cucumber/merbtasks.rb</filename>
    </modified>
  </modified>
  <removed type="array">
    <removed>
      <filename>lib/merb_cucumber/feature.rb</filename>
    </removed>
  </removed>
  <parents type="array">
    <parent>
      <id>4012b705affbfd1acc07c984200db0cdac614b02</id>
    </parent>
    <parent>
      <id>9b0b3a017bc24efa03a550284498c8573578f6f7</id>
    </parent>
  </parents>
  <author>
    <name>Roman Gonzalez</name>
    <email>roman@hasmanydevelopers.com</email>
  </author>
  <url>http://github.com/dchelimsky/merb_cucumber/commit/5e4c461695d831f95cab12ae167a7f26643ef559</url>
  <id>5e4c461695d831f95cab12ae167a7f26643ef559</id>
  <committed-date>2008-10-19T08:09:25-07:00</committed-date>
  <authored-date>2008-10-19T08:09:25-07:00</authored-date>
  <message>Merging david changes to my development branch, also adding the transactional database on each scenario</message>
  <tree>db9993e4e6e24ca222c1554b2d2596a2231f7476</tree>
  <committer>
    <name>Roman Gonzalez</name>
    <email>roman@hasmanydevelopers.com</email>
  </committer>
</commit>
