Class: AptControl::Jabber
- Inherits:
-
Object
- Object
- AptControl::Jabber
show all
- Includes:
- Actors::Proxied, Jabber
- Defined in:
- lib/apt_control/jabber.rb
Defined Under Namespace
Classes: ConnectionError, Error, SendError
Instance Method Summary
collapse
#actor, included
Constructor Details
#initialize(options) ⇒ Jabber
Returns a new instance of Jabber.
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
# File 'lib/apt_control/jabber.rb', line 10
def initialize(options)
@enabled = options[:enabled]
@jid = options[:jid]
@password = options[:password]
@room_jid = options[:room_jid]
@logger = options[:logger]
if @enabled
@room_nick = @room_jid && @room_jid.split('/').last
@room_listeners = []
swallow_errors { connect! } unless options[:defer_connect]
end
end
|
Instance Method Details
#add_room_listener(listener) ⇒ Object
66
67
68
|
# File 'lib/apt_control/jabber.rb', line 66
def add_room_listener(listener)
@room_listeners << listener
end
|
#connected? ⇒ Boolean
60
61
62
|
# File 'lib/apt_control/jabber.rb', line 60
def connected?
@client && @client.is_connected? && @muc && @muc.active?
end
|
#enabled? ⇒ Boolean
25
|
# File 'lib/apt_control/jabber.rb', line 25
def enabled? ; @enabled ; end
|
#not_connected? ⇒ Boolean
64
|
# File 'lib/apt_control/jabber.rb', line 64
def not_connected? ; ! connected? ; end
|
#room_nick ⇒ Object
26
|
# File 'lib/apt_control/jabber.rb', line 26
def room_nick ; @room_nick ; end
|
#send_message(msg) ⇒ Object
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
# File 'lib/apt_control/jabber.rb', line 28
def send_message(msg)
return unless enabled?
if not_connected?
connect!
end
begin
attempt_reconnect do
@logger.info("sending message to chat room: #{msg}")
@muc.send(Message.new(nil, msg))
end
rescue JabberError => e
raise SendError.new("failed to send message to chat room", e)
end
end
|
#swallow_errors(jabber_errors_too = false, &block) ⇒ Object
execute the block, swallow any Jabber::Error errors it raises, reporting them to the logger
47
48
49
50
51
52
53
54
55
56
57
58
|
# File 'lib/apt_control/jabber.rb', line 47
def swallow_errors(jabber_errors_too=false, &block)
begin
yield(self)
rescue Error => e
@logger.error("swallowed error: #{e}")
@logger.error(e)
rescue JabberError => e
raise unless jabber_errors_too
@logger.error("swallowed error: #{e}")
@logger.error(e)
end
end
|