From 04360cc2918338564a17971f8691f79bbc9172c9 Mon Sep 17 00:00:00 2001 From: Jonas Nicklas Date: Thu, 24 Feb 2011 13:11:00 +0100 Subject: [PATCH] Reflect on tags, rather than hardcoding This means that drivers don't have to add their own cucumber tags anymore. --- lib/capybara/cucumber.rb | 24 +++++++++--------------- 1 file changed, 9 insertions(+), 15 deletions(-) diff --git a/lib/capybara/cucumber.rb b/lib/capybara/cucumber.rb index 3b3af3d5..5a669dca 100644 --- a/lib/capybara/cucumber.rb +++ b/lib/capybara/cucumber.rb @@ -1,4 +1,5 @@ require 'capybara' + require 'capybara/dsl' require 'capybara/rspec/matchers' @@ -9,24 +10,17 @@ After do Capybara.reset_sessions! end -Before('@javascript') do +Before '@javascript' do Capybara.current_driver = Capybara.javascript_driver end -Before('@selenium') do - Capybara.current_driver = :selenium -end - -Before('@celerity') do - Capybara.current_driver = :celerity -end - -Before('@culerity') do - Capybara.current_driver = :culerity -end - -Before('@rack_test') do - Capybara.current_driver = :rack_test +Before do |scenario| + scenario.source_tag_names.each do |tag| + driver_name = tag.sub(/^@/, '').to_sym + if Capybara.drivers.has_key?(driver_name) + Capybara.current_driver = driver_name + end + end end After do