Class: Lita::Adapters::HipChat

Inherits:
Adapter
  • Object
show all
Defined in:
lib/lita/adapters/hipchat.rb,
lib/lita/adapters/hipchat/callback.rb,
lib/lita/adapters/hipchat/connector.rb

Defined Under Namespace

Classes: Callback, Connector

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(robot) ⇒ HipChat

Returns a new instance of HipChat.



22
23
24
25
# File 'lib/lita/adapters/hipchat.rb', line 22

def initialize(robot)
  super
  @connector = Connector.new(robot, config.jid, config.password, config.server, debug: config.debug)
end

Instance Attribute Details

#connectorObject (readonly)

Returns the value of attribute connector.



20
21
22
# File 'lib/lita/adapters/hipchat.rb', line 20

def connector
  @connector
end

Instance Method Details

#join(room_id) ⇒ Object



27
28
29
30
# File 'lib/lita/adapters/hipchat.rb', line 27

def join(room_id)
  connector.join(muc_domain, room_id)
  robot.trigger(:joined, room: room_id)
end

#mention_format(name) ⇒ Object



32
33
34
# File 'lib/lita/adapters/hipchat.rb', line 32

def mention_format(name)
  "@#{name}"
end

#part(room_id) ⇒ Object



36
37
38
39
# File 'lib/lita/adapters/hipchat.rb', line 36

def part(room_id)
  robot.trigger(:parted, room: room_id)
  connector.part(muc_domain, room_id)
end

#runObject



41
42
43
44
45
46
47
48
49
# File 'lib/lita/adapters/hipchat.rb', line 41

def run
  connector.connect
  robot.trigger(:connected)
  join_persisted_rooms
  create_room_objects
  sleep
rescue Interrupt
  shut_down
end

#send_messages(target, strings) ⇒ Object



51
52
53
54
55
56
57
# File 'lib/lita/adapters/hipchat.rb', line 51

def send_messages(target, strings)
  if target.private_message?
    connector.message_jid(target.user.id, strings)
  else
    connector.message_muc(target.room, strings)
  end
end

#set_topic(target, topic) ⇒ Object



59
60
61
# File 'lib/lita/adapters/hipchat.rb', line 59

def set_topic(target, topic)
  connector.set_topic(target.room, topic)
end

#shut_downObject



63
64
65
66
67
# File 'lib/lita/adapters/hipchat.rb', line 63

def shut_down
  rooms.each { |r| part(r) }
  connector.shut_down
  robot.trigger(:disconnected)
end