Module: DynamicActiveModel::Explorer

Defined in:
lib/dynamic-active-model/explorer.rb

Overview

DynamicActiveModel::Explorer creates models and relationships

Class Method Summary collapse

Class Method Details

.build_relationships!(database, relationships) ⇒ Object



22
23
24
25
26
27
28
29
30
# File 'lib/dynamic-active-model/explorer.rb', line 22

def self.build_relationships!(database, relationships)
  relations = Associations.new(database)
  relationships.each do |table_name, foreign_keys|
    foreign_keys.each do |foreign_key, relationship_name|
      relations.add_foreign_key(table_name, foreign_key, relationship_name)
    end
  end
  relations.build!
end

.create_models!(base_module, connection_options, skip_tables) ⇒ Object



12
13
14
15
16
17
18
19
20
# File 'lib/dynamic-active-model/explorer.rb', line 12

def self.create_models!(base_module, connection_options, skip_tables)
  database = Database.new(base_module, connection_options)
  skip_tables.each do |table_name|
    table_name = Regexp.new("^#{table_name}") if table_name.include?('*')
    database.skip_table(table_name)
  end
  database.create_models!
  database
end

.explore(base_module, connection_options, skip_tables = [], relationships = {}) ⇒ Object



6
7
8
9
10
# File 'lib/dynamic-active-model/explorer.rb', line 6

def self.explore(base_module, connection_options, skip_tables = [], relationships = {})
  database = create_models!(base_module, connection_options, skip_tables)
  build_relationships!(database, relationships)
  database
end