cerberus 0.6 → 0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Authors.txt +4 -0
- data/Changelog.txt +11 -0
- data/Copyright.txt +16 -0
- data/Rakefile +16 -25
- data/Readme.markdown +1 -3
- data/bin/cerberus +5 -0
- data/lib/cerberus/builder/bjam.rb +1 -3
- data/lib/cerberus/builder/maven2.rb +0 -1
- data/lib/cerberus/builder/rake.rb +1 -1
- data/lib/cerberus/builder/rspec.rb +0 -1
- data/lib/cerberus/builder/ruby_base.rb +0 -1
- data/lib/cerberus/component_lazy_loader.rb +6 -2
- data/lib/cerberus/config.example.yml +1 -0
- data/lib/cerberus/constants.rb +2 -2
- data/lib/cerberus/manager.rb +7 -1
- data/lib/cerberus/publisher/mail.rb +4 -4
- data/lib/cerberus/publisher/twitter.rb +0 -1
- data/lib/cerberus/scm/base.rb +19 -0
- data/lib/cerberus/scm/bzr.rb +62 -0
- data/lib/cerberus/scm/cvs.rb +2 -7
- data/lib/cerberus/scm/darcs.rb +2 -11
- data/lib/cerberus/scm/git.rb +6 -14
- data/lib/cerberus/scm/perforce.rb +4 -4
- data/lib/cerberus/scm/svn.rb +2 -7
- data/lib/cerberus/utils.rb +5 -0
- data/lib/vendor/irc/README +23 -0
- data/lib/vendor/irc/lib/IRC.rb +164 -0
- data/lib/vendor/irc/lib/IRCChannel.rb +33 -0
- data/lib/vendor/irc/lib/IRCConnection.rb +134 -0
- data/lib/vendor/irc/lib/IRCEvent.rb +91 -0
- data/lib/vendor/irc/lib/IRCUser.rb +23 -0
- data/lib/vendor/irc/lib/IRCUtil.rb +49 -0
- data/lib/vendor/irc/lib/eventmap.yml +247 -0
- data/lib/vendor/twitter/CHANGES +129 -0
- data/lib/vendor/twitter/MIT-LICENSE +20 -0
- data/lib/vendor/twitter/README +37 -0
- data/lib/vendor/twitter/TODO +7 -0
- data/lib/vendor/twitter/lib/twitter.rb +34 -0
- data/lib/vendor/twitter/lib/twitter/client.rb +24 -0
- data/lib/vendor/twitter/lib/twitter/client/account.rb +24 -0
- data/lib/vendor/twitter/lib/twitter/client/auth.rb +27 -0
- data/lib/vendor/twitter/lib/twitter/client/base.rb +93 -0
- data/lib/vendor/twitter/lib/twitter/client/blocks.rb +35 -0
- data/lib/vendor/twitter/lib/twitter/client/favorites.rb +53 -0
- data/lib/vendor/twitter/lib/twitter/client/friendship.rb +35 -0
- data/lib/vendor/twitter/lib/twitter/client/graph.rb +37 -0
- data/lib/vendor/twitter/lib/twitter/client/messaging.rb +79 -0
- data/lib/vendor/twitter/lib/twitter/client/profile.rb +29 -0
- data/lib/vendor/twitter/lib/twitter/client/search.rb +27 -0
- data/lib/vendor/twitter/lib/twitter/client/status.rb +51 -0
- data/lib/vendor/twitter/lib/twitter/client/timeline.rb +72 -0
- data/lib/vendor/twitter/lib/twitter/client/user.rb +65 -0
- data/lib/vendor/twitter/lib/twitter/config.rb +77 -0
- data/lib/vendor/twitter/lib/twitter/console.rb +31 -0
- data/lib/vendor/twitter/lib/twitter/core.rb +137 -0
- data/lib/vendor/twitter/lib/twitter/ext.rb +2 -0
- data/lib/vendor/twitter/lib/twitter/ext/stdlib.rb +52 -0
- data/lib/vendor/twitter/lib/twitter/extras.rb +39 -0
- data/lib/vendor/twitter/lib/twitter/meta.rb +56 -0
- data/lib/vendor/twitter/lib/twitter/model.rb +360 -0
- data/lib/vendor/twitter/lib/twitter/version.rb +19 -0
- data/lib/vendor/twitter/spec/twitter/client/account_spec.rb +28 -0
- data/lib/vendor/twitter/spec/twitter/client/auth_spec.rb +34 -0
- data/lib/vendor/twitter/spec/twitter/client/base_spec.rb +242 -0
- data/lib/vendor/twitter/spec/twitter/client/blocks_spec.rb +76 -0
- data/lib/vendor/twitter/spec/twitter/client/favorites_spec.rb +183 -0
- data/lib/vendor/twitter/spec/twitter/client/friendship_spec.rb +76 -0
- data/lib/vendor/twitter/spec/twitter/client/graph_spec.rb +67 -0
- data/lib/vendor/twitter/spec/twitter/client/messaging_spec.rb +135 -0
- data/lib/vendor/twitter/spec/twitter/client/profile_spec.rb +91 -0
- data/lib/vendor/twitter/spec/twitter/client/search_spec.rb +68 -0
- data/lib/vendor/twitter/spec/twitter/client/status_spec.rb +119 -0
- data/lib/vendor/twitter/spec/twitter/client/timeline_spec.rb +79 -0
- data/lib/vendor/twitter/spec/twitter/client/user_spec.rb +203 -0
- data/lib/vendor/twitter/spec/twitter/client_spec.rb +2 -0
- data/lib/vendor/twitter/spec/twitter/config_spec.rb +86 -0
- data/lib/vendor/twitter/spec/twitter/console_spec.rb +15 -0
- data/lib/vendor/twitter/spec/twitter/core_spec.rb +127 -0
- data/lib/vendor/twitter/spec/twitter/ext/stdlib_spec.rb +59 -0
- data/lib/vendor/twitter/spec/twitter/extras_spec.rb +46 -0
- data/lib/vendor/twitter/spec/twitter/meta_spec.rb +90 -0
- data/lib/vendor/twitter/spec/twitter/model_spec.rb +508 -0
- data/lib/vendor/twitter/spec/twitter/version_spec.rb +19 -0
- data/lib/vendor/xmpp4r/CHANGELOG +83 -0
- data/lib/vendor/xmpp4r/COPYING +340 -0
- data/lib/vendor/xmpp4r/LICENSE +59 -0
- data/lib/vendor/xmpp4r/README.rdoc +110 -0
- data/lib/vendor/xmpp4r/README_ruby19.txt +43 -0
- data/lib/vendor/xmpp4r/Rakefile +262 -0
- data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/advanced/adventure/README +56 -0
- data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/advanced/adventure/adventure.rb +23 -0
- data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/advanced/adventure/adventuremuc.rb +136 -0
- data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/advanced/adventure/cube.xml +15 -0
- data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/advanced/adventure/tower.xml +69 -0
- data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/advanced/adventure/world.rb +424 -0
- data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/advanced/fileserve.conf +11 -0
- data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/advanced/fileserve.rb +346 -0
- data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/advanced/getonline.rb +56 -0
- data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/advanced/gtkmucclient.rb +315 -0
- data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/advanced/migrate.rb +88 -0
- data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/advanced/minimuc.rb +266 -0
- data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/advanced/pep-aggregator/index.xsl +235 -0
- data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/advanced/pep-aggregator/pep-aggregator.rb +147 -0
- data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/advanced/recvfile.rb +84 -0
- data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/advanced/rosterdiscovery.rb +129 -0
- data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/advanced/sendfile.conf +10 -0
- data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/advanced/sendfile.rb +72 -0
- data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/advanced/shellmgr/shellmgr.rb +51 -0
- data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/advanced/shellmgr/shellmgr_jabber.rb +43 -0
- data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/advanced/shellmgr/shellmgr_test.rb +10 -0
- data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/advanced/versionpoll.rb +90 -0
- data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/advanced/xmpping.rb +146 -0
- data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/advanced/xmppingrc.sample +14 -0
- data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/basic/change_password.rb +41 -0
- data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/basic/client.rb +70 -0
- data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/basic/component.rb +11 -0
- data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/basic/echo.rb +37 -0
- data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/basic/jabbersend.rb +41 -0
- data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/basic/mass_sender.rb +68 -0
- data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/basic/muc_owner_config.rb +12 -0
- data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/basic/mucinfo.rb +41 -0
- data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/basic/mucsimplebot.rb +82 -0
- data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/basic/register.rb +42 -0
- data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/basic/remove_registration.rb +18 -0
- data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/basic/roster.rb +44 -0
- data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/basic/rosterprint.rb +50 -0
- data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/basic/rosterrename.rb +34 -0
- data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/basic/rosterwatch.rb +171 -0
- data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/basic/send_vcard.rb +67 -0
- data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/basic/tune_client.rb +56 -0
- data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/basic/tune_server.rb +58 -0
- data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/basic/versionbot.rb +75 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r.rb +116 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/base64.rb +32 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/bytestreams.rb +15 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/bytestreams/helper/filetransfer.rb +319 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/bytestreams/helper/ibb/base.rb +257 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/bytestreams/helper/ibb/initiator.rb +31 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/bytestreams/helper/ibb/target.rb +47 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/bytestreams/helper/socks5bytestreams/base.rb +152 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/bytestreams/helper/socks5bytestreams/initiator.rb +86 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/bytestreams/helper/socks5bytestreams/server.rb +198 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/bytestreams/helper/socks5bytestreams/socks5.rb +65 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/bytestreams/helper/socks5bytestreams/target.rb +73 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/bytestreams/helper/socks5bytestreams/target.rb.orig +62 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/bytestreams/iq/bytestreams.rb +170 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/bytestreams/iq/si.rb +206 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/callbacks.rb +124 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/caps.rb +1 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/caps/c.rb +53 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/caps/helper/generator.rb +160 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/caps/helper/helper.rb +87 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/client.rb +317 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/command/helper/responder.rb +53 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/command/iq/command.rb +154 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/component.rb +103 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/connection.rb +219 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/dataforms.rb +5 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/dataforms/x/data.rb +297 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/debuglog.rb +42 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/delay.rb +5 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/delay/x/delay.rb +99 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/discovery.rb +7 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/discovery/helper/responder.rb +165 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/discovery/iq/discoinfo.rb +211 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/discovery/iq/discoitems.rb +147 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/errors.rb +281 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/feature_negotiation.rb +5 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/feature_negotiation/iq/feature.rb +28 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/framework/base.rb +55 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/framework/bot.rb +148 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/httpbinding.rb +5 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/httpbinding/client.rb +285 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/idgenerator.rb +37 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/iq.rb +221 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/jid.rb +167 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/message.rb +148 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/muc.rb +14 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/muc/helper/mucbrowser.rb +92 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/muc/helper/mucclient.rb +462 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/muc/helper/simplemucclient.rb +332 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/muc/iq/mucadmin.rb +23 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/muc/iq/mucadminitem.rb +20 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/muc/iq/mucowner.rb +15 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/muc/item.rb +143 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/muc/x/muc.rb +70 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/muc/x/mucuserinvite.rb +60 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/muc/x/mucuseritem.rb +36 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/presence.rb +232 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/pubsub.rb +8 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/pubsub/children/configuration.rb +86 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/pubsub/children/event.rb +49 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/pubsub/children/item.rb +35 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/pubsub/children/items.rb +44 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/pubsub/children/node_config.rb +48 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/pubsub/children/publish.rb +24 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/pubsub/children/subscription.rb +62 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/pubsub/children/subscription_config.rb +67 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/pubsub/children/unsubscribe.rb +48 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/pubsub/helper/nodebrowser.rb +130 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/pubsub/helper/nodehelper.rb +156 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/pubsub/helper/servicehelper.rb +417 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/pubsub/iq/pubsub.rb +19 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/query.rb +15 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/rexmladdons.rb +151 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/roster.rb +7 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/roster/helper/roster.rb +519 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/roster/iq/roster.rb +215 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/roster/x/roster.rb +138 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/rpc.rb +2 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/rpc/helper/client.rb +123 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/rpc/helper/server.rb +74 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/rpc/helper/xmlrpcaddons.rb +67 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/rpc/iq/rpc.rb +23 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/sasl.rb +237 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/semaphore.rb +38 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/stream.rb +497 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/streamparser.rb +77 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/tune.rb +2 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/tune/helper/helper.rb +58 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/tune/tune.rb +113 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/vcard.rb +6 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/vcard/helper/vcard.rb +84 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/vcard/iq/vcard.rb +109 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/version.rb +7 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/version/helper/responder.rb +72 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/version/helper/simpleresponder.rb +44 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/version/iq/version.rb +105 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/x.rb +37 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/xhtml.rb +1 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/xhtml/html.rb +115 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/xmpp4r.rb +18 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/xmppelement.rb +168 -0
- data/lib/vendor/xmpp4r/lib/xmpp4r/xmppstanza.rb +162 -0
- data/lib/vendor/xmpp4r/setup.rb +1586 -0
- data/lib/vendor/xmpp4r/test/bytestreams/tc_ibb.rb +186 -0
- data/lib/vendor/xmpp4r/test/bytestreams/tc_socks5bytestreams.rb +113 -0
- data/lib/vendor/xmpp4r/test/caps/tc_helper.rb +156 -0
- data/lib/vendor/xmpp4r/test/dataforms/tc_data.rb +81 -0
- data/lib/vendor/xmpp4r/test/delay/tc_xdelay.rb +51 -0
- data/lib/vendor/xmpp4r/test/discovery/tc_responder.rb +91 -0
- data/lib/vendor/xmpp4r/test/lib/assert_equal_xml.rb +14 -0
- data/lib/vendor/xmpp4r/test/lib/clienttester.rb +120 -0
- data/lib/vendor/xmpp4r/test/muc/tc_muc_mucclient.rb +830 -0
- data/lib/vendor/xmpp4r/test/muc/tc_muc_simplemucclient.rb +114 -0
- data/lib/vendor/xmpp4r/test/muc/tc_mucowner.rb +50 -0
- data/lib/vendor/xmpp4r/test/pubsub/tc_helper.rb +662 -0
- data/lib/vendor/xmpp4r/test/pubsub/tc_nodeconfig.rb +54 -0
- data/lib/vendor/xmpp4r/test/pubsub/tc_subscriptionconfig.rb +41 -0
- data/lib/vendor/xmpp4r/test/roster/tc_helper.rb +514 -0
- data/lib/vendor/xmpp4r/test/roster/tc_iqqueryroster.rb +173 -0
- data/lib/vendor/xmpp4r/test/roster/tc_xroster.rb +73 -0
- data/lib/vendor/xmpp4r/test/rpc/tc_helper.rb +96 -0
- data/lib/vendor/xmpp4r/test/tc_callbacks.rb +129 -0
- data/lib/vendor/xmpp4r/test/tc_class_names.rb +146 -0
- data/lib/vendor/xmpp4r/test/tc_client.rb +30 -0
- data/lib/vendor/xmpp4r/test/tc_errors.rb +146 -0
- data/lib/vendor/xmpp4r/test/tc_idgenerator.rb +30 -0
- data/lib/vendor/xmpp4r/test/tc_iq.rb +113 -0
- data/lib/vendor/xmpp4r/test/tc_iqquery.rb +31 -0
- data/lib/vendor/xmpp4r/test/tc_jid.rb +204 -0
- data/lib/vendor/xmpp4r/test/tc_message.rb +116 -0
- data/lib/vendor/xmpp4r/test/tc_presence.rb +150 -0
- data/lib/vendor/xmpp4r/test/tc_rexml.rb +139 -0
- data/lib/vendor/xmpp4r/test/tc_stream.rb +229 -0
- data/lib/vendor/xmpp4r/test/tc_streamComponent.rb +95 -0
- data/lib/vendor/xmpp4r/test/tc_streamError.rb +131 -0
- data/lib/vendor/xmpp4r/test/tc_streamSend.rb +59 -0
- data/lib/vendor/xmpp4r/test/tc_streamparser.rb +112 -0
- data/lib/vendor/xmpp4r/test/tc_xmppstanza.rb +135 -0
- data/lib/vendor/xmpp4r/test/ts_xmpp4r.rb +53 -0
- data/lib/vendor/xmpp4r/test/tune/tc_helper_recv.rb +84 -0
- data/lib/vendor/xmpp4r/test/tune/tc_helper_send.rb +74 -0
- data/lib/vendor/xmpp4r/test/tune/tc_tune.rb +79 -0
- data/lib/vendor/xmpp4r/test/vcard/tc_helper.rb +49 -0
- data/lib/vendor/xmpp4r/test/vcard/tc_iqvcard.rb +62 -0
- data/lib/vendor/xmpp4r/test/version/tc_helper.rb +60 -0
- data/lib/vendor/xmpp4r/test/version/tc_iqqueryversion.rb +97 -0
- data/lib/vendor/xmpp4r/test/xhtml/tc_html.rb +41 -0
- data/lib/vendor/xmpp4r/tools/gen_requires.bash +31 -0
- data/lib/vendor/xmpp4r/tools/xmpp4r-gemspec-test.rb +11 -0
- data/lib/vendor/xmpp4r/xmpp4r.gemspec +291 -0
- data/test/jabber_publisher_test.rb +1 -1
- data/test/mail_publisher_test.rb +2 -2
- data/test/mock/twitter.rb +0 -1
- data/test/rspec_builder_test.rb +39 -2
- data/test/rss_publisher_test.rb +1 -1
- data/test/twitter_publisher_test.rb +1 -1
- metadata +268 -53
- data/lib/cerberus/publisher/gmailer.rb +0 -17
|
@@ -0,0 +1,332 @@
|
|
|
1
|
+
# =XMPP4R - XMPP Library for Ruby
|
|
2
|
+
# License:: Ruby's license (see the LICENSE file) or GNU GPL, at your option.
|
|
3
|
+
# Website::http://home.gna.org/xmpp4r/
|
|
4
|
+
|
|
5
|
+
require 'xmpp4r/delay/x/delay'
|
|
6
|
+
require 'xmpp4r/muc/helper/mucclient'
|
|
7
|
+
require 'xmpp4r/muc/iq/mucadminitem'
|
|
8
|
+
|
|
9
|
+
module Jabber
|
|
10
|
+
module MUC
|
|
11
|
+
##
|
|
12
|
+
# This class attempts to implement a lot of complexity of the
|
|
13
|
+
# Multi-User Chat protocol. If you want to implement JEP0045
|
|
14
|
+
# yourself, use Jabber::MUC::MUCClient for some minor
|
|
15
|
+
# abstraction.
|
|
16
|
+
#
|
|
17
|
+
# Minor flexibility penalty: the on_* callbacks are no
|
|
18
|
+
# CallbackLists and may therefore only used once. A second
|
|
19
|
+
# invocation will overwrite the previous set up block.
|
|
20
|
+
#
|
|
21
|
+
# *Hint:* the parameter time may be nil if the server didn't
|
|
22
|
+
# send it.
|
|
23
|
+
#
|
|
24
|
+
# Example usage:
|
|
25
|
+
# my_muc = Jabber::MUC::SimpleMUCClient.new(my_client)
|
|
26
|
+
# my_muc.on_message { |time,nick,text|
|
|
27
|
+
# puts (time || Time.new).strftime('%I:%M') + " <#{nick}> #{text}"
|
|
28
|
+
# }
|
|
29
|
+
# my_muc.join(Jabber::JID.new('jdev@conference.jabber.org/XMPP4R-Bot'))
|
|
30
|
+
#
|
|
31
|
+
# Please take a look at Jabber::MUC::MUCClient for
|
|
32
|
+
# derived methods, such as MUCClient#join, MUCClient#exit,
|
|
33
|
+
# ...
|
|
34
|
+
class SimpleMUCClient < MUCClient
|
|
35
|
+
##
|
|
36
|
+
# Initialize a SimpleMUCClient
|
|
37
|
+
# stream:: [Stream] to operate on
|
|
38
|
+
# jid:: [JID] room@component/nick
|
|
39
|
+
# password:: [String] Optional password
|
|
40
|
+
def initialize(stream)
|
|
41
|
+
super
|
|
42
|
+
|
|
43
|
+
@room_message_block = nil
|
|
44
|
+
@message_block = nil
|
|
45
|
+
@private_message_block = nil
|
|
46
|
+
@subject_block = nil
|
|
47
|
+
|
|
48
|
+
@subject = nil
|
|
49
|
+
|
|
50
|
+
@join_block = nil
|
|
51
|
+
add_join_callback(999) { |pres|
|
|
52
|
+
# Presence time
|
|
53
|
+
time = nil
|
|
54
|
+
pres.each_element('x') { |x|
|
|
55
|
+
if x.kind_of?(Delay::XDelay)
|
|
56
|
+
time = x.stamp
|
|
57
|
+
end
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
# Invoke...
|
|
61
|
+
@join_block.call(time, pres.from.resource) if @join_block
|
|
62
|
+
false
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
@leave_block = nil
|
|
66
|
+
@self_leave_block = nil
|
|
67
|
+
add_leave_callback(999) { |pres|
|
|
68
|
+
# Presence time
|
|
69
|
+
time = nil
|
|
70
|
+
pres.each_element('x') { |x|
|
|
71
|
+
if x.kind_of?(Delay::XDelay)
|
|
72
|
+
time = x.stamp
|
|
73
|
+
end
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
# Invoke...
|
|
77
|
+
if pres.from == jid
|
|
78
|
+
@self_leave_block.call(time) if @self_leave_block
|
|
79
|
+
else
|
|
80
|
+
@leave_block.call(time, pres.from.resource) if @leave_block
|
|
81
|
+
end
|
|
82
|
+
false
|
|
83
|
+
}
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
private
|
|
87
|
+
|
|
88
|
+
def handle_message(msg)
|
|
89
|
+
super
|
|
90
|
+
|
|
91
|
+
# Message time (e.g. history)
|
|
92
|
+
time = nil
|
|
93
|
+
msg.each_element('x') { |x|
|
|
94
|
+
if x.kind_of?(Delay::XDelay)
|
|
95
|
+
time = x.stamp
|
|
96
|
+
end
|
|
97
|
+
}
|
|
98
|
+
sender_nick = msg.from.resource
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
if msg.subject
|
|
102
|
+
@subject = msg.subject
|
|
103
|
+
@subject_block.call(time, sender_nick, @subject) if @subject_block
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
if msg.body
|
|
107
|
+
if sender_nick.nil?
|
|
108
|
+
@room_message_block.call(time, msg.body) if @room_message_block
|
|
109
|
+
else
|
|
110
|
+
if msg.type == :chat
|
|
111
|
+
@private_message_block.call(time, msg.from.resource, msg.body) if @private_message_block
|
|
112
|
+
elsif msg.type == :groupchat
|
|
113
|
+
@message_block.call(time, msg.from.resource, msg.body) if @message_block
|
|
114
|
+
else
|
|
115
|
+
# ...?
|
|
116
|
+
end
|
|
117
|
+
end
|
|
118
|
+
end
|
|
119
|
+
end
|
|
120
|
+
|
|
121
|
+
public
|
|
122
|
+
|
|
123
|
+
##
|
|
124
|
+
# Room subject/topic
|
|
125
|
+
# result:: [String] The subject
|
|
126
|
+
def subject
|
|
127
|
+
@subject
|
|
128
|
+
end
|
|
129
|
+
|
|
130
|
+
##
|
|
131
|
+
# Change the room's subject/topic
|
|
132
|
+
#
|
|
133
|
+
# This will not be reflected by SimpleMUCClient#subject
|
|
134
|
+
# immediately, wait for SimpleMUCClient#on_subject
|
|
135
|
+
# s:: [String] New subject
|
|
136
|
+
def subject=(s)
|
|
137
|
+
msg = Message.new
|
|
138
|
+
msg.subject = s
|
|
139
|
+
send(msg)
|
|
140
|
+
end
|
|
141
|
+
|
|
142
|
+
##
|
|
143
|
+
# Send a simple text message
|
|
144
|
+
# text:: [String] Message body
|
|
145
|
+
# to:: [String] Optional nick if directed to specific user
|
|
146
|
+
def say(text, to=nil)
|
|
147
|
+
send(Message.new(nil, text), to)
|
|
148
|
+
end
|
|
149
|
+
|
|
150
|
+
##
|
|
151
|
+
# Request the MUC to invite users to this room
|
|
152
|
+
#
|
|
153
|
+
# Sample usage:
|
|
154
|
+
# my_muc.invite( {'wiccarocks@shakespeare.lit/laptop' => 'This coven needs both wiccarocks and hag66.',
|
|
155
|
+
# 'hag66@shakespeare.lit' => 'This coven needs both hag66 and wiccarocks.'} )
|
|
156
|
+
# recipients:: [Hash] of [JID] => [String] Reason
|
|
157
|
+
def invite(recipients)
|
|
158
|
+
msg = Message.new
|
|
159
|
+
x = msg.add(XMUCUser.new)
|
|
160
|
+
recipients.each { |jid,reason|
|
|
161
|
+
x.add(XMUCUserInvite.new(jid, reason))
|
|
162
|
+
}
|
|
163
|
+
send(msg)
|
|
164
|
+
end
|
|
165
|
+
|
|
166
|
+
##
|
|
167
|
+
# Administratively remove one or more users from the room.
|
|
168
|
+
#
|
|
169
|
+
# Will wait for response, possibly raising ServerError
|
|
170
|
+
#
|
|
171
|
+
# Sample usage:
|
|
172
|
+
# my_muc.kick 'pistol', 'Avaunt, you cullion!'
|
|
173
|
+
# my_muc.kick(['Bill', 'Linus'], 'Stop flaming')
|
|
174
|
+
#
|
|
175
|
+
# recipients:: [Array] of, or single [String]: Nicks
|
|
176
|
+
# reason:: [String] Kick reason
|
|
177
|
+
def kick(recipients, reason)
|
|
178
|
+
recipients = [recipients] unless recipients.kind_of? Array
|
|
179
|
+
items = recipients.collect { |recipient|
|
|
180
|
+
item = IqQueryMUCAdminItem.new
|
|
181
|
+
item.nick = recipient
|
|
182
|
+
item.role = :none
|
|
183
|
+
item.reason = reason
|
|
184
|
+
item
|
|
185
|
+
}
|
|
186
|
+
send_affiliations(items)
|
|
187
|
+
end
|
|
188
|
+
|
|
189
|
+
##
|
|
190
|
+
# Administratively ban one or more user jids from the room.
|
|
191
|
+
#
|
|
192
|
+
# Will wait for response, possibly raising ServerError
|
|
193
|
+
#
|
|
194
|
+
# Sample usage:
|
|
195
|
+
# my_muc.ban 'pistol@foobar.com', 'Avaunt, you cullion!'
|
|
196
|
+
#
|
|
197
|
+
# recipients:: [Array] of, or single [String]: JIDs
|
|
198
|
+
# reason:: [String] Ban reason
|
|
199
|
+
def ban(recipients, reason)
|
|
200
|
+
recipients = [recipients] unless recipients.kind_of? Array
|
|
201
|
+
items = recipients.collect { |recipient|
|
|
202
|
+
item = IqQueryMUCAdminItem.new
|
|
203
|
+
item.jid = recipient
|
|
204
|
+
item.affiliation = :outcast
|
|
205
|
+
item.reason = reason
|
|
206
|
+
item
|
|
207
|
+
}
|
|
208
|
+
send_affiliations(items)
|
|
209
|
+
end
|
|
210
|
+
|
|
211
|
+
##
|
|
212
|
+
# Unban one or more user jids for the room.
|
|
213
|
+
#
|
|
214
|
+
# Will wait for response, possibly raising ServerError
|
|
215
|
+
#
|
|
216
|
+
# Sample usage:
|
|
217
|
+
# my_muc.unban 'pistol@foobar.com'
|
|
218
|
+
#
|
|
219
|
+
# recipients:: [Array] of, or single [String]: JIDs
|
|
220
|
+
def unban(recipients)
|
|
221
|
+
recipients = [recipients] unless recipients.kind_of? Array
|
|
222
|
+
items = recipients.collect { |recipient|
|
|
223
|
+
item = IqQueryMUCAdminItem.new
|
|
224
|
+
item.jid = recipient
|
|
225
|
+
item.affiliation = :none
|
|
226
|
+
item
|
|
227
|
+
}
|
|
228
|
+
send_affiliations(items)
|
|
229
|
+
end
|
|
230
|
+
|
|
231
|
+
##
|
|
232
|
+
# Promote one or more users in the room to moderator.
|
|
233
|
+
#
|
|
234
|
+
# Will wait for response, possibly raising ServerError
|
|
235
|
+
#
|
|
236
|
+
# Sample usage:
|
|
237
|
+
# my_muc.promote 'pistol'
|
|
238
|
+
#
|
|
239
|
+
# recipients:: [Array] of, or single [String]: Nicks
|
|
240
|
+
def promote(recipients)
|
|
241
|
+
recipients = [recipients] unless recipients.kind_of? Array
|
|
242
|
+
items = recipients.collect { |recipient|
|
|
243
|
+
item = IqQueryMUCAdminItem.new
|
|
244
|
+
item.nick = recipient
|
|
245
|
+
item.role = :moderator
|
|
246
|
+
item
|
|
247
|
+
}
|
|
248
|
+
send_affiliations(items)
|
|
249
|
+
end
|
|
250
|
+
|
|
251
|
+
##
|
|
252
|
+
# Demote one or more users in the room to participant.
|
|
253
|
+
#
|
|
254
|
+
# Will wait for response, possibly raising ServerError
|
|
255
|
+
#
|
|
256
|
+
# Sample usage:
|
|
257
|
+
# my_muc.demote 'pistol'
|
|
258
|
+
#
|
|
259
|
+
# recipients:: [Array] of, or single [String]: Nicks
|
|
260
|
+
def demote(recipients)
|
|
261
|
+
recipients = [recipients] unless recipients.kind_of? Array
|
|
262
|
+
items = recipients.collect { |recipient|
|
|
263
|
+
item = IqQueryMUCAdminItem.new
|
|
264
|
+
item.nick = recipient
|
|
265
|
+
item.role = :participant
|
|
266
|
+
item
|
|
267
|
+
}
|
|
268
|
+
send_affiliations(items)
|
|
269
|
+
end
|
|
270
|
+
|
|
271
|
+
##
|
|
272
|
+
# Block to be invoked when a message *from* the room arrives
|
|
273
|
+
#
|
|
274
|
+
# Example:
|
|
275
|
+
# Astro has joined this session
|
|
276
|
+
# block:: Takes two arguments: time, text
|
|
277
|
+
def on_room_message(&block)
|
|
278
|
+
@room_message_block = block
|
|
279
|
+
end
|
|
280
|
+
|
|
281
|
+
##
|
|
282
|
+
# Block to be invoked when a message from a participant to
|
|
283
|
+
# the whole room arrives
|
|
284
|
+
# block:: Takes three arguments: time, sender nickname, text
|
|
285
|
+
def on_message(&block)
|
|
286
|
+
@message_block = block
|
|
287
|
+
end
|
|
288
|
+
|
|
289
|
+
##
|
|
290
|
+
# Block to be invoked when a private message from a participant
|
|
291
|
+
# to you arrives.
|
|
292
|
+
# block:: Takes three arguments: time, sender nickname, text
|
|
293
|
+
def on_private_message(&block)
|
|
294
|
+
@private_message_block = block
|
|
295
|
+
end
|
|
296
|
+
|
|
297
|
+
##
|
|
298
|
+
# Block to be invoked when somebody sets a new room subject
|
|
299
|
+
# block:: Takes three arguments: time, nickname, new subject
|
|
300
|
+
def on_subject(&block)
|
|
301
|
+
@subject_block = block
|
|
302
|
+
end
|
|
303
|
+
|
|
304
|
+
##
|
|
305
|
+
# Block to be called when somebody enters the room
|
|
306
|
+
#
|
|
307
|
+
# If there is a non-nil time passed to the block, chances
|
|
308
|
+
# are great that this is initial presence from a participant
|
|
309
|
+
# after you have joined the room.
|
|
310
|
+
# block:: Takes two arguments: time, nickname
|
|
311
|
+
def on_join(&block)
|
|
312
|
+
@join_block = block
|
|
313
|
+
end
|
|
314
|
+
|
|
315
|
+
##
|
|
316
|
+
# Block to be called when somebody leaves the room
|
|
317
|
+
# block:: Takes two arguments: time, nickname
|
|
318
|
+
def on_leave(&block)
|
|
319
|
+
@leave_block = block
|
|
320
|
+
end
|
|
321
|
+
|
|
322
|
+
##
|
|
323
|
+
# Block to be called when *you* leave the room
|
|
324
|
+
#
|
|
325
|
+
# Deactivation occurs *afterwards*.
|
|
326
|
+
# block:: Takes one argument: time
|
|
327
|
+
def on_self_leave(&block)
|
|
328
|
+
@self_leave_block = block
|
|
329
|
+
end
|
|
330
|
+
end
|
|
331
|
+
end
|
|
332
|
+
end
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# =XMPP4R - XMPP Library for Ruby
|
|
2
|
+
# License:: Ruby's license (see the LICENSE file) or GNU GPL, at your option.
|
|
3
|
+
# Website::http://home.gna.org/xmpp4r/
|
|
4
|
+
|
|
5
|
+
require 'xmpp4r/x'
|
|
6
|
+
|
|
7
|
+
module Jabber
|
|
8
|
+
module MUC
|
|
9
|
+
class IqQueryMUCAdmin < IqQuery
|
|
10
|
+
name_xmlns 'query', 'http://jabber.org/protocol/muc#admin'
|
|
11
|
+
|
|
12
|
+
include XParent
|
|
13
|
+
|
|
14
|
+
def items
|
|
15
|
+
r = []
|
|
16
|
+
each_element('item') { |item|
|
|
17
|
+
r << item if item.kind_of? IqQueryMUCAdminItem
|
|
18
|
+
}
|
|
19
|
+
r
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# =XMPP4R - XMPP Library for Ruby
|
|
2
|
+
# License:: Ruby's license (see the LICENSE file) or GNU GPL, at your option.
|
|
3
|
+
# Website::http://home.gna.org/xmpp4r/
|
|
4
|
+
|
|
5
|
+
require 'xmpp4r/muc/item'
|
|
6
|
+
|
|
7
|
+
module Jabber
|
|
8
|
+
module MUC
|
|
9
|
+
class IqQueryMUCAdminItem < MUC::UserItem
|
|
10
|
+
name_xmlns 'item', 'http://jabber.org/protocol/muc#admin'
|
|
11
|
+
|
|
12
|
+
def initialize(affiliation=nil, role=nil, jid=nil)
|
|
13
|
+
super()
|
|
14
|
+
set_affiliation(affiliation)
|
|
15
|
+
set_role(role)
|
|
16
|
+
set_jid(jid)
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# =XMPP4R - XMPP Library for Ruby
|
|
2
|
+
# License:: Ruby's license (see the LICENSE file) or GNU GPL, at your option.
|
|
3
|
+
# Website::http://home.gna.org/xmpp4r/
|
|
4
|
+
|
|
5
|
+
require 'xmpp4r/x'
|
|
6
|
+
|
|
7
|
+
module Jabber
|
|
8
|
+
module MUC
|
|
9
|
+
class IqQueryMUCOwner < IqQuery
|
|
10
|
+
name_xmlns 'query', 'http://jabber.org/protocol/muc#owner'
|
|
11
|
+
|
|
12
|
+
include XParent
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
# =XMPP4R - XMPP Library for Ruby
|
|
2
|
+
# License:: Ruby's license (see the LICENSE file) or GNU GPL, at your option.
|
|
3
|
+
# Website::http://home.gna.org/xmpp4r/
|
|
4
|
+
|
|
5
|
+
module Jabber
|
|
6
|
+
module MUC
|
|
7
|
+
##
|
|
8
|
+
# Don't use this. It is the base class (unifying shared
|
|
9
|
+
# attributes) of XMUCUserItem and IqQueryMUCAdminItem
|
|
10
|
+
class UserItem < XMPPElement
|
|
11
|
+
def affiliation
|
|
12
|
+
case attributes['affiliation']
|
|
13
|
+
when 'admin' then :admin
|
|
14
|
+
when 'member' then :member
|
|
15
|
+
when 'none' then :none
|
|
16
|
+
when 'outcast' then :outcast
|
|
17
|
+
when 'owner' then :owner
|
|
18
|
+
else nil
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def affiliation=(v)
|
|
23
|
+
case v
|
|
24
|
+
when :admin then attributes['affiliation'] = 'admin'
|
|
25
|
+
when :member then attributes['affiliation'] = 'member'
|
|
26
|
+
when :none then attributes['affiliation'] = 'none'
|
|
27
|
+
when :outcast then attributes['affiliation'] = 'outcast'
|
|
28
|
+
when :owner then attributes['affiliation'] = 'owner'
|
|
29
|
+
else attributes['affiliation'] = nil
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def set_affiliation(v)
|
|
34
|
+
self.affiliation = v
|
|
35
|
+
self
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def jid
|
|
39
|
+
attributes['jid'].nil? ? nil : JID.new(attributes['jid'])
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
def jid=(j)
|
|
43
|
+
attributes['jid'] = j.nil? ? nil : j.to_s
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
def set_jid(j)
|
|
47
|
+
self.jid = j
|
|
48
|
+
self
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
def nick
|
|
52
|
+
attributes['nick']
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
def nick=(n)
|
|
56
|
+
attributes['nick'] = n
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
def set_nick(n)
|
|
60
|
+
self.nick = n
|
|
61
|
+
self
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
def role
|
|
65
|
+
case attributes['role']
|
|
66
|
+
when 'moderator' then :moderator
|
|
67
|
+
when 'none' then :none
|
|
68
|
+
when 'participant' then :participant
|
|
69
|
+
when 'visitor' then :visitor
|
|
70
|
+
else nil
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
def role=(r)
|
|
75
|
+
case r
|
|
76
|
+
when :moderator then attributes['role'] = 'moderator'
|
|
77
|
+
when :none then attributes['role'] = 'none'
|
|
78
|
+
when :participant then attributes['role'] = 'participant'
|
|
79
|
+
when :visitor then attributes['role'] = 'visitor'
|
|
80
|
+
else attributes['role'] = nil
|
|
81
|
+
end
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
def set_role(r)
|
|
85
|
+
self.role = r
|
|
86
|
+
self
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
def reason
|
|
90
|
+
text = nil
|
|
91
|
+
each_element('reason') { |xe| text = xe.text }
|
|
92
|
+
text
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
def reason=(s)
|
|
96
|
+
delete_elements('reasion')
|
|
97
|
+
add_element('reason').text = s
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
def set_reason(s)
|
|
101
|
+
self.reason = s
|
|
102
|
+
self
|
|
103
|
+
end
|
|
104
|
+
|
|
105
|
+
def continue
|
|
106
|
+
c = nil
|
|
107
|
+
each_element('continue') { |xe| c = xe }
|
|
108
|
+
c.nil?
|
|
109
|
+
end
|
|
110
|
+
|
|
111
|
+
def continue=(c)
|
|
112
|
+
delete_elements('continue')
|
|
113
|
+
add_element('continue') if c
|
|
114
|
+
end
|
|
115
|
+
|
|
116
|
+
def set_continue(c)
|
|
117
|
+
self.continue = c
|
|
118
|
+
self
|
|
119
|
+
end
|
|
120
|
+
|
|
121
|
+
def actors
|
|
122
|
+
a = []
|
|
123
|
+
each_element('actor') { |xe|
|
|
124
|
+
a.push(JID.new(xe.attributes['jid']))
|
|
125
|
+
}
|
|
126
|
+
a
|
|
127
|
+
end
|
|
128
|
+
|
|
129
|
+
def actors=(a)
|
|
130
|
+
delete_elements('actor')
|
|
131
|
+
a.each { |jid|
|
|
132
|
+
e = add_element('actor')
|
|
133
|
+
e.attributes['jid'] = jid.to_s
|
|
134
|
+
}
|
|
135
|
+
end
|
|
136
|
+
|
|
137
|
+
def set_actors(a)
|
|
138
|
+
self.actors = a
|
|
139
|
+
self
|
|
140
|
+
end
|
|
141
|
+
end
|
|
142
|
+
end
|
|
143
|
+
end
|