Class: ForestLiana::SchemaUtils

Inherits:
Object
  • Object
show all
Defined in:
app/services/forest_liana/schema_utils.rb

Class Method Summary collapse

Class Method Details

.associations(active_record_class) ⇒ Object



4
5
6
7
8
# File 'app/services/forest_liana/schema_utils.rb', line 4

def self.associations(active_record_class)
  active_record_class
    .reflect_on_all_associations
    .select {|a| !polymorphic?(a)}
end

.find_model_from_table_name(table_name) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'app/services/forest_liana/schema_utils.rb', line 16

def self.find_model_from_table_name(table_name)
  model = nil

  ActiveRecord::Base.subclasses.each do |subclass|
    if subclass.abstract_class?
      model = self.find_model_from_abstract_class(subclass, table_name)
    elsif subclass.table_name == table_name
      model = subclass
    end

    break if model
  end

  model
end

.one_associations(active_record_class) ⇒ Object



10
11
12
13
14
# File 'app/services/forest_liana/schema_utils.rb', line 10

def self.one_associations(active_record_class)
  self.associations(active_record_class).select do |x|
    [:has_one, :belongs_to].include?(x.macro)
  end
end

.tables_namesObject



32
33
34
# File 'app/services/forest_liana/schema_utils.rb', line 32

def self.tables_names
  ActiveRecord::Base.connection.tables
end