class UniformNotifier::Xmpp

Public Class Methods

active?() click to toggle source
# File lib/uniform_notifier/xmpp.rb, line 7
def self.active?
  @xmpp
end
setup_connection( xmpp_information ) click to toggle source
# File lib/uniform_notifier/xmpp.rb, line 11
def self.setup_connection( xmpp_information )
  return unless xmpp_information

  require 'xmpp4r'

  @xmpp = xmpp_information
  @receiver = xmpp_information[:receiver]
  @password = xmpp_information[:password]
  @account  = xmpp_information[:account]
  @show_online_status = xmpp_information[:show_online_status]
  @stay_connected = xmpp_information[:stay_connected].nil? ? true : xmpp_information[:stay_connected]

  connect if @stay_connected
rescue LoadError
  @xmpp = nil
  raise NotificationError.new( 'You must install the xmpp4r gem to use XMPP notification: `gem install xmpp4r`' )
end

Protected Class Methods

_out_of_channel_notify( data ) click to toggle source
# File lib/uniform_notifier/xmpp.rb, line 31
def self._out_of_channel_notify( data )
  message = data.values.compact.join("\n")

  notify( message )
end

Private Class Methods

connect() click to toggle source
# File lib/uniform_notifier/xmpp.rb, line 38
def self.connect
  jid = Jabber::JID.new( @account )
  @xmpp = Jabber::Client.new( jid )
  @xmpp.connect
  @xmpp.auth( @password )
  @xmpp.send( presence_status ) if @show_online_status
end
notify( message ) click to toggle source
# File lib/uniform_notifier/xmpp.rb, line 46
def self.notify( message )
  connect unless @stay_connected
  message = Jabber::Message.new( @receiver, message ).
                            set_type( :normal ).
                            set_subject( 'Uniform Notifier' )
  @xmpp.send( message )
end
presence_status() click to toggle source
# File lib/uniform_notifier/xmpp.rb, line 54
def self.presence_status
  Jabber::Presence.new.set_status( "Uniform Notifier started on #{Time.now}" )
end