Class: DatabaseRewinder::Cleaner
- Inherits:
-
Object
- Object
- DatabaseRewinder::Cleaner
- Includes:
- Compatibility
- Defined in:
- lib/database_rewinder/cleaner.rb,
lib/database_rewinder/compatibility.rb
Defined Under Namespace
Modules: Compatibility
Instance Attribute Summary collapse
-
#config ⇒ Object
Returns the value of attribute config.
-
#connection_name ⇒ Object
Returns the value of attribute connection_name.
-
#except ⇒ Object
Returns the value of attribute except.
-
#inserted_tables ⇒ Object
Returns the value of attribute inserted_tables.
-
#only ⇒ Object
Returns the value of attribute only.
-
#pool ⇒ Object
Returns the value of attribute pool.
Instance Method Summary collapse
- #clean ⇒ Object
- #clean_all ⇒ Object
- #db ⇒ Object
-
#initialize(config: nil, connection_name: nil, only: nil, except: nil) ⇒ Cleaner
constructor
A new instance of Cleaner.
Methods included from Compatibility
Constructor Details
#initialize(config: nil, connection_name: nil, only: nil, except: nil) ⇒ Cleaner
Returns a new instance of Cleaner.
5 6 7 8 |
# File 'lib/database_rewinder/cleaner.rb', line 5 def initialize(config: nil, connection_name: nil, only: nil, except: nil) @config, @connection_name, @only, @except = config, connection_name, Array(only), Array(except) reset end |
Instance Attribute Details
#config ⇒ Object
Returns the value of attribute config.
3 4 5 |
# File 'lib/database_rewinder/cleaner.rb', line 3 def config @config end |
#connection_name ⇒ Object
Returns the value of attribute connection_name.
3 4 5 |
# File 'lib/database_rewinder/cleaner.rb', line 3 def connection_name @connection_name end |
#except ⇒ Object
Returns the value of attribute except.
3 4 5 |
# File 'lib/database_rewinder/cleaner.rb', line 3 def except @except end |
#inserted_tables ⇒ Object
Returns the value of attribute inserted_tables.
3 4 5 |
# File 'lib/database_rewinder/cleaner.rb', line 3 def inserted_tables @inserted_tables end |
#only ⇒ Object
Returns the value of attribute only.
3 4 5 |
# File 'lib/database_rewinder/cleaner.rb', line 3 def only @only end |
#pool ⇒ Object
Returns the value of attribute pool.
3 4 5 |
# File 'lib/database_rewinder/cleaner.rb', line 3 def pool @pool end |
Instance Method Details
#clean ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/database_rewinder/cleaner.rb', line 14 def clean return if !pool || inserted_tables.empty? # When the application uses multiple database connections, a connection # pool used in test could be already removed (i.e., pool.connected? = false). # In this case, we have to reconnect to the database to clean inserted # tables. with_automatic_reconnect(pool) do delete_all (ar_conn = pool.connection), DatabaseRewinder.all_table_names(ar_conn) & inserted_tables end reset end |
#clean_all ⇒ Object
27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/database_rewinder/cleaner.rb', line 27 def clean_all if pool ar_conn = pool.connection delete_all ar_conn, DatabaseRewinder.all_table_names(ar_conn) else require 'database_rewinder/dummy_model' DummyModel.with_temporary_connection(config) do |ar_conn| delete_all ar_conn, DatabaseRewinder.all_table_names(ar_conn) end end reset end |
#db ⇒ Object
10 11 12 |
# File 'lib/database_rewinder/cleaner.rb', line 10 def db config['database'] end |