Module: DynamicModel::DomainExtension

Defined in:
lib/database_introspection/dynamic_model/domain_extension.rb

Instance Method Summary collapse

Instance Method Details

#add_table(scoped_table_name, &block) ⇒ Object



21
22
23
# File 'lib/database_introspection/dynamic_model/domain_extension.rb', line 21

def add_table(scoped_table_name, &block)
  DynamicModel.add_table scoped_table_name, table_prefix: prefix, &block
end

#alter_table(scoped_table_name, &block) ⇒ Object



25
26
27
# File 'lib/database_introspection/dynamic_model/domain_extension.rb', line 25

def alter_table(scoped_table_name, &block)
  DynamicModel.alter_table scoped_table_name, table_prefix: prefix, &block
end

#model_class(scoped_table_name) ⇒ Object



29
30
31
# File 'lib/database_introspection/dynamic_model/domain_extension.rb', line 29

def model_class(scoped_table_name)
  Hash[scoped_table_names.zip model_classes][scoped_table_name]
end

#model_classesObject



5
6
7
# File 'lib/database_introspection/dynamic_model/domain_extension.rb', line 5

def model_classes
  self.constants.map {|sym| "#{self.name}::#{sym.to_s}".constantize}
end

#prefixObject



17
18
19
# File 'lib/database_introspection/dynamic_model/domain_extension.rb', line 17

def prefix
  DynamicModel::ManagedDomains.to_hash[self]
end

#scoped_table_namesObject



13
14
15
# File 'lib/database_introspection/dynamic_model/domain_extension.rb', line 13

def scoped_table_names
  table_names.map{|table_name| table_name.gsub /^#{prefix}_/, ''}
end

#table_namesObject



9
10
11
# File 'lib/database_introspection/dynamic_model/domain_extension.rb', line 9

def table_names
  ActiveRecord::Base.connection.tables.grep(/^#{prefix}_/)
end