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

Constant Summary collapse

CLIENTS =
{
  noop:             Client::Noop,
  google_analytics: Client::GoogleAnalytics,
}.freeze

Class Method Summary collapse

Class Method Details

.build_client(opts = {}) ⇒ Object



29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/pdk/analytics.rb', line 29

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'
    CLIENTS[:noop].new(opts)
  else
    CLIENTS[opts[:client]].new(opts)
  end
rescue StandardError => e
  opts[:logger].debug "Failed to initialize analytics client, analytics will be disabled: #{e}"
  CLIENTS[:noop].new(opts)
end