Class: CodeKindly::Utils::ActiveRecord

Inherits:
Object
  • Object
show all
Defined in:
lib/code_kindly/utils/active_record.rb

Class Method Summary collapse

Class Method Details

.active_record_classes_by_connectionObject



5
6
7
8
9
10
11
12
13
14
15
# File 'lib/code_kindly/utils/active_record.rb', line 5

def active_record_classes_by_connection
  @active_record_classes_by_connection ||= begin
    sets = {}.with_indifferent_access
    find_active_record_classes.each do |klass|
      config_name = configurations.keys.select { |k| configurations[k]["database"] == klass.connection.current_database }.first
      sets[config_name] ||= []
      sets[config_name] << klass
    end
    sets
  end
end

.clear_scope(scope) ⇒ Object



17
18
19
20
21
22
23
24
# File 'lib/code_kindly/utils/active_record.rb', line 17

def clear_scope (scope)
  if 0 == scope.count
    puts "Nothing to clear"
  else
    puts "Clearing #{scope.count} #{scope.name} records"
    scope.delete_all
  end
end

.config(name = nil) ⇒ Object



31
32
33
34
35
# File 'lib/code_kindly/utils/active_record.rb', line 31

def config(name = nil)
  return unless active_record_available?
  name ||= ::Rails.env
  configurations[name]
end

.configurationsObject



26
27
28
29
# File 'lib/code_kindly/utils/active_record.rb', line 26

def configurations
  return unless active_record_available?
  @configurations ||= YAML.load_file(::Rails.root.join(*%w[config database.yml]))
end

.default_connection_class(connection = nil) ⇒ Object



37
38
39
40
41
42
# File 'lib/code_kindly/utils/active_record.rb', line 37

def default_connection_class (connection = nil)
  return unless active_record_available?
  connection ||= ::Rails.env
  @default_connection_class ||= {}.with_indifferent_access
  @default_connection_class[connection] ||= active_record_classes_by_connection.fetch(connection, []).first
end