Module: DatabaseCleaner::ActiveRecord::Base
- Includes:
- Generic::Base
- Included in:
- Transaction, Truncation
- Defined in:
- lib/database_cleaner/active_record/base.rb
Instance Attribute Summary collapse
-
#connection_hash ⇒ Object
Returns the value of attribute connection_hash.
Class Method Summary collapse
Instance Method Summary collapse
- #connection_class ⇒ Object
- #db ⇒ Object
- #db=(desired_db) ⇒ Object
- #load_config ⇒ Object
- #valid_config(connection_file) ⇒ Object
Instance Attribute Details
#connection_hash ⇒ Object
Returns the value of attribute connection_hash.
32 33 34 |
# File 'lib/database_cleaner/active_record/base.rb', line 32 def connection_hash @connection_hash end |
Class Method Details
.exclusion_condition(column_name) ⇒ Object
77 78 79 80 81 82 83 |
# File 'lib/database_cleaner/active_record/base.rb', line 77 def self.exclusion_condition(column_name) result = " #{column_name} <> '#{::DatabaseCleaner::ActiveRecord::Base.migration_table_name}' " if ::ActiveRecord::VERSION::MAJOR >= 5 result += " AND #{column_name} <> '#{::ActiveRecord::Base.internal_metadata_table_name}' " end result end |
.migration_table_name ⇒ Object
69 70 71 72 73 74 75 |
# File 'lib/database_cleaner/active_record/base.rb', line 69 def self.migration_table_name if ::ActiveRecord::VERSION::MAJOR < 5 ::ActiveRecord::Migrator.schema_migrations_table_name else ::ActiveRecord::SchemaMigration.table_name end end |
Instance Method Details
#connection_class ⇒ Object
59 60 61 62 63 64 65 66 67 |
# File 'lib/database_cleaner/active_record/base.rb', line 59 def connection_class @connection_class ||= if db && !db.is_a?(Symbol) db elsif connection_hash lookup_from_connection_pool || establish_connection else ::ActiveRecord::Base end end |
#db ⇒ Object
39 40 41 |
# File 'lib/database_cleaner/active_record/base.rb', line 39 def db @db ||= super end |
#db=(desired_db) ⇒ Object
34 35 36 37 |
# File 'lib/database_cleaner/active_record/base.rb', line 34 def db=(desired_db) @db = desired_db load_config end |
#load_config ⇒ Object
43 44 45 46 47 48 |
# File 'lib/database_cleaner/active_record/base.rb', line 43 def load_config if self.db != :default && self.db.is_a?(Symbol) && File.file?(ActiveRecord.config_file_location) connection_details = YAML::load(ERB.new(IO.read(ActiveRecord.config_file_location)).result) @connection_hash = valid_config(connection_details)[self.db.to_s] end end |
#valid_config(connection_file) ⇒ Object
50 51 52 53 54 55 56 57 |
# File 'lib/database_cleaner/active_record/base.rb', line 50 def valid_config(connection_file) if !::ActiveRecord::Base.configurations.nil? && !::ActiveRecord::Base.configurations.empty? if connection_file != ::ActiveRecord::Base.configurations return ::ActiveRecord::Base.configurations end end connection_file end |