Name

Jabber::Simple - An extremely easy-to-use Jabber client library.

Synopsis

# Send a message to a friend, asking for authorization if necessary:
im = Jabber::Simple.new("[email protected]", "password")
im.deliver("[email protected]", "Hey there friend!")

# Send a message to few friends at once:
im.deliver(["[email protected]", "[email protected]"], "Hey there friends!")

# Get received messages and print them out to the console:
im.received_messages { |msg| puts msg.body if msg.type == :chat }

# Send an authorization request to a user:
im.add("[email protected]")

# View contact list (returns array of roster items)
im.contact_list

# Get friend's vcard (pass nil for your own)
info = im.get_info("[email protected]")

# Update your own info
info = im.get_info
info["NICKNAME"] = "amay"
im.update_info(info)

# Get presence updates from your friends, and print them out to the console:
# (admittedly, this one needs some work)
im.presence_updates do |update|
  from     = update[0].jid.strip.to_s
  status   = update[2].status
  presence = update[2].show
  puts "#{from} went #{presence}: #{status}"
end

# Remove a user from your contact list:
im.remove("[email protected]")

# Create a PubSub node
im.create_node("/anode")

# Publishing something to the node
im.publish_simple_item("/anode", "body", "something")

# Subscribing to a node
im.pubsubscribe_to("/anothernode")

# Getting the PubSub Subscriptions (returns an array of Jabber::PubSub::Subscription objects)
im.pubsubscriptions

# Get events from PubSub service (Jabber::PubSub::Event)
im.received_events { |event|
  items = event.children[0]
  node = items.node
  item = items.children[0]
  id = item.id
  text = item.children[0].text
  puts "You got an update on #{node} with text = #{text} (#{id})"
}

# See the Jabber::Simple documentation for more information.

Description

Jabber::Simple is intended to make Jabber client programming dead simple. XMPP, the Jabber protocol, is extremely powerful but also carries a steep learning curve. This library exposes only the most common tasks, and does so in a way that is familiar to users of traditional instant messenger clients.

Known Issues

  • None. If you’d like additional functionality, please contact the developer!

Copyright

Jabber::Simple - An extremely easy-to-use Jabber client library. Copyright 2006-2008 Blaine Cook <[email protected]>. Various other contributions by several authors. Check AUTHORS file.

Jabber::Simple is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

Jabber::Simple is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with Jabber::Simple; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA