Sha256: d1e78b248ca3ca8917a0db4c971006a58beb3ad6780584cc971a8e61e031b300
Contents?: true
Size: 1.74 KB
Versions: 1
Compression:
Stored size: 1.74 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 } @tinder_options = opts.fetch(:tinder_options) { Hash.new } end def connect @campfire = Tinder::Campfire.new(@subdomain, token: @apikey) end def disconnect Lita.logger.info("Disconnecting from Campfire.") rooms.each do |room_id| room = fetch_room(room_id) room.leave end 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(@tinder_options) 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 set_topic(room_id, topic) fetch_room(room_id).topic = topic 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
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
lita-campfire-0.1.4 | lib/lita/adapters/campfire/connector.rb |