Module: PDK::Analytics

Defined in:
lib/pdk/analytics.rb,
lib/pdk/analytics/util.rb,
lib/pdk/analytics/client/noop.rb,
lib/pdk/analytics/client/google_analytics.rb

Defined Under Namespace

Modules: Client, Util

Class Method Summary collapse

Class Method Details

.build_client(opts = {}) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/pdk/analytics.rb', line 14

def self.build_client(opts = {})
  opts[:logger] ||= ::Logger.new(STDERR)
  opts[:client] ||= :noop

  if opts[:disabled]
    opts[:logger].debug 'Analytics opt-out is set, analytics will be disabled'
    opts[:client] = :noop
  end

  client_const = opts[:client].to_s.split('_').map(&:capitalize).join
  PDK::Analytics::Client.const_get(client_const).new(opts)
rescue StandardError => e
  opts[:logger].debug "Failed to initialize analytics client, analytics will be disabled: #{e}"
  PDK::Analytics::Client::Noop.new(opts)
end