Class: Datafactory::Connectors::ActiveRecordConnector

Inherits:
Base
  • Object
show all
Defined in:
lib/datafactory/connectors/activerecord.rb

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Base

configured_by?, #require_factories, #require_models

Constructor Details

#initialize(domain) ⇒ ActiveRecordConnector

Returns a new instance of ActiveRecordConnector.



8
9
10
11
# File 'lib/datafactory/connectors/activerecord.rb', line 8

def initialize(domain)
  @domain = domain
  @db_config = YAML::load(File.open("#{@domain}/#{self.class.config}"))
end

Class Method Details

.configObject



13
14
15
# File 'lib/datafactory/connectors/activerecord.rb', line 13

def self.config
  "activerecord.yaml"
end

Instance Method Details

#create_dbObject



33
34
35
36
37
38
# File 'lib/datafactory/connectors/activerecord.rb', line 33

def create_db
  return unless @db_config["adapter"] == "pg"
  db_config_admin = @db_config.merge({'database' => 'postgres', 'schema_search_path' => 'public'})
  ActiveRecord::Base.establish_connection(db_config_admin)
  ActiveRecord::Base.connection.create_database(@db_config["database"])
end

#drop_dbObject



26
27
28
29
30
31
# File 'lib/datafactory/connectors/activerecord.rb', line 26

def drop_db
  return unless @db_config["adapter"] == "pg"
  db_config_admin = @db_config.merge({'database' => 'postgres', 'schema_search_path' => 'public'})
  ActiveRecord::Base.establish_connection(db_config_admin)
  ActiveRecord::Base.connection.drop_database(@db_config["database"])
end

#migrateObject



40
41
42
# File 'lib/datafactory/connectors/activerecord.rb', line 40

def migrate
  ActiveRecord::Migrator.migrate("#{@domain}/migrate")
end

#setup(opts) ⇒ Object



17
18
19
20
21
22
23
24
# File 'lib/datafactory/connectors/activerecord.rb', line 17

def setup(opts)
  ActiveRecord::Base.establish_connection(@db_config)
  if opts[:migrate]
    migrate
  end
  require_models
  require_factories
end