You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on May 26, 2020. It is now read-only.
raiseArgumentError,"You must provide a strategy object that supports non default databases when you specify a database"
53
-
end
54
-
end
55
-
56
32
defstrategy=(args)
57
33
strategy, *strategy_args=args
58
34
@strategy=ifstrategy.is_a?(Symbol)
@@ -77,26 +53,64 @@ def orm=(desired_orm)
77
53
@orm=@orm_autodetector.ormif@orm == :autodetect
78
54
end
79
55
56
+
extendForwardable
57
+
delegate[:start,:clean,:cleaning]=>:strategy
58
+
59
+
defclean_with(*args)
60
+
strategy=create_strategy(*args)
61
+
set_strategy_dbstrategy,db
62
+
strategy.clean
63
+
strategy
64
+
end
65
+
66
+
# TODO remove the following methods in 2.0
67
+
80
68
defauto_detected?
69
+
DatabaseCleaner.deprecate"Calling `DatabaseCleaner[...].auto_detected?` is deprecated, and will be removed in database_cleaner 2.0 with no replacement."
81
70
@orm_autodetector.autodetected?
82
71
end
83
72
84
73
defautodetect_orm
74
+
DatabaseCleaner.deprecate"Calling `DatabaseCleaner[...].autodetect_orm` is deprecated, and will be removed in database_cleaner 2.0 with no replacement."
85
75
@orm_autodetector.orm
86
76
end
87
77
88
-
defstart
89
-
strategy.start
78
+
defclean!
79
+
DatabaseCleaner.deprecate"Calling `DatabaseCleaner[...].clean!` is deprecated, and will be removed in database_cleaner 2.0. Use `DatabaseCleaner[...].clean instead."
80
+
clean
90
81
end
91
82
92
-
defclean
93
-
strategy.clean
83
+
defclean_with!
84
+
DatabaseCleaner.deprecate"Calling `DatabaseCleaner[...].clean_with!` is deprecated, and will be removed in database_cleaner 2.0. Use `DatabaseCleaner[...].clean_with instead."
85
+
clean_with
94
86
end
95
87
96
-
aliasclean!clean
88
+
# TODO privatize the following methods in 2.0
97
89
98
-
defcleaning(&block)
99
-
strategy.cleaning(&block)
90
+
defstrategy_db=(desired_db)
91
+
ifcalled_externally?(caller)
92
+
DatabaseCleaner.deprecate"Calling `DatabaseCleaner[...].strategy_db=` is deprecated, and will be removed in database_cleaner 2.0. Use `DatabaseCleaner[...].db=` instead."
93
+
end
94
+
set_strategy_db(strategy,desired_db)
95
+
end
96
+
97
+
defset_strategy_db(strategy,desired_db)
98
+
ifcalled_externally?(caller)
99
+
DatabaseCleaner.deprecate"Calling `DatabaseCleaner[...].set_strategy_db=` is deprecated, and will be removed in database_cleaner 2.0. Use `DatabaseCleaner[...].db=` instead."
100
+
end
101
+
ifstrategy.respond_to?:db=
102
+
strategy.db=desired_db
103
+
elsifdesired_db != :default
104
+
raiseArgumentError,"You must provide a strategy object that supports non default databases when you specify a database"
105
+
end
106
+
end
107
+
108
+
defcreate_strategy(*args)
109
+
ifcalled_externally?(caller)
110
+
DatabaseCleaner.deprecate"Calling `DatabaseCleaner[...].create_strategy` is deprecated, and will be removed in database_cleaner 2.0. Use `DatabaseCleaner[...].strategy=` instead."
111
+
end
112
+
strategy, *strategy_args=args
113
+
orm_strategy(strategy).new(*strategy_args)
100
114
end
101
115
102
116
private
@@ -109,7 +123,7 @@ def orm_module
109
123
deform_strategy(strategy)
110
124
orm_module.const_get(strategy.to_s.capitalize)
111
125
rescueNameError
112
-
$stderr.puts<<-TEXT
126
+
DatabaseCleaner.deprecate<<-TEXT
113
127
Requiring the `database_cleaner` gem directly is deprecated, and will raise an error in database_cleaner 2.0. Instead, please require the specific gem (or gems) for your ORM.
114
128
For example, replace `gem "database_cleaner"` with `gem "database_cleaner-#{orm}"` in your Gemfile.
# TODO deprecate and remove the following aliases:
83
+
# TODO remove the following methods in 2.0
86
84
87
-
aliasclean!clean
88
-
aliasclean_with!clean_with
85
+
defclean!
86
+
DatabaseCleaner.deprecate"Calling `DatabaseCleaner.clean!` is deprecated, and will be removed in database_cleaner 2.0. Use `DatabaseCleaner.clean`, instead."
87
+
clean
88
+
end
89
89
90
-
# TODO deprecate and then privatize the following methods:
90
+
defclean_with!(*args)
91
+
DatabaseCleaner.deprecate"Calling `DatabaseCleaner.clean_with!` is deprecated, and will be removed in database_cleaner 2.0. Use `DatabaseCleaner.clean_with`, instead."
92
+
clean_with(*args)
93
+
end
91
94
92
95
definit_cleaners
93
-
$stderr.puts"Calling `DatabaseCleaner.init_cleaners` is deprecated, and will be removed in database_cleaner 2.0 with no replacement."
96
+
DatabaseCleaner.deprecate"Calling `DatabaseCleaner.init_cleaners` is deprecated, and will be removed in database_cleaner 2.0 with no replacement."
94
97
end
95
98
96
99
defconnections
97
100
ifcalled_externally?(caller)
98
-
$stderr.puts"Calling `DatabaseCleaner.connections` is deprecated, and will be removed in database_cleaner 2.0. Use `DatabaseCleaner.cleaners`, instead."
101
+
DatabaseCleaner.deprecate"Calling `DatabaseCleaner.connections` is deprecated, and will be removed in database_cleaner 2.0. Use `DatabaseCleaner.cleaners`, instead."
99
102
end
100
103
add_cleaner(:autodetect)if@cleaners.none?
101
104
@cleaners.values
102
105
end
103
106
107
+
# TODO privatize the following methods in 2.0
108
+
109
+
defadd_cleaner(orm,opts={})
110
+
ifcalled_externally?(caller)
111
+
DatabaseCleaner.deprecate"Calling `DatabaseCleaner.add_cleaner` is deprecated, and will be removed in database_cleaner 2.0. Use `DatabaseCleaner.[]`, instead."
112
+
end
113
+
@cleaners.add_cleaner(orm,opts={})
114
+
end
115
+
116
+
defremove_duplicates
117
+
ifcalled_externally?(caller)
118
+
DatabaseCleaner.deprecate"Calling `DatabaseCleaner.remove_duplicates` is deprecated, and will be removed in database_cleaner 2.0 with no replacement."
0 commit comments