Class: Userlist::Push

Inherits:
Object
  • Object
show all
Defined in:
lib/userlist/push.rb,
lib/userlist/push/client.rb,
lib/userlist/push/strategies.rb,
lib/userlist/push/strategies/null.rb,
lib/userlist/push/strategies/direct.rb,
lib/userlist/push/strategies/threaded.rb,
lib/userlist/push/strategies/threaded/worker.rb

Defined Under Namespace

Modules: Strategies Classes: Client

Instance Method Summary collapse

Constructor Details

#initialize(config = {}) ⇒ Push

Returns a new instance of Push.



18
19
20
21
# File 'lib/userlist/push.rb', line 18

def initialize(config = {})
  @config = Userlist.config.merge(config)
  @mutex = Mutex.new
end

Instance Method Details

#company(payload = {}) ⇒ Object



46
47
48
49
50
51
52
53
# File 'lib/userlist/push.rb', line 46

def company(payload = {})
  with_mutex do
    raise ArgumentError, 'Missing required payload hash' unless payload
    raise ArgumentError, 'Missing required parameter :identifier' unless payload[:identifier]

    strategy.call(:post, '/companies', payload)
  end
end

#event(payload = {}) ⇒ Object Also known as: track



23
24
25
26
27
28
29
30
31
32
33
# File 'lib/userlist/push.rb', line 23

def event(payload = {})
  with_mutex do
    raise ArgumentError, 'Missing required payload hash' unless payload
    raise ArgumentError, 'Missing required parameter :name' unless payload[:name]
    raise ArgumentError, 'Missing required parameter :user' unless payload[:user]

    payload[:occured_at] ||= Time.now

    strategy.call(:post, '/events', payload)
  end
end

#user(payload = {}) ⇒ Object Also known as: identify



36
37
38
39
40
41
42
43
# File 'lib/userlist/push.rb', line 36

def user(payload = {})
  with_mutex do
    raise ArgumentError, 'Missing required payload hash' unless payload
    raise ArgumentError, 'Missing required parameter :identifier' unless payload[:identifier]

    strategy.call(:post, '/users', payload)
  end
end