Class: Querrel::ConnectionResolver

Inherits:
Object
  • Object
show all
Defined in:
lib/querrel/connection_resolver.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(conns, db_names) ⇒ ConnectionResolver

Returns a new instance of ConnectionResolver.



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/querrel/connection_resolver.rb', line 5

def initialize(conns, db_names)
  if db_names
    base_spec = ActiveRecord::Base.connection_config

    specs = conns.map do |c|
      [c, base_spec.dup.update(database: c)]
    end
    specs = Hash[specs]
  else
    case conns
    when Hash
      specs = conns
    when Array
      conns.map!(&:to_s)
      specs = ActiveRecord::Base.configurations.select{ |n, _| conns.include?(n.to_s) }
    end
  end

  @resolver = ActiveRecord::ConnectionAdapters::ConnectionSpecification::Resolver.new(specs)
end

Instance Attribute Details

#resolverObject

Returns the value of attribute resolver.



3
4
5
# File 'lib/querrel/connection_resolver.rb', line 3

def resolver
  @resolver
end