Class: XmppGateway::XmppPool
- Inherits:
-
Object
- Object
- XmppGateway::XmppPool
- Defined in:
- lib/xmpp_gateway/xmpp_pool.rb
Instance Attribute Summary collapse
-
#connected ⇒ Object
readonly
Returns the value of attribute connected.
Class Method Summary collapse
Instance Method Summary collapse
- #client ⇒ Object
-
#initialize(user, password) ⇒ XmppPool
constructor
A new instance of XmppPool.
- #write(s) ⇒ Object
Constructor Details
#initialize(user, password) ⇒ XmppPool
Returns a new instance of XmppPool.
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/xmpp_gateway/xmpp_pool.rb', line 16 def initialize(user, password) @jid = Blather::JID.new(user) if stale? XmppGateway.logger.debug "Stale XMPP connection #{@jid}" connections.delete @jid.to_s end if record = connections[@jid.to_s] # Connection exists XmppGateway.logger.debug "Reusing XMPP connection #{@jid}" @connection = record[:connection] @connected = record[:password] == password XmppGateway.logger.debug "Expected password #{record[:password]}, but got #{password}" unless @connected else # Create connection XmppGateway.logger.debug "Creating XMPP connection #{@jid}" @connection = XmppInterface.new(user, password) @connected = @connection.connected if @connected # Cache the connection connections[@jid.to_s] = {:password => password, :connection => @connection} end end end |
Instance Attribute Details
#connected ⇒ Object (readonly)
Returns the value of attribute connected.
6 7 8 |
# File 'lib/xmpp_gateway/xmpp_pool.rb', line 6 def connected @connected end |
Class Method Details
.connections ⇒ Object
12 13 14 |
# File 'lib/xmpp_gateway/xmpp_pool.rb', line 12 def self.connections @@connections ||= {} end |
.stanza(s) ⇒ Object
8 9 10 |
# File 'lib/xmpp_gateway/xmpp_pool.rb', line 8 def self.stanza(s) XmppInterface.stanza s end |
Instance Method Details
#client ⇒ Object
45 46 47 |
# File 'lib/xmpp_gateway/xmpp_pool.rb', line 45 def client @connection.client end |
#write(s) ⇒ Object
49 50 51 |
# File 'lib/xmpp_gateway/xmpp_pool.rb', line 49 def write(s) @connection.write(s) end |