class Mixpanel::PeopleManager

Attributes

token[RW]

Public Class Methods

new(token) click to toggle source
# File lib/motion_panel/people_manager.rb, line 7
def initialize(token)
  self.token = token
end

Public Instance Methods

add(distinct_id, params) click to toggle source
# File lib/motion_panel/people_manager.rb, line 19
def add(distinct_id, params)
  engage_action(distinct_id, params, '$add', false)
end
append(distinct_id, params) click to toggle source
# File lib/motion_panel/people_manager.rb, line 23
def append(distinct_id, params)
  engage_action(distinct_id, params, '$append', false)
end
delete(distinct_id) click to toggle source
# File lib/motion_panel/people_manager.rb, line 31
def delete(distinct_id)
  engage_action(distinct_id, {}, '$delete', false)
end
set(distinct_id, params) click to toggle source
# File lib/motion_panel/people_manager.rb, line 11
def set(distinct_id, params)
  engage_action(distinct_id, params, '$set', true)
end
set_once(distinct_id, params) click to toggle source
# File lib/motion_panel/people_manager.rb, line 15
def set_once(distinct_id, params)
  engage_action(distinct_id, params, '$set_once', false)
end
unset(distinct_id, params) click to toggle source
# File lib/motion_panel/people_manager.rb, line 27
def unset(distinct_id, params)
  engage_action(distinct_id, params, '$unset', false)
end

Private Instance Methods

config() click to toggle source
# File lib/motion_panel/people_manager.rb, line 46
def config
  Mixpanel::ConfigManager
end
engage_action(distinct_id, params, action, add_default_hash) { |body| ... } click to toggle source
# File lib/motion_panel/people_manager.rb, line 37
def engage_action(distinct_id, params, action, add_default_hash)
  return false unless config.should_track?
  data = encode_64(person_json(distinct_id, params, action, add_default_hash))
  url = "http://api.mixpanel.com/engage/?data=#{data}"
  AFMotion::JSON.get(url) do |result|
    yield result.body if block_given?
  end
end
person_json(distinct_id, params, action, add_default_hash) click to toggle source
# File lib/motion_panel/people_manager.rb, line 50
def person_json(distinct_id, params, action, add_default_hash)
  hash = {
    '$token' => token,
    '$distinct_id' => distinct_id,
    action => add_default_hash ? params.merge(Mixpanel.default_hash) : params
  }
  BW::JSON.generate(hash)
end