2010-06-15 14:24:50 +00:00
#Hilarious as it seems, this is necessary so bundle exec cucumber works for mongoid cukeage (I'm assuming mongomapper is automatically present because its a git repo)
Object . send ( :remove_const , 'MongoMapper' ) if defined? ( :: MongoMapper )
2009-03-01 08:45:58 +00:00
require 'rubygems'
2010-05-31 04:37:23 +00:00
require 'bundler'
2010-06-15 14:24:50 +00:00
2010-05-04 20:07:21 +00:00
Bundler . setup
2012-07-08 10:51:27 +00:00
require 'rspec/expectations'
2012-12-06 12:35:36 +00:00
#require 'ruby-debug'
2009-03-01 08:45:58 +00:00
2010-05-25 17:21:45 +00:00
DB_DIR = " #{ File . dirname ( __FILE__ ) } /../../db "
2018-05-19 02:16:03 +00:00
use_gems = ENV [ 'USE_GEMS' ]
2010-05-16 21:26:56 +00:00
orm = ENV [ 'ORM' ]
another_orm = ENV [ 'ANOTHER_ORM' ]
strategy = ENV [ 'STRATEGY' ]
2010-05-26 07:20:29 +00:00
multiple_db = ENV [ 'MULTIPLE_DBS' ]
2009-03-01 08:45:58 +00:00
2013-05-11 13:16:01 +00:00
config = YAML :: load ( File . open ( " #{ File . dirname ( __FILE__ ) } /../../config/redis.yml " ) )
ENV [ 'REDIS_URL' ] = config [ 'test' ] [ 'url' ]
ENV [ 'REDIS_URL_ONE' ] = config [ 'one' ] [ 'url' ]
ENV [ 'REDIS_URL_TWO' ] = config [ 'two' ] [ 'url' ]
2010-05-30 18:29:42 +00:00
2018-05-19 02:16:03 +00:00
require " active_support/core_ext/string/inflections "
2009-05-07 15:36:02 +00:00
if orm && strategy
2018-05-26 03:36:08 +00:00
require " #{ File . dirname ( __FILE__ ) } /../../lib/ #{ orm . downcase } _models "
2018-05-19 02:16:03 +00:00
if use_gems
require " database_cleaner- #{ orm . underscore } "
else
$: . unshift ( File . dirname ( __FILE__ ) + '/../../../lib' )
require " database_cleaner "
end
2010-05-31 03:12:58 +00:00
2010-05-16 21:26:56 +00:00
if another_orm
2018-05-26 03:36:08 +00:00
require " #{ File . dirname ( __FILE__ ) } /../../lib/ #{ another_orm . downcase } _models "
2018-05-19 02:16:03 +00:00
if use_gems
require " database_cleaner- #{ another_orm . underscore } "
end
2010-05-16 21:26:56 +00:00
end
2009-03-01 08:45:58 +00:00
2018-05-19 02:16:03 +00:00
require 'database_cleaner/cucumber'
2010-08-23 20:50:32 +00:00
if multiple_db
2010-05-30 22:08:22 +00:00
DatabaseCleaner . app_root = " #{ File . dirname ( __FILE__ ) } /../.. "
orm_sym = orm . gsub ( / (.)([A-Z]+) / , '\1_\2' ) . downcase . to_sym
2010-05-31 03:12:58 +00:00
2012-08-25 18:14:22 +00:00
case orm_sym
when :mongo_mapper
2010-05-30 22:08:22 +00:00
DatabaseCleaner [ orm_sym , { :connection = > 'database_cleaner_test_one' } ] . strategy = strategy . to_sym
DatabaseCleaner [ orm_sym , { :connection = > 'database_cleaner_test_two' } ] . strategy = strategy . to_sym
2013-05-11 13:16:01 +00:00
when :redis , :ohm
DatabaseCleaner [ orm_sym , { :connection = > ENV [ 'REDIS_URL_ONE' ] } ] . strategy = strategy . to_sym
DatabaseCleaner [ orm_sym , { :connection = > ENV [ 'REDIS_URL_TWO' ] } ] . strategy = strategy . to_sym
2012-08-25 18:14:22 +00:00
when :active_record
2012-08-25 18:21:43 +00:00
DatabaseCleaner [ :active_record , { :model = > ActiveRecordWidgetUsingDatabaseOne } ] . strategy = strategy . to_sym
DatabaseCleaner [ :active_record , { :model = > ActiveRecordWidgetUsingDatabaseTwo } ] . strategy = strategy . to_sym
2010-05-30 22:08:22 +00:00
else
DatabaseCleaner [ orm_sym , { :connection = > :one } ] . strategy = strategy . to_sym
DatabaseCleaner [ orm_sym , { :connection = > :two } ] . strategy = strategy . to_sym
end
2010-05-31 03:12:58 +00:00
2010-05-26 07:20:29 +00:00
elsif another_orm
2010-05-25 17:21:45 +00:00
DatabaseCleaner [ orm . gsub ( / (.)([A-Z]+) / , '\1_\2' ) . downcase . to_sym ] . strategy = strategy . to_sym
DatabaseCleaner [ another_orm . gsub ( / (.)([A-Z]+) / , '\1_\2' ) . downcase . to_sym ] . strategy = strategy . to_sym
2010-05-26 07:20:29 +00:00
else
2011-01-16 16:34:45 +00:00
DatabaseCleaner . strategy = strategy . to_sym unless strategy == " default "
2010-05-25 17:21:45 +00:00
end
2010-05-31 03:12:58 +00:00
2009-05-07 15:36:02 +00:00
else
2013-05-11 13:16:01 +00:00
raise " Run 'ORM=ActiveRecord|DataMapper|MongoMapper|CouchPotato|Ohm|Redis [ANOTHER_ORM=...] [MULTIPLE_DBS=true] STRATEGY=transaction|truncation|default cucumber examples/features' "
2009-05-07 15:36:02 +00:00
end