class Saucy::Kiss::Observer

Public Class Methods

new(api_key) click to toggle source
# File lib/saucy/kiss/observer.rb, line 7
def initialize(api_key)
  @api_key = api_key
end

Public Instance Methods

account_created(data) click to toggle source
# File lib/saucy/kiss/observer.rb, line 23
def account_created(data)
  javascript_client(data).record('Signed Up', {
    'Plan Name' => data[:account].plan.name,
    'Plan Price' => data[:account].plan.price,
    'Is Trial Plan?' => data[:account].plan.trial
  })
end
activated(data) click to toggle source
# File lib/saucy/kiss/observer.rb, line 65
def activated(data)
  plan = data[:account].plan
  http_client.record(account_identifier(data), 'Activated', {
    'Plan Name' => plan.name,
    'Plan Price' => plan.price,
    'Is Trial Plan?'=> plan.trial
  })
end
billed(data) click to toggle source
# File lib/saucy/kiss/observer.rb, line 49
def billed(data)
  http_client.record(account_identifier(data), 'Billed', {
    'Billing Description' => "Monthly billing for #{data[:account].plan.name} plan",
    'Billing Amount' => data[:account].plan.price
  })
end
canceled(data) click to toggle source
# File lib/saucy/kiss/observer.rb, line 56
def canceled(data)
  plan = data[:account].plan
  javascript_client(data).record('Canceled', {
    'Plan Name' => plan.name,
    'Plan Price' => plan.price,
    'Is Trial Plan?'=> plan.trial
  })
end
plan_downgraded(data) click to toggle source
# File lib/saucy/kiss/observer.rb, line 40
def plan_downgraded(data)
  javascript_client(data).record('Downgraded', {
    'Previous Plan Name' => data[:from_plan].name,
    'Plan Name' => data[:to_plan].name,
    'Plan Price' => data[:to_plan].price,
    'Is Trial Plan?'=> data[:to_plan].trial,
  })
end
plan_list_viewed(data) click to toggle source
# File lib/saucy/kiss/observer.rb, line 19
def plan_list_viewed(data)
  javascript_client(data).record('Viewed Plan List')
end
plan_upgraded(data) click to toggle source
# File lib/saucy/kiss/observer.rb, line 31
def plan_upgraded(data)
  javascript_client(data).record('Upgraded', {
    'Previous Plan Name' => data[:from_plan].name,
    'Plan Name' => data[:to_plan].name,
    'Plan Price' => data[:to_plan].price,
    'Is Trial Plan?'=> data[:to_plan].trial,
  })
end
plan_viewed(data) click to toggle source
# File lib/saucy/kiss/observer.rb, line 11
def plan_viewed(data)
  javascript_client(data).record('Viewed Plan', {
    'Plan Name' => data[:plan].name,
    'Plan Price' => data[:plan].price,
    'Is Trial Plan?' => data[:plan].trial
  })
end

Private Instance Methods

account_identifier(data) click to toggle source
# File lib/saucy/kiss/observer.rb, line 91
def account_identifier(data)
  "account-#{data[:account].id}"
end
http_client() click to toggle source
# File lib/saucy/kiss/observer.rb, line 95
def http_client
  Kissmetrics::HttpClient.new(@api_key)
end
javascript_client(data) click to toggle source
# File lib/saucy/kiss/observer.rb, line 76
def javascript_client(data)
  Snogmetrics::KissmetricsApi.new(@api_key, data[:request].session, snogmetrics_output_strategy)
end
snogmetrics_output_strategy() click to toggle source
# File lib/saucy/kiss/observer.rb, line 80
def snogmetrics_output_strategy
  case Rails.env.to_s
  when 'development'
    :console_log
  when 'test'
    :array
  else
    :live
  end
end