Module: ActiveRecordPostgresqlXverify::Verifier

Defined in:
lib/active_record_postgresql_xverify/verifier.rb

Instance Method Summary collapse

Instance Method Details

#_build_verify_error_message(e) ⇒ Object



29
30
31
# File 'lib/active_record_postgresql_xverify/verifier.rb', line 29

def _build_verify_error_message(e)
  "cause: #{e.message} [#{e.class}, " + ActiveRecordPostgresqlXverify::Utils.pg_connection_info(@connection)
end

#_extend_verify?Boolean

Returns:

  • (Boolean)


33
34
35
36
# File 'lib/active_record_postgresql_xverify/verifier.rb', line 33

def _extend_verify?
  handle_if = ActiveRecordPostgresqlXverify.handle_if
  (Thread.current[ActiveRecordPostgresqlXverify::EXTEND_VERIFY_FLAG] || !ActiveRecordPostgresqlXverify.only_on_error) && handle_if.call(@config)
end

#active?Boolean

Returns:

  • (Boolean)


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

def active?
  if _extend_verify?
    is_active = begin
                  verifier = ActiveRecordPostgresqlXverify.verify
                  verifier.call(@connection)
                rescue StandardError => e
                  ActiveRecordPostgresqlXverify.logger.warn("Connection verification failed: #{_build_verify_error_message(e)}")
                  false
                ensure
                  Thread.current[ActiveRecordPostgresqlXverify::EXTEND_VERIFY_FLAG] = false
                end

    unless is_active
      ActiveRecordPostgresqlXverify.logger.info(
        "Invalid connection: #{ActiveRecordPostgresqlXverify::Utils.pg_connection_info(@connection)}"
      )
    end

    is_active
  else
    super
  end
end