Советую глянуть в сторону xmpp4r-simple для большей простоты (гем поверх xmpp4r). С ним код превращается в нечто подобное:
# Send a message to a friend, asking for authorization if necessary:
im = Jabber::Simple.new("user@example.com", "password")
im.deliver("friend@example.com", "Hey there friend!")
# Get received messages and print them out to the console:
im.received_messages { |msg| puts msg.body if msg.type == :chat }
а как доказать, что контракты всегда соблюдаются и соответствующие проверки можно убрать? просто проанализировать граф вызовов и сопоставить requires и ensures — мало…
# Send a message to a friend, asking for authorization if necessary:
im = Jabber::Simple.new("user@example.com", "password")
im.deliver("friend@example.com", "Hey there friend!")
# Get received messages and print them out to the console:
im.received_messages { |msg| puts msg.body if msg.type == :chat }
просто сейчас жеж модно всё называть «облаком», вот я и подытожил :)
но так даже прикольно вышло