Class: Lita::Adapters::Campfire::Callback

Inherits:
Object
  • Object
show all
Defined in:
lib/lita/adapters/campfire/callback.rb

Defined Under Namespace

Classes: EnterReceiver, EventReceiver, MessageReceiver

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options) ⇒ Callback

Returns a new instance of Callback.



8
9
10
11
12
13
14
15
16
# File 'lib/lita/adapters/campfire/callback.rb', line 8

def initialize(options)
  @robot    = options.fetch(:robot)
  @room     = options.fetch(:room)
  @robot_id = options.fetch(:robot_id)

  @receivers = [MessageReceiver, EnterReceiver].map do |receiver_type|
    receiver_type.new(self)
  end
end

Instance Attribute Details

#robotObject (readonly)

Returns the value of attribute robot.



6
7
8
# File 'lib/lita/adapters/campfire/callback.rb', line 6

def robot
  @robot
end

#robot_idObject (readonly)

Returns the value of attribute robot_id.



6
7
8
# File 'lib/lita/adapters/campfire/callback.rb', line 6

def robot_id
  @robot_id
end

#roomObject (readonly)

Returns the value of attribute room.



6
7
8
# File 'lib/lita/adapters/campfire/callback.rb', line 6

def room
  @room
end

Instance Method Details

#create_user(user_data) ⇒ Object



32
33
34
35
36
# File 'lib/lita/adapters/campfire/callback.rb', line 32

def create_user(user_data)
  user_data = user_data.dup
  user_id = user_data.delete(:id)
  User.create(user_id, user_data)
end

#listen(options = {}) ⇒ Object



18
19
20
21
22
23
24
# File 'lib/lita/adapters/campfire/callback.rb', line 18

def listen(options={})
  Thread.new do
    @room.listen(options) do |event|
      receive event
    end
  end
end

#receive(event) ⇒ Object



38
39
40
41
42
43
44
# File 'lib/lita/adapters/campfire/callback.rb', line 38

def receive(event)
  Thread.new do
    @receivers.each do |receiver|
      receiver.receive event
    end
  end
end

#register_usersObject



26
27
28
29
30
# File 'lib/lita/adapters/campfire/callback.rb', line 26

def register_users
  @room.users.each do |user|
    create_user user
  end
end