Module: ActiveRecord::Honeycomb::AutoInstall

Defined in:
lib/activerecord-honeycomb/auto_install.rb

Class Method Summary collapse

Class Method Details

.auto_install!(honeycomb_client:, logger: nil) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
# File 'lib/activerecord-honeycomb/auto_install.rb', line 14

def auto_install!(honeycomb_client:, logger: nil)
  require 'active_record'
  require 'activerecord-honeycomb'

  ActiveRecord::Base.extend(Module.new do
    define_method :establish_connection do |config=nil|
      munged_config = ActiveRecord::Honeycomb.munge_config(config, client: honeycomb_client, logger: logger)
      super(munged_config)
    end
  end)
end

.available?(logger: nil) ⇒ Boolean

Returns:

  • (Boolean)


5
6
7
8
9
10
11
12
# File 'lib/activerecord-honeycomb/auto_install.rb', line 5

def available?(logger: nil)
  gem 'activerecord'
  logger.debug "#{self.name}: detected ActiveRecord, okay to autoinitialise" if logger
  true
rescue Gem::LoadError => e
  logger.debug "Didn't detect ActiveRecord (#{e.class}: #{e.message}), not autoinitialising activerecord-honeycomb" if logger
  false
end