Module: MinimumViableProduct::AnalyticsConcern

Extended by:
ActiveSupport::Concern
Included in:
ApplicationController
Defined in:
app/controllers/mvp/concerns/analytics_concern.rb

Constant Summary collapse

'invisible'

Instance Method Summary collapse

Instance Method Details

#page!(name, opts = {}) ⇒ Object



36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'app/controllers/mvp/concerns/analytics_concern.rb', line 36

def page!(name, opts={})
  return if sessions[INVISIBLE_SESSION_COOKIE].to_b == true
  return unless analytics
  analytics.page(
    user_id: current_user.try(:id),
    name: name,
    category: opts[:category],
    properties: {
      url: opts[:url],
      iteration: MVP::Iteration.version
    }
  )
end

#slack!(message) ⇒ Object



26
27
28
29
30
31
32
33
34
# File 'app/controllers/mvp/concerns/analytics_concern.rb', line 26

def slack!(message)
  if ENV['SLACK_WEBHOOK_URL']
    begin
      slack_notifier.ping message
    rescue
      slack_notifier.ping "Tried to use slack messaging but failure happened"
    end
  end
end

#track!(event, properties = {}) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'app/controllers/mvp/concerns/analytics_concern.rb', line 12

def track!(event, properties={})
  return if session[INVISIBLE_SESSION_COOKIE].to_b == true
  return unless analytics
  analytics.track({
    user_id: analytics_id,
    event: event,
    properties: properties.reverse_merge({
      iteration: MVP::Iteration.version,
      user: current_user.try(:name),
      url: request.fullpath
    })
  })
end