Class: Apartment::Adapters::AbstractAdapter
- Inherits:
-
Object
- Object
- Apartment::Adapters::AbstractAdapter
- Defined in:
- lib/apartment/adapters/abstract_adapter.rb
Direct Known Subclasses
Instance Method Summary collapse
-
#connect_and_reset(database) ⇒ Object
(also: #process)
Connect to db or schema, do stuff, reset.
-
#create(database) ⇒ Object
Create new postgres schema.
-
#initialize(config, defaults) ⇒ AbstractAdapter
constructor
@constructor @param Hash config Database config @param Hash defaults Some default options.
-
#reset ⇒ Object
Reset the base connection.
-
#switch(database = nil) ⇒ Object
Switch to new connection (or schema if appopriate).
Constructor Details
#initialize(config, defaults) ⇒ AbstractAdapter
@constructor
@param {Hash} config Database config
@param {Hash} defaults Some default options
13 14 15 16 |
# File 'lib/apartment/adapters/abstract_adapter.rb', line 13 def initialize(config, defaults) @config = config @defaults = defaults end |
Instance Method Details
#connect_and_reset(database) ⇒ Object Also known as: process
Connect to db or schema, do stuff, reset
@param {String} database Database or schema to connect to
21 22 23 24 25 26 |
# File 'lib/apartment/adapters/abstract_adapter.rb', line 21 def connect_and_reset(database) connect_to_new(database) yield if block_given? ensure reset end |
#create(database) ⇒ Object
Create new postgres schema
@param {String} database Database name
32 33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/apartment/adapters/abstract_adapter.rb', line 32 def create(database) # TODO create_database unless using_schemas? connect_and_reset(database) do import_database_schema # Manually init schema migrations table (apparently there were issues with Postgres when this isn't done) ActiveRecord::Base.connection.initialize_schema_migrations_table # Seed data if appropriate seed_data if Apartment.seed_after_create end end |
#reset ⇒ Object
Reset the base connection
47 48 49 |
# File 'lib/apartment/adapters/abstract_adapter.rb', line 47 def reset ActiveRecord::Base.establish_connection @config end |
#switch(database = nil) ⇒ Object
Switch to new connection (or schema if appopriate)
52 53 54 55 56 57 |
# File 'lib/apartment/adapters/abstract_adapter.rb', line 52 def switch(database = nil) # Just connect to default db and return return reset if database.nil? connect_to_new(database) end |