Class: FreshConnection::AccessControl

Inherits:
Object
  • Object
show all
Defined in:
lib/fresh_connection/access_control.rb

Class Method Summary collapse

Class Method Details

.manage_access(model:, replica_access:, &block) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/fresh_connection/access_control.rb', line 9

def manage_access(model:, replica_access:, &block)
  return force_master_access(&block) if model.master_db_only?

  retry_count = 0
  begin
    access(replica_access, &block)
  rescue *catch_exceptions
    if recovery?(model.replica_spec_name)
      retry_count += 1
      retry if retry_count < RETRY_LIMIT
    end

    raise
  end
end

.replica_access?Boolean

Returns:

  • (Boolean)


25
26
27
# File 'lib/fresh_connection/access_control.rb', line 25

def replica_access?
  access_db == :replica
end