database_cleaner 1.99.0 → 2.0.0.beta

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (94) hide show
  1. checksums.yaml +4 -4
  2. data/lib/database_cleaner.rb +1 -47
  3. metadata +14 -484
  4. data/CONTRIBUTE.markdown +0 -27
  5. data/Gemfile.lock +0 -324
  6. data/History.rdoc +0 -514
  7. data/LICENSE +0 -20
  8. data/README.markdown +0 -389
  9. data/Rakefile +0 -44
  10. data/TODO +0 -3
  11. data/adapters/database_cleaner-active_record/lib/database_cleaner-active_record.rb +0 -1
  12. data/adapters/database_cleaner-active_record/lib/database_cleaner/active_record.rb +0 -6
  13. data/adapters/database_cleaner-active_record/lib/database_cleaner/active_record/base.rb +0 -101
  14. data/adapters/database_cleaner-active_record/lib/database_cleaner/active_record/deletion.rb +0 -108
  15. data/adapters/database_cleaner-active_record/lib/database_cleaner/active_record/transaction.rb +0 -59
  16. data/adapters/database_cleaner-active_record/lib/database_cleaner/active_record/truncation.rb +0 -288
  17. data/adapters/database_cleaner-active_record/lib/database_cleaner/active_record/version.rb +0 -5
  18. data/adapters/database_cleaner-couch_potato/lib/database_cleaner-couch_potato.rb +0 -1
  19. data/adapters/database_cleaner-couch_potato/lib/database_cleaner/couch_potato.rb +0 -13
  20. data/adapters/database_cleaner-couch_potato/lib/database_cleaner/couch_potato/base.rb +0 -7
  21. data/adapters/database_cleaner-couch_potato/lib/database_cleaner/couch_potato/truncation.rb +0 -28
  22. data/adapters/database_cleaner-couch_potato/lib/database_cleaner/couch_potato/version.rb +0 -5
  23. data/adapters/database_cleaner-data_mapper/lib/database_cleaner-data_mapper.rb +0 -1
  24. data/adapters/database_cleaner-data_mapper/lib/database_cleaner/data_mapper.rb +0 -6
  25. data/adapters/database_cleaner-data_mapper/lib/database_cleaner/data_mapper/base.rb +0 -25
  26. data/adapters/database_cleaner-data_mapper/lib/database_cleaner/data_mapper/transaction.rb +0 -28
  27. data/adapters/database_cleaner-data_mapper/lib/database_cleaner/data_mapper/truncation.rb +0 -173
  28. data/adapters/database_cleaner-data_mapper/lib/database_cleaner/data_mapper/version.rb +0 -5
  29. data/adapters/database_cleaner-mongo/lib/database_cleaner-mongo.rb +0 -1
  30. data/adapters/database_cleaner-mongo/lib/database_cleaner/mongo.rb +0 -11
  31. data/adapters/database_cleaner-mongo/lib/database_cleaner/mongo/base.rb +0 -16
  32. data/adapters/database_cleaner-mongo/lib/database_cleaner/mongo/deletion.rb +0 -8
  33. data/adapters/database_cleaner-mongo/lib/database_cleaner/mongo/truncation.rb +0 -74
  34. data/adapters/database_cleaner-mongo/lib/database_cleaner/mongo/truncation_mixin.rb +0 -26
  35. data/adapters/database_cleaner-mongo/lib/database_cleaner/mongo/version.rb +0 -5
  36. data/adapters/database_cleaner-mongo_mapper/lib/database_cleaner-mongo_mapper.rb +0 -1
  37. data/adapters/database_cleaner-mongo_mapper/lib/database_cleaner/mongo_mapper.rb +0 -5
  38. data/adapters/database_cleaner-mongo_mapper/lib/database_cleaner/mongo_mapper/base.rb +0 -24
  39. data/adapters/database_cleaner-mongo_mapper/lib/database_cleaner/mongo_mapper/truncation.rb +0 -35
  40. data/adapters/database_cleaner-mongo_mapper/lib/database_cleaner/mongo_mapper/version.rb +0 -5
  41. data/adapters/database_cleaner-mongoid/lib/database_cleaner-mongoid.rb +0 -1
  42. data/adapters/database_cleaner-mongoid/lib/database_cleaner/mongoid.rb +0 -11
  43. data/adapters/database_cleaner-mongoid/lib/database_cleaner/mongoid/base.rb +0 -20
  44. data/adapters/database_cleaner-mongoid/lib/database_cleaner/mongoid/deletion.rb +0 -10
  45. data/adapters/database_cleaner-mongoid/lib/database_cleaner/mongoid/mongo1_truncation_mixin.rb +0 -26
  46. data/adapters/database_cleaner-mongoid/lib/database_cleaner/mongoid/mongo2_truncation_mixin.rb +0 -38
  47. data/adapters/database_cleaner-mongoid/lib/database_cleaner/mongoid/mongoid_truncation_mixin.rb +0 -65
  48. data/adapters/database_cleaner-mongoid/lib/database_cleaner/mongoid/truncation.rb +0 -49
  49. data/adapters/database_cleaner-mongoid/lib/database_cleaner/mongoid/version.rb +0 -5
  50. data/adapters/database_cleaner-moped/lib/database_cleaner-moped.rb +0 -1
  51. data/adapters/database_cleaner-moped/lib/database_cleaner/moped.rb +0 -12
  52. data/adapters/database_cleaner-moped/lib/database_cleaner/moped/base.rb +0 -39
  53. data/adapters/database_cleaner-moped/lib/database_cleaner/moped/truncation.rb +0 -9
  54. data/adapters/database_cleaner-moped/lib/database_cleaner/moped/truncation_base.rb +0 -44
  55. data/adapters/database_cleaner-moped/lib/database_cleaner/moped/version.rb +0 -5
  56. data/adapters/database_cleaner-neo4j/lib/database_cleaner-neo4j.rb +0 -1
  57. data/adapters/database_cleaner-neo4j/lib/database_cleaner/neo4j.rb +0 -7
  58. data/adapters/database_cleaner-neo4j/lib/database_cleaner/neo4j/base.rb +0 -66
  59. data/adapters/database_cleaner-neo4j/lib/database_cleaner/neo4j/deletion.rb +0 -16
  60. data/adapters/database_cleaner-neo4j/lib/database_cleaner/neo4j/transaction.rb +0 -35
  61. data/adapters/database_cleaner-neo4j/lib/database_cleaner/neo4j/truncation.rb +0 -9
  62. data/adapters/database_cleaner-neo4j/lib/database_cleaner/neo4j/version.rb +0 -5
  63. data/adapters/database_cleaner-ohm/lib/database_cleaner-ohm.rb +0 -1
  64. data/adapters/database_cleaner-ohm/lib/database_cleaner/ohm.rb +0 -12
  65. data/adapters/database_cleaner-ohm/lib/database_cleaner/ohm/truncation.rb +0 -24
  66. data/adapters/database_cleaner-ohm/lib/database_cleaner/ohm/version.rb +0 -5
  67. data/adapters/database_cleaner-redis/lib/database_cleaner-redis.rb +0 -1
  68. data/adapters/database_cleaner-redis/lib/database_cleaner/redis.rb +0 -5
  69. data/adapters/database_cleaner-redis/lib/database_cleaner/redis/base.rb +0 -45
  70. data/adapters/database_cleaner-redis/lib/database_cleaner/redis/deletion.rb +0 -9
  71. data/adapters/database_cleaner-redis/lib/database_cleaner/redis/truncation.rb +0 -26
  72. data/adapters/database_cleaner-redis/lib/database_cleaner/redis/version.rb +0 -5
  73. data/adapters/database_cleaner-sequel/lib/database_cleaner-sequel.rb +0 -1
  74. data/adapters/database_cleaner-sequel/lib/database_cleaner/sequel.rb +0 -6
  75. data/adapters/database_cleaner-sequel/lib/database_cleaner/sequel/base.rb +0 -26
  76. data/adapters/database_cleaner-sequel/lib/database_cleaner/sequel/deletion.rb +0 -47
  77. data/adapters/database_cleaner-sequel/lib/database_cleaner/sequel/transaction.rb +0 -40
  78. data/adapters/database_cleaner-sequel/lib/database_cleaner/sequel/truncation.rb +0 -79
  79. data/adapters/database_cleaner-sequel/lib/database_cleaner/sequel/version.rb +0 -5
  80. data/cucumber.yml +0 -1
  81. data/lib/database_cleaner/base.rb +0 -169
  82. data/lib/database_cleaner/configuration.rb +0 -136
  83. data/lib/database_cleaner/cucumber.rb +0 -3
  84. data/lib/database_cleaner/deprecation.rb +0 -26
  85. data/lib/database_cleaner/generic/base.rb +0 -29
  86. data/lib/database_cleaner/generic/transaction.rb +0 -11
  87. data/lib/database_cleaner/generic/truncation.rb +0 -40
  88. data/lib/database_cleaner/null_strategy.rb +0 -20
  89. data/lib/database_cleaner/orm_autodetector.rb +0 -41
  90. data/lib/database_cleaner/safeguard.rb +0 -107
  91. data/lib/database_cleaner/spec.rb +0 -2
  92. data/lib/database_cleaner/spec/database_helper.rb +0 -82
  93. data/lib/database_cleaner/spec/shared_examples.rb +0 -15
  94. data/lib/database_cleaner/version.rb +0 -3
