Sha256: 0d6d832a5e71ed2d3ee38de0b382d19f69adb3d33308c6bf196d0cd67f67720e
Contents?: true
Size: 1.54 KB
Versions: 2
Compression:
Stored size: 1.54 KB
Contents
module Lita module Adapters class Campfire < Adapter class Connector def initialize(robot, opts) @robot = robot @subdomain = opts.fetch(:subdomain) @apikey = opts.fetch(:apikey) @rooms = opts.fetch(:rooms) @debug = opts.fetch(:debug) { false } end def connect @campfire = Tinder::Campfire.new(@subdomain, token: @apikey) end def join_rooms rooms.each do |room_id| room = fetch_room(room_id) room.join callback = Callback.new(@robot, room) callback.register_users callback.listen end end def send_messages(room_id, messages) fetch_room(room_id).tap do |my_room| messages.each do |message| if message.include?("\n") my_room.paste message else my_room.speak message end end end end def disconnect Lita.logger.info("Disconnecting from Campfire.") rooms.each do |room_id| room = fetch_room(room_id) room.leave end end private attr_reader :rooms def fetch_room(room_id) @campfire.find_room_by_id(room_id).tap do |room| if room.nil? raise RoomNotAvailable, "Make sure you have access to room #{ room_id.inspect }" end end end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
lita-campfire-0.1.3 | lib/lita/adapters/campfire/connector.rb |
lita-campfire-0.1.2 | lib/lita/adapters/campfire/connector.rb |