Class: ActiveRecordServerless::Installer

Inherits:
Object
  • Object
show all
Defined in:
lib/active_record_serverless/installer.rb

Class Method Summary collapse

Class Method Details

.configObject



14
15
16
# File 'lib/active_record_serverless/installer.rb', line 14

def config
  ActiveRecord::Base.connection_config.with_indifferent_access.dig(:serverless)
end

.install!(_app) ⇒ Object



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/active_record_serverless/installer.rb', line 18

def install!(_app)
  disabled = config.dig(:disabled).nil? ? false : config.dig(:disabled)

  if disabled == true
    message = "      Skipping ActiveRecordServerless Install.\n\n      Connection config explicitly marked serverless as disabled.\n    EOF\n    ActiveRecordServerless.log(message)\n    return\n  end\n\n  _install\nend\n"

.start_timeout(timeout = nil) ⇒ Object



34
35
36
37
38
39
40
41
42
43
# File 'lib/active_record_serverless/installer.rb', line 34

def start_timeout(timeout = nil)
  timeout ||= (config.dig(:timeout) || 60.0)

  ActiveRecordServerless.log("Installing ActiveRecordServerless [timeout=#{timeout}]")

  ActiveRecordServerless::Timeout.on_timeout(timeout) do
    ActiveRecordServerless.log('ActiveRecordServerless timeout...')
    ActiveRecord::Base.connection_pool.disconnect!
  end
end