@@ -1,5 +0,0 @@
1
- module DatabaseCleaner
2
- module Sequel
3
- VERSION = "1.99.0"
4
- end
5
- end
data/cucumber.yml DELETED
@@ -1 +0,0 @@
1
- default: features
@@ -1,169 +0,0 @@
1
- require 'database_cleaner/deprecation'
2
- require 'database_cleaner/null_strategy'
3
- require 'database_cleaner/safeguard'
4
- require 'database_cleaner/orm_autodetector'
5
- require 'forwardable'
6
-
7
- module DatabaseCleaner
8
- class Base
9
- include Comparable
10
-
11
- def <=>(other)
12
- [orm, db] <=> [other.orm, other.db]
13
- end
14
-
15
- def initialize(desired_orm = nil, opts = {})
16
- @orm_autodetector = ORMAutodetector.new
17
- self.orm = desired_orm
18
- if opts.has_key?(:model)
19
- DatabaseCleaner.deprecate "Using the `:model` key in `DatabaseCleaner[:orm, model: ...]` is deprecated, and will be removed in database_cleaner 2.0. Please use the new `:db` key, instead, which has identical behavior: `DatabaseCleaner[:orm, db: ...]`."
20
- end
21
- if opts.has_key?(:connection)
22
- DatabaseCleaner.deprecate "Using the `:connection` key in `DatabaseCleaner[:orm, connection: ...]` is deprecated, and will be removed in database_cleaner 2.0. Please use the new `:db` key, instead, which has identical behavior: `DatabaseCleaner[:orm, db: ...]`."
23
- end
24
- self.db = opts[:db] || opts[:connection] || opts[:model] if opts.has_key?(:db) || opts.has_key?(:connection) || opts.has_key?(:model)
25
- self.strategy = orm_module && orm_module.default_strategy
26
- Safeguard.new.run
27
- end
28
-
29
- def db=(desired_db)
30
- @db = self.strategy_db = desired_db
31
- end
32
-
33
- def db
34
- @db ||= :default
35
- end
36
-
37
- def strategy=(args)
38
- strategy, *strategy_args = args
39
-
40
- if DatabaseCleaner.called_externally?(__FILE__, caller) \
41
- && [:redis, :mongo, :mongoid].include?(orm) \
42
- && strategy == :truncation
43
- DatabaseCleaner.deprecate "The #{orm} adapter's :truncation strategy will be renamed to :deletion in database_cleaner-#{orm} 2.0. Please specify the :deletion adapter to resolve this deprecation notice."
44
- end
45
-
46
- @strategy = if strategy.is_a?(Symbol)
47
- create_strategy(*args)
48
- elsif strategy_args.empty?
49
- strategy
50
- else
51
- raise ArgumentError, "You must provide a strategy object, or a symbol for a known strategy along with initialization params."
52
- end
53
-
54
- set_strategy_db @strategy, db
55
- end
56
-
57
- def strategy
58
- @strategy ||= NullStrategy.new
59
- end
60
-
61
- attr_reader :orm
62
-
63
- def orm=(desired_orm)
64
- if DatabaseCleaner.called_externally?(__FILE__, caller)
65
- DatabaseCleaner.deprecate "Calling `DatabaseCleaner[:orm].orm=` is deprecated, and will be removed in database_cleaner 2.0 with no replacement."
66
- end
67
- @orm = (desired_orm || :autodetect).to_sym
68
- @orm = @orm_autodetector.orm if @orm == :autodetect
69
- end
70
-
71
- extend Forwardable
72
- delegate [:start, :clean, :cleaning] => :strategy
73
-
74
- def clean_with(*args)
75
- strategy = create_strategy(*args)
76
- set_strategy_db strategy, db
77
- strategy.clean
78
- strategy
79
- end
80
-
81
- # TODO remove the following methods in 2.0
82
-
83
- def auto_detected?
84
- DatabaseCleaner.deprecate "Calling `DatabaseCleaner[...].auto_detected?` is deprecated, and will be removed in database_cleaner 2.0 with no replacement."
85
- @orm_autodetector.autodetected?
86
- end
87
-
88
- def autodetect_orm
89
- DatabaseCleaner.deprecate "Calling `DatabaseCleaner[...].autodetect_orm` is deprecated, and will be removed in database_cleaner 2.0 with no replacement."
90
- @orm_autodetector.orm
91
- end
92
-
93
- def clean!
94
- DatabaseCleaner.deprecate "Calling `DatabaseCleaner[...].clean!` is deprecated, and will be removed in database_cleaner 2.0. Use `DatabaseCleaner[...].clean instead."
95
- clean
96
- end
97
-
98
- def clean_with!
99
- DatabaseCleaner.deprecate "Calling `DatabaseCleaner[...].clean_with!` is deprecated, and will be removed in database_cleaner 2.0. Use `DatabaseCleaner[...].clean_with instead."
100
- clean_with
101
- end
102
-
103
- # TODO privatize the following methods in 2.0
104
-
105
- def strategy_db=(desired_db)
106
- if DatabaseCleaner.called_externally?(__FILE__, caller)
107
- DatabaseCleaner.deprecate "Calling `DatabaseCleaner[...].strategy_db=` is deprecated, and will be removed in database_cleaner 2.0. Use `DatabaseCleaner[...].db=` instead."
108
- end
109
- set_strategy_db(strategy, desired_db)
110
- end
111
-
112
- def set_strategy_db(strategy, desired_db)
113
- if DatabaseCleaner.called_externally?(__FILE__, caller)
114
- DatabaseCleaner.deprecate "Calling `DatabaseCleaner[...].set_strategy_db=` is deprecated, and will be removed in database_cleaner 2.0. Use `DatabaseCleaner[...].db=` instead."
115
- end
116
- if strategy.respond_to? :db=
117
- strategy.db = desired_db
118
- elsif desired_db != :default
119
- raise ArgumentError, "You must provide a strategy object that supports non default databases when you specify a database"
120
- end
121
- end
122
-
123
- def create_strategy(*args)
124
- if DatabaseCleaner.called_externally?(__FILE__, caller)
125
- DatabaseCleaner.deprecate "Calling `DatabaseCleaner[...].create_strategy` is deprecated, and will be removed in database_cleaner 2.0. Use `DatabaseCleaner[...].strategy=` instead."
126
- end
127
- strategy, *strategy_args = args
128
- orm_strategy(strategy).new(*strategy_args)
129
- end
130
-
131
- private
132
-
133
- def orm_module
134
- return unless [:active_record, :data_mapper, :mongo, :mongoid, :mongo_mapper, :moped, :couch_potato, :sequel, :ohm, :redis, :neo4j].include?(orm)
135
- load_adapter(orm) if !adapter_loaded?(orm)
136
- orm_module_name = ORMAutodetector::ORMS[orm]
137
- DatabaseCleaner.const_get(orm_module_name, false)
138
- end
139
-
140
- def adapter_loaded? orm
141
- $LOADED_FEATURES.grep(%r{/lib/database_cleaner/#{orm}\.rb$}).any?
142
- end
143
-
144
- def load_adapter orm
145
- $LOAD_PATH.unshift File.expand_path("#{File.dirname(__FILE__)}/../../adapters/database_cleaner-#{orm}/lib")
146
- require "database_cleaner/#{orm}"
147
- end
148
-
149
- def orm_strategy(strategy)
150
- strategy_module_name = strategy.to_s.capitalize
151
- orm_module.const_get(strategy_module_name, false)
152
- rescue NameError
153
- if orm != :active_record
154
- DatabaseCleaner.deprecate <<-TEXT
155
- The #{orm_module} adapter has been extracted to its own gem: database_cleaner-#{orm}, and will be removed from database_cleaner in 2.0. To silence this message, please replace `gem "database_cleaner"` with `gem "database_cleaner-#{orm}"` in your Gemfile.
156
- TEXT
157
- end
158
- require_orm_strategy(orm, strategy)
159
- retry
160
- end
161
-
162
- def require_orm_strategy(orm, strategy)
163
- $LOAD_PATH.unshift File.expand_path("#{File.dirname(__FILE__)}/../../adapters/database_cleaner-#{orm}/lib")
164
- require "database_cleaner/#{orm}/#{strategy}"
165
- rescue LoadError
166
- raise UnknownStrategySpecified, "The '#{strategy}' strategy does not exist for the #{orm} ORM! Available strategies: #{orm_module.available_strategies.join(', ')}"
167
- end
168
- end
169
- end
@@ -1,136 +0,0 @@
1
- require 'database_cleaner/base'
2
- require 'database_cleaner/deprecation'
3
- require 'forwardable'
4
-
5
- module DatabaseCleaner
6
-
7
- class NoORMDetected < StandardError; end
8
- class UnknownStrategySpecified < ArgumentError; end
9
-
10
- class Cleaners < Hash
11
- # FIXME this method conflates creation with lookup... both a command and a query. yuck.
12
- def [](orm, opts = {})
13
- raise NoORMDetected unless orm
14
- fetch([orm, opts]) { add_cleaner(orm, opts) }
15
- end
16
-
17
- def strategy=(strategy)
18
- add_cleaner(:autodetect) if none?
19
- values.each { |cleaner| cleaner.strategy = strategy }
20
- remove_duplicates
21
- end
22
-
23
- def orm=(orm)
24
- DatabaseCleaner.deprecate "Calling `DatabaseCleaner.orm=` is deprecated, and will be removed in database_cleaner 2.0 with no replacement."
25
- add_cleaner(:autodetect) if none?
26
- values.each { |cleaner| cleaner.orm = orm }
27
- remove_duplicates
28
- end
29
-
30
- # TODO privatize the following methods in 2.0
31
-
32
- def add_cleaner(orm, opts = {})
33
- self[[orm, opts]] = ::DatabaseCleaner::Base.new(orm, opts)
34
- end
35
-
36
- def remove_duplicates
37
- replace(reduce(Cleaners.new) do |cleaners, (key, value)|
38
- cleaners[key] = value unless cleaners.values.include?(value)
39
- cleaners
40
- end)
41
- end
42
- end
43
-
44
- class Configuration
45
- def initialize
46
- @cleaners ||= Cleaners.new
47
- end
48
-
49
- extend Forwardable
50
- delegate [
51
- :[],
52
- :strategy=,
53
- :orm=,
54
- ] => :cleaners
55
-
56
- attr_accessor :cleaners
57
-
58
- def app_root
59
- DatabaseCleaner.deprecate "Calling `DatabaseCleaner.app_root` is deprecated, and will be removed in database_cleaner 2.0. Use `DatabaseCleaner::ActiveRecord.config_file_location`, instead."
60
- @app_root ||= Dir.pwd
61
- end
62
-
63
- def app_root= value
64
- DatabaseCleaner.deprecate "Calling `DatabaseCleaner.app_root=` is deprecated, and will be removed in database_cleaner 2.0. Use `DatabaseCleaner::ActiveRecord.config_file_location=`, instead."
65
- @app_root = value
66
- end
67
-
68
- def logger
69
- DatabaseCleaner.deprecate "Calling `DatabaseCleaner.logger` is deprecated, and will be removed in database_cleaner 2.0 with no replacement."
70
- @logger ||= Logger.new(STDOUT).tap { |l| l.level = Logger::ERROR }
71
- end
72
-
73
- def logger= value
74
- DatabaseCleaner.deprecate "Calling `DatabaseCleaner.logger=` is deprecated, and will be removed in database_cleaner 2.0 with no replacement."
75
- @logger = value
76
- end
77
-
78
- def start
79
- connections.each { |connection| connection.start }
80
- end
81
-
82
- def clean
83
- connections.each { |connection| connection.clean }
84
- end
85
-
86
- def cleaning(&inner_block)
87
- connections.inject(inner_block) do |curr_block, connection|
88
- proc { connection.cleaning(&curr_block) }
89
- end.call
90
- end
91
-
92
- def clean_with(*args)
93
- connections.each { |connection| connection.clean_with(*args) }
94
- end
95
-
96
- # TODO remove the following methods in 2.0
97
-
98
- def clean!
99
- DatabaseCleaner.deprecate "Calling `DatabaseCleaner.clean!` is deprecated, and will be removed in database_cleaner 2.0. Use `DatabaseCleaner.clean`, instead."
100
- clean
101
- end
102
-
103
- def clean_with!(*args)
104
- DatabaseCleaner.deprecate "Calling `DatabaseCleaner.clean_with!` is deprecated, and will be removed in database_cleaner 2.0. Use `DatabaseCleaner.clean_with`, instead."
105
- clean_with(*args)
106
- end
107
-
108
- def init_cleaners
109
- DatabaseCleaner.deprecate "Calling `DatabaseCleaner.init_cleaners` is deprecated, and will be removed in database_cleaner 2.0 with no replacement."
110
- end
111
-
112
- def connections
113
- if DatabaseCleaner.called_externally?(__FILE__, caller)
114
- DatabaseCleaner.deprecate "Calling `DatabaseCleaner.connections` is deprecated, and will be removed in database_cleaner 2.0. Use `DatabaseCleaner.cleaners.values`, instead."
115
- end
116
- add_cleaner(:autodetect) if @cleaners.none?
117
- @cleaners.values
118
- end
119
-
120
- # TODO privatize the following methods in 2.0
121
-
122
- def add_cleaner(orm, opts = {})
123
- if DatabaseCleaner.called_externally?(__FILE__, caller)
124
- DatabaseCleaner.deprecate "Calling `DatabaseCleaner.add_cleaner` is deprecated, and will be removed in database_cleaner 2.0. Use `DatabaseCleaner.[]`, instead."
125
- end
126
- @cleaners.add_cleaner(orm, opts = {})
127
- end
128
-
129
- def remove_duplicates
130
- if DatabaseCleaner.called_externally?(__FILE__, caller)
131
- DatabaseCleaner.deprecate "Calling `DatabaseCleaner.remove_duplicates` is deprecated, and will be removed in database_cleaner 2.0 with no replacement."
132
- end
133
- @cleaners.remove_duplicates
134
- end
135
- end
136
- end
@@ -1,3 +0,0 @@
1
- Around do |scenario, block|
2
- DatabaseCleaner.cleaning(&block)
3
- end
@@ -1,26 +0,0 @@
1
- module DatabaseCleaner
2
- def deprecate message
3
- method = caller.first[/\d+:in `(.*)'$/, 1].to_sym
4
- @@deprecator ||= Deprecator.new
5
- @@deprecator.deprecate method, message
6
- end
7
- module_function :deprecate
8
-
9
- def called_externally?(file, caller)
10
- file != caller.first[/^(.+\.rb):\d+/, 1]
11
- end
12
- module_function :called_externally?
13
-
14
- class Deprecator
15
- def initialize
16
- @methods_already_warned = {}
17
- end
18
-
19
- def deprecate method, message
20
- return if @methods_already_warned.key?(method)
21
- $stderr.puts message
22
- @methods_already_warned[method] = true
23
- end
24
- end
25
- end
26
-
@@ -1,29 +0,0 @@
1
- module ::DatabaseCleaner
2
- module Generic
3
- module Base
4
-
5
- def self.included(base)
6
- base.extend(ClassMethods)
7
- end
8
-
9
- def db
10
- :default
11
- end
12
-
13
- def cleaning(&block)
14
- begin
15
- start
16
- yield
17
- ensure
18
- clean
19
- end
20
- end
21
-
22
- module ClassMethods
23
- def available_strategies
24
- %W[]
25
- end
26
- end
27
- end
28
- end
29
- end
@@ -1,11 +0,0 @@
1
- module DatabaseCleaner
2
- module Generic
3
- module Transaction
4
- def initialize(opts = {})
5
- if !opts.empty?
6
- raise ArgumentError, "Options are not available for transaction strategies."
7
- end
8
- end
9
- end
10
- end
11
- end
@@ -1,40 +0,0 @@
1
- module DatabaseCleaner
2
- module Generic
3
- module Truncation
4
- def initialize(opts={})
5
- if !opts.empty? && !(opts.keys - [:only, :except, :pre_count, :reset_ids, :cache_tables]).empty?
6
- raise ArgumentError, "The only valid options are :only, :except, :pre_count, :reset_ids or :cache_tables. You specified #{opts.keys.join(',')}."
7
- end
8
- if opts.has_key?(:only) && opts.has_key?(:except)
9
- raise ArgumentError, "You may only specify either :only or :except. Doing both doesn't really make sense does it?"
10
- end
11
-
12
- @only = opts[:only]
13
- @tables_to_exclude = Array( (opts[:except] || []).dup ).flatten
14
- @tables_to_exclude += migration_storage_names
15
- @pre_count = opts[:pre_count]
16
- @reset_ids = opts[:reset_ids]
17
- @cache_tables = opts.has_key?(:cache_tables) ? !!opts[:cache_tables] : true
18
- end
19
-
20
- def start
21
- #included for compatability reasons, do nothing if you don't need to
22
- end
23
-
24
- def clean
25
- raise NotImplementedError
26
- end
27
-
28
- private
29
- def tables_to_truncate
30
- raise NotImplementedError
31
- end
32
-
33
- # overwrite in subclasses
34
- # default implementation given because migration storage need not be present
35
- def migration_storage_names
36
- %w[]
37
- end
38
- end
39
- end
40
- end
@@ -1,20 +0,0 @@
1
- module DatabaseCleaner
2
- class NullStrategy
3
- def start
4
- # no-op
5
- end
6
-
7
- def db=(connection)
8
- # no-op
9
- end
10
-
11
- def clean
12
- # no-op
13
- end
14
-
15
- def cleaning(&block)
16
- # no-op
17
- yield
18
- end
19
- end
20
- end