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.
Files changed (290) hide show
  1. data/Authors.txt +4 -0
  2. data/Changelog.txt +11 -0
  3. data/Copyright.txt +16 -0
  4. data/Rakefile +16 -25
  5. data/Readme.markdown +1 -3
  6. data/bin/cerberus +5 -0
  7. data/lib/cerberus/builder/bjam.rb +1 -3
  8. data/lib/cerberus/builder/maven2.rb +0 -1
  9. data/lib/cerberus/builder/rake.rb +1 -1
  10. data/lib/cerberus/builder/rspec.rb +0 -1
  11. data/lib/cerberus/builder/ruby_base.rb +0 -1
  12. data/lib/cerberus/component_lazy_loader.rb +6 -2
  13. data/lib/cerberus/config.example.yml +1 -0
  14. data/lib/cerberus/constants.rb +2 -2
  15. data/lib/cerberus/manager.rb +7 -1
  16. data/lib/cerberus/publisher/mail.rb +4 -4
  17. data/lib/cerberus/publisher/twitter.rb +0 -1
  18. data/lib/cerberus/scm/base.rb +19 -0
  19. data/lib/cerberus/scm/bzr.rb +62 -0
  20. data/lib/cerberus/scm/cvs.rb +2 -7
  21. data/lib/cerberus/scm/darcs.rb +2 -11
  22. data/lib/cerberus/scm/git.rb +6 -14
  23. data/lib/cerberus/scm/perforce.rb +4 -4
  24. data/lib/cerberus/scm/svn.rb +2 -7
  25. data/lib/cerberus/utils.rb +5 -0
  26. data/lib/vendor/irc/README +23 -0
  27. data/lib/vendor/irc/lib/IRC.rb +164 -0
  28. data/lib/vendor/irc/lib/IRCChannel.rb +33 -0
  29. data/lib/vendor/irc/lib/IRCConnection.rb +134 -0
  30. data/lib/vendor/irc/lib/IRCEvent.rb +91 -0
  31. data/lib/vendor/irc/lib/IRCUser.rb +23 -0
  32. data/lib/vendor/irc/lib/IRCUtil.rb +49 -0
  33. data/lib/vendor/irc/lib/eventmap.yml +247 -0
  34. data/lib/vendor/twitter/CHANGES +129 -0
  35. data/lib/vendor/twitter/MIT-LICENSE +20 -0
  36. data/lib/vendor/twitter/README +37 -0
  37. data/lib/vendor/twitter/TODO +7 -0
  38. data/lib/vendor/twitter/lib/twitter.rb +34 -0
  39. data/lib/vendor/twitter/lib/twitter/client.rb +24 -0
  40. data/lib/vendor/twitter/lib/twitter/client/account.rb +24 -0
  41. data/lib/vendor/twitter/lib/twitter/client/auth.rb +27 -0
  42. data/lib/vendor/twitter/lib/twitter/client/base.rb +93 -0
  43. data/lib/vendor/twitter/lib/twitter/client/blocks.rb +35 -0
  44. data/lib/vendor/twitter/lib/twitter/client/favorites.rb +53 -0
  45. data/lib/vendor/twitter/lib/twitter/client/friendship.rb +35 -0
  46. data/lib/vendor/twitter/lib/twitter/client/graph.rb +37 -0
  47. data/lib/vendor/twitter/lib/twitter/client/messaging.rb +79 -0
  48. data/lib/vendor/twitter/lib/twitter/client/profile.rb +29 -0
  49. data/lib/vendor/twitter/lib/twitter/client/search.rb +27 -0
  50. data/lib/vendor/twitter/lib/twitter/client/status.rb +51 -0
  51. data/lib/vendor/twitter/lib/twitter/client/timeline.rb +72 -0
  52. data/lib/vendor/twitter/lib/twitter/client/user.rb +65 -0
  53. data/lib/vendor/twitter/lib/twitter/config.rb +77 -0
  54. data/lib/vendor/twitter/lib/twitter/console.rb +31 -0
  55. data/lib/vendor/twitter/lib/twitter/core.rb +137 -0
  56. data/lib/vendor/twitter/lib/twitter/ext.rb +2 -0
  57. data/lib/vendor/twitter/lib/twitter/ext/stdlib.rb +52 -0
  58. data/lib/vendor/twitter/lib/twitter/extras.rb +39 -0
  59. data/lib/vendor/twitter/lib/twitter/meta.rb +56 -0
  60. data/lib/vendor/twitter/lib/twitter/model.rb +360 -0
  61. data/lib/vendor/twitter/lib/twitter/version.rb +19 -0
  62. data/lib/vendor/twitter/spec/twitter/client/account_spec.rb +28 -0
  63. data/lib/vendor/twitter/spec/twitter/client/auth_spec.rb +34 -0
  64. data/lib/vendor/twitter/spec/twitter/client/base_spec.rb +242 -0
  65. data/lib/vendor/twitter/spec/twitter/client/blocks_spec.rb +76 -0
  66. data/lib/vendor/twitter/spec/twitter/client/favorites_spec.rb +183 -0
  67. data/lib/vendor/twitter/spec/twitter/client/friendship_spec.rb +76 -0
  68. data/lib/vendor/twitter/spec/twitter/client/graph_spec.rb +67 -0
  69. data/lib/vendor/twitter/spec/twitter/client/messaging_spec.rb +135 -0
  70. data/lib/vendor/twitter/spec/twitter/client/profile_spec.rb +91 -0
  71. data/lib/vendor/twitter/spec/twitter/client/search_spec.rb +68 -0
  72. data/lib/vendor/twitter/spec/twitter/client/status_spec.rb +119 -0
  73. data/lib/vendor/twitter/spec/twitter/client/timeline_spec.rb +79 -0
  74. data/lib/vendor/twitter/spec/twitter/client/user_spec.rb +203 -0
  75. data/lib/vendor/twitter/spec/twitter/client_spec.rb +2 -0
  76. data/lib/vendor/twitter/spec/twitter/config_spec.rb +86 -0
  77. data/lib/vendor/twitter/spec/twitter/console_spec.rb +15 -0
  78. data/lib/vendor/twitter/spec/twitter/core_spec.rb +127 -0
  79. data/lib/vendor/twitter/spec/twitter/ext/stdlib_spec.rb +59 -0
  80. data/lib/vendor/twitter/spec/twitter/extras_spec.rb +46 -0
  81. data/lib/vendor/twitter/spec/twitter/meta_spec.rb +90 -0
  82. data/lib/vendor/twitter/spec/twitter/model_spec.rb +508 -0
  83. data/lib/vendor/twitter/spec/twitter/version_spec.rb +19 -0
  84. data/lib/vendor/xmpp4r/CHANGELOG +83 -0
  85. data/lib/vendor/xmpp4r/COPYING +340 -0
  86. data/lib/vendor/xmpp4r/LICENSE +59 -0
  87. data/lib/vendor/xmpp4r/README.rdoc +110 -0
  88. data/lib/vendor/xmpp4r/README_ruby19.txt +43 -0
  89. data/lib/vendor/xmpp4r/Rakefile +262 -0
  90. data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/advanced/adventure/README +56 -0
  91. data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/advanced/adventure/adventure.rb +23 -0
  92. data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/advanced/adventure/adventuremuc.rb +136 -0
  93. data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/advanced/adventure/cube.xml +15 -0
  94. data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/advanced/adventure/tower.xml +69 -0
  95. data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/advanced/adventure/world.rb +424 -0
  96. data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/advanced/fileserve.conf +11 -0
  97. data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/advanced/fileserve.rb +346 -0
  98. data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/advanced/getonline.rb +56 -0
  99. data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/advanced/gtkmucclient.rb +315 -0
  100. data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/advanced/migrate.rb +88 -0
  101. data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/advanced/minimuc.rb +266 -0
  102. data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/advanced/pep-aggregator/index.xsl +235 -0
  103. data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/advanced/pep-aggregator/pep-aggregator.rb +147 -0
  104. data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/advanced/recvfile.rb +84 -0
  105. data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/advanced/rosterdiscovery.rb +129 -0
  106. data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/advanced/sendfile.conf +10 -0
  107. data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/advanced/sendfile.rb +72 -0
  108. data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/advanced/shellmgr/shellmgr.rb +51 -0
  109. data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/advanced/shellmgr/shellmgr_jabber.rb +43 -0
  110. data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/advanced/shellmgr/shellmgr_test.rb +10 -0
  111. data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/advanced/versionpoll.rb +90 -0
  112. data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/advanced/xmpping.rb +146 -0
  113. data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/advanced/xmppingrc.sample +14 -0
  114. data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/basic/change_password.rb +41 -0
  115. data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/basic/client.rb +70 -0
  116. data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/basic/component.rb +11 -0
  117. data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/basic/echo.rb +37 -0
  118. data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/basic/jabbersend.rb +41 -0
  119. data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/basic/mass_sender.rb +68 -0
  120. data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/basic/muc_owner_config.rb +12 -0
  121. data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/basic/mucinfo.rb +41 -0
  122. data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/basic/mucsimplebot.rb +82 -0
  123. data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/basic/register.rb +42 -0
  124. data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/basic/remove_registration.rb +18 -0
  125. data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/basic/roster.rb +44 -0
  126. data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/basic/rosterprint.rb +50 -0
  127. data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/basic/rosterrename.rb +34 -0
  128. data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/basic/rosterwatch.rb +171 -0
  129. data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/basic/send_vcard.rb +67 -0
  130. data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/basic/tune_client.rb +56 -0
  131. data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/basic/tune_server.rb +58 -0
  132. data/lib/vendor/xmpp4r/data/doc/xmpp4r/examples/basic/versionbot.rb +75 -0
  133. data/lib/vendor/xmpp4r/lib/xmpp4r.rb +116 -0
  134. data/lib/vendor/xmpp4r/lib/xmpp4r/base64.rb +32 -0
  135. data/lib/vendor/xmpp4r/lib/xmpp4r/bytestreams.rb +15 -0
  136. data/lib/vendor/xmpp4r/lib/xmpp4r/bytestreams/helper/filetransfer.rb +319 -0
  137. data/lib/vendor/xmpp4r/lib/xmpp4r/bytestreams/helper/ibb/base.rb +257 -0
  138. data/lib/vendor/xmpp4r/lib/xmpp4r/bytestreams/helper/ibb/initiator.rb +31 -0
  139. data/lib/vendor/xmpp4r/lib/xmpp4r/bytestreams/helper/ibb/target.rb +47 -0
  140. data/lib/vendor/xmpp4r/lib/xmpp4r/bytestreams/helper/socks5bytestreams/base.rb +152 -0
  141. data/lib/vendor/xmpp4r/lib/xmpp4r/bytestreams/helper/socks5bytestreams/initiator.rb +86 -0
  142. data/lib/vendor/xmpp4r/lib/xmpp4r/bytestreams/helper/socks5bytestreams/server.rb +198 -0
  143. data/lib/vendor/xmpp4r/lib/xmpp4r/bytestreams/helper/socks5bytestreams/socks5.rb +65 -0
  144. data/lib/vendor/xmpp4r/lib/xmpp4r/bytestreams/helper/socks5bytestreams/target.rb +73 -0
  145. data/lib/vendor/xmpp4r/lib/xmpp4r/bytestreams/helper/socks5bytestreams/target.rb.orig +62 -0
  146. data/lib/vendor/xmpp4r/lib/xmpp4r/bytestreams/iq/bytestreams.rb +170 -0
  147. data/lib/vendor/xmpp4r/lib/xmpp4r/bytestreams/iq/si.rb +206 -0
  148. data/lib/vendor/xmpp4r/lib/xmpp4r/callbacks.rb +124 -0
  149. data/lib/vendor/xmpp4r/lib/xmpp4r/caps.rb +1 -0
  150. data/lib/vendor/xmpp4r/lib/xmpp4r/caps/c.rb +53 -0
  151. data/lib/vendor/xmpp4r/lib/xmpp4r/caps/helper/generator.rb +160 -0
  152. data/lib/vendor/xmpp4r/lib/xmpp4r/caps/helper/helper.rb +87 -0
  153. data/lib/vendor/xmpp4r/lib/xmpp4r/client.rb +317 -0
  154. data/lib/vendor/xmpp4r/lib/xmpp4r/command/helper/responder.rb +53 -0
  155. data/lib/vendor/xmpp4r/lib/xmpp4r/command/iq/command.rb +154 -0
  156. data/lib/vendor/xmpp4r/lib/xmpp4r/component.rb +103 -0
  157. data/lib/vendor/xmpp4r/lib/xmpp4r/connection.rb +219 -0
  158. data/lib/vendor/xmpp4r/lib/xmpp4r/dataforms.rb +5 -0
  159. data/lib/vendor/xmpp4r/lib/xmpp4r/dataforms/x/data.rb +297 -0
  160. data/lib/vendor/xmpp4r/lib/xmpp4r/debuglog.rb +42 -0
  161. data/lib/vendor/xmpp4r/lib/xmpp4r/delay.rb +5 -0
  162. data/lib/vendor/xmpp4r/lib/xmpp4r/delay/x/delay.rb +99 -0
  163. data/lib/vendor/xmpp4r/lib/xmpp4r/discovery.rb +7 -0
  164. data/lib/vendor/xmpp4r/lib/xmpp4r/discovery/helper/responder.rb +165 -0
  165. data/lib/vendor/xmpp4r/lib/xmpp4r/discovery/iq/discoinfo.rb +211 -0
  166. data/lib/vendor/xmpp4r/lib/xmpp4r/discovery/iq/discoitems.rb +147 -0
  167. data/lib/vendor/xmpp4r/lib/xmpp4r/errors.rb +281 -0
  168. data/lib/vendor/xmpp4r/lib/xmpp4r/feature_negotiation.rb +5 -0
  169. data/lib/vendor/xmpp4r/lib/xmpp4r/feature_negotiation/iq/feature.rb +28 -0
  170. data/lib/vendor/xmpp4r/lib/xmpp4r/framework/base.rb +55 -0
  171. data/lib/vendor/xmpp4r/lib/xmpp4r/framework/bot.rb +148 -0
  172. data/lib/vendor/xmpp4r/lib/xmpp4r/httpbinding.rb +5 -0
  173. data/lib/vendor/xmpp4r/lib/xmpp4r/httpbinding/client.rb +285 -0
  174. data/lib/vendor/xmpp4r/lib/xmpp4r/idgenerator.rb +37 -0
  175. data/lib/vendor/xmpp4r/lib/xmpp4r/iq.rb +221 -0
  176. data/lib/vendor/xmpp4r/lib/xmpp4r/jid.rb +167 -0
  177. data/lib/vendor/xmpp4r/lib/xmpp4r/message.rb +148 -0
  178. data/lib/vendor/xmpp4r/lib/xmpp4r/muc.rb +14 -0
  179. data/lib/vendor/xmpp4r/lib/xmpp4r/muc/helper/mucbrowser.rb +92 -0
  180. data/lib/vendor/xmpp4r/lib/xmpp4r/muc/helper/mucclient.rb +462 -0
  181. data/lib/vendor/xmpp4r/lib/xmpp4r/muc/helper/simplemucclient.rb +332 -0
  182. data/lib/vendor/xmpp4r/lib/xmpp4r/muc/iq/mucadmin.rb +23 -0
  183. data/lib/vendor/xmpp4r/lib/xmpp4r/muc/iq/mucadminitem.rb +20 -0
  184. data/lib/vendor/xmpp4r/lib/xmpp4r/muc/iq/mucowner.rb +15 -0
  185. data/lib/vendor/xmpp4r/lib/xmpp4r/muc/item.rb +143 -0
  186. data/lib/vendor/xmpp4r/lib/xmpp4r/muc/x/muc.rb +70 -0
  187. data/lib/vendor/xmpp4r/lib/xmpp4r/muc/x/mucuserinvite.rb +60 -0
  188. data/lib/vendor/xmpp4r/lib/xmpp4r/muc/x/mucuseritem.rb +36 -0
  189. data/lib/vendor/xmpp4r/lib/xmpp4r/presence.rb +232 -0
  190. data/lib/vendor/xmpp4r/lib/xmpp4r/pubsub.rb +8 -0
  191. data/lib/vendor/xmpp4r/lib/xmpp4r/pubsub/children/configuration.rb +86 -0
  192. data/lib/vendor/xmpp4r/lib/xmpp4r/pubsub/children/event.rb +49 -0
  193. data/lib/vendor/xmpp4r/lib/xmpp4r/pubsub/children/item.rb +35 -0
  194. data/lib/vendor/xmpp4r/lib/xmpp4r/pubsub/children/items.rb +44 -0
  195. data/lib/vendor/xmpp4r/lib/xmpp4r/pubsub/children/node_config.rb +48 -0
  196. data/lib/vendor/xmpp4r/lib/xmpp4r/pubsub/children/publish.rb +24 -0
  197. data/lib/vendor/xmpp4r/lib/xmpp4r/pubsub/children/subscription.rb +62 -0
  198. data/lib/vendor/xmpp4r/lib/xmpp4r/pubsub/children/subscription_config.rb +67 -0
  199. data/lib/vendor/xmpp4r/lib/xmpp4r/pubsub/children/unsubscribe.rb +48 -0
  200. data/lib/vendor/xmpp4r/lib/xmpp4r/pubsub/helper/nodebrowser.rb +130 -0
  201. data/lib/vendor/xmpp4r/lib/xmpp4r/pubsub/helper/nodehelper.rb +156 -0
  202. data/lib/vendor/xmpp4r/lib/xmpp4r/pubsub/helper/servicehelper.rb +417 -0
  203. data/lib/vendor/xmpp4r/lib/xmpp4r/pubsub/iq/pubsub.rb +19 -0
  204. data/lib/vendor/xmpp4r/lib/xmpp4r/query.rb +15 -0
  205. data/lib/vendor/xmpp4r/lib/xmpp4r/rexmladdons.rb +151 -0
  206. data/lib/vendor/xmpp4r/lib/xmpp4r/roster.rb +7 -0
  207. data/lib/vendor/xmpp4r/lib/xmpp4r/roster/helper/roster.rb +519 -0
  208. data/lib/vendor/xmpp4r/lib/xmpp4r/roster/iq/roster.rb +215 -0
  209. data/lib/vendor/xmpp4r/lib/xmpp4r/roster/x/roster.rb +138 -0
  210. data/lib/vendor/xmpp4r/lib/xmpp4r/rpc.rb +2 -0
  211. data/lib/vendor/xmpp4r/lib/xmpp4r/rpc/helper/client.rb +123 -0
  212. data/lib/vendor/xmpp4r/lib/xmpp4r/rpc/helper/server.rb +74 -0
  213. data/lib/vendor/xmpp4r/lib/xmpp4r/rpc/helper/xmlrpcaddons.rb +67 -0
  214. data/lib/vendor/xmpp4r/lib/xmpp4r/rpc/iq/rpc.rb +23 -0
  215. data/lib/vendor/xmpp4r/lib/xmpp4r/sasl.rb +237 -0
  216. data/lib/vendor/xmpp4r/lib/xmpp4r/semaphore.rb +38 -0
  217. data/lib/vendor/xmpp4r/lib/xmpp4r/stream.rb +497 -0
  218. data/lib/vendor/xmpp4r/lib/xmpp4r/streamparser.rb +77 -0
  219. data/lib/vendor/xmpp4r/lib/xmpp4r/tune.rb +2 -0
  220. data/lib/vendor/xmpp4r/lib/xmpp4r/tune/helper/helper.rb +58 -0
  221. data/lib/vendor/xmpp4r/lib/xmpp4r/tune/tune.rb +113 -0
  222. data/lib/vendor/xmpp4r/lib/xmpp4r/vcard.rb +6 -0
  223. data/lib/vendor/xmpp4r/lib/xmpp4r/vcard/helper/vcard.rb +84 -0
  224. data/lib/vendor/xmpp4r/lib/xmpp4r/vcard/iq/vcard.rb +109 -0
  225. data/lib/vendor/xmpp4r/lib/xmpp4r/version.rb +7 -0
  226. data/lib/vendor/xmpp4r/lib/xmpp4r/version/helper/responder.rb +72 -0
  227. data/lib/vendor/xmpp4r/lib/xmpp4r/version/helper/simpleresponder.rb +44 -0
  228. data/lib/vendor/xmpp4r/lib/xmpp4r/version/iq/version.rb +105 -0
  229. data/lib/vendor/xmpp4r/lib/xmpp4r/x.rb +37 -0
  230. data/lib/vendor/xmpp4r/lib/xmpp4r/xhtml.rb +1 -0
  231. data/lib/vendor/xmpp4r/lib/xmpp4r/xhtml/html.rb +115 -0
  232. data/lib/vendor/xmpp4r/lib/xmpp4r/xmpp4r.rb +18 -0
  233. data/lib/vendor/xmpp4r/lib/xmpp4r/xmppelement.rb +168 -0
  234. data/lib/vendor/xmpp4r/lib/xmpp4r/xmppstanza.rb +162 -0
  235. data/lib/vendor/xmpp4r/setup.rb +1586 -0
  236. data/lib/vendor/xmpp4r/test/bytestreams/tc_ibb.rb +186 -0
  237. data/lib/vendor/xmpp4r/test/bytestreams/tc_socks5bytestreams.rb +113 -0
  238. data/lib/vendor/xmpp4r/test/caps/tc_helper.rb +156 -0
  239. data/lib/vendor/xmpp4r/test/dataforms/tc_data.rb +81 -0
  240. data/lib/vendor/xmpp4r/test/delay/tc_xdelay.rb +51 -0
  241. data/lib/vendor/xmpp4r/test/discovery/tc_responder.rb +91 -0
  242. data/lib/vendor/xmpp4r/test/lib/assert_equal_xml.rb +14 -0
  243. data/lib/vendor/xmpp4r/test/lib/clienttester.rb +120 -0
  244. data/lib/vendor/xmpp4r/test/muc/tc_muc_mucclient.rb +830 -0
  245. data/lib/vendor/xmpp4r/test/muc/tc_muc_simplemucclient.rb +114 -0
  246. data/lib/vendor/xmpp4r/test/muc/tc_mucowner.rb +50 -0
  247. data/lib/vendor/xmpp4r/test/pubsub/tc_helper.rb +662 -0
  248. data/lib/vendor/xmpp4r/test/pubsub/tc_nodeconfig.rb +54 -0
  249. data/lib/vendor/xmpp4r/test/pubsub/tc_subscriptionconfig.rb +41 -0
  250. data/lib/vendor/xmpp4r/test/roster/tc_helper.rb +514 -0
  251. data/lib/vendor/xmpp4r/test/roster/tc_iqqueryroster.rb +173 -0
  252. data/lib/vendor/xmpp4r/test/roster/tc_xroster.rb +73 -0
  253. data/lib/vendor/xmpp4r/test/rpc/tc_helper.rb +96 -0
  254. data/lib/vendor/xmpp4r/test/tc_callbacks.rb +129 -0
  255. data/lib/vendor/xmpp4r/test/tc_class_names.rb +146 -0
  256. data/lib/vendor/xmpp4r/test/tc_client.rb +30 -0
  257. data/lib/vendor/xmpp4r/test/tc_errors.rb +146 -0
  258. data/lib/vendor/xmpp4r/test/tc_idgenerator.rb +30 -0
  259. data/lib/vendor/xmpp4r/test/tc_iq.rb +113 -0
  260. data/lib/vendor/xmpp4r/test/tc_iqquery.rb +31 -0
  261. data/lib/vendor/xmpp4r/test/tc_jid.rb +204 -0
  262. data/lib/vendor/xmpp4r/test/tc_message.rb +116 -0
  263. data/lib/vendor/xmpp4r/test/tc_presence.rb +150 -0
  264. data/lib/vendor/xmpp4r/test/tc_rexml.rb +139 -0
  265. data/lib/vendor/xmpp4r/test/tc_stream.rb +229 -0
  266. data/lib/vendor/xmpp4r/test/tc_streamComponent.rb +95 -0
  267. data/lib/vendor/xmpp4r/test/tc_streamError.rb +131 -0
  268. data/lib/vendor/xmpp4r/test/tc_streamSend.rb +59 -0
  269. data/lib/vendor/xmpp4r/test/tc_streamparser.rb +112 -0
  270. data/lib/vendor/xmpp4r/test/tc_xmppstanza.rb +135 -0
  271. data/lib/vendor/xmpp4r/test/ts_xmpp4r.rb +53 -0
  272. data/lib/vendor/xmpp4r/test/tune/tc_helper_recv.rb +84 -0
  273. data/lib/vendor/xmpp4r/test/tune/tc_helper_send.rb +74 -0
  274. data/lib/vendor/xmpp4r/test/tune/tc_tune.rb +79 -0
  275. data/lib/vendor/xmpp4r/test/vcard/tc_helper.rb +49 -0
  276. data/lib/vendor/xmpp4r/test/vcard/tc_iqvcard.rb +62 -0
  277. data/lib/vendor/xmpp4r/test/version/tc_helper.rb +60 -0
  278. data/lib/vendor/xmpp4r/test/version/tc_iqqueryversion.rb +97 -0
  279. data/lib/vendor/xmpp4r/test/xhtml/tc_html.rb +41 -0
  280. data/lib/vendor/xmpp4r/tools/gen_requires.bash +31 -0
  281. data/lib/vendor/xmpp4r/tools/xmpp4r-gemspec-test.rb +11 -0
  282. data/lib/vendor/xmpp4r/xmpp4r.gemspec +291 -0
  283. data/test/jabber_publisher_test.rb +1 -1
  284. data/test/mail_publisher_test.rb +2 -2
  285. data/test/mock/twitter.rb +0 -1
  286. data/test/rspec_builder_test.rb +39 -2
  287. data/test/rss_publisher_test.rb +1 -1
  288. data/test/twitter_publisher_test.rb +1 -1
  289. metadata +268 -53
  290. data/lib/cerberus/publisher/gmailer.rb +0 -17
@@ -0,0 +1,7 @@
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/discovery/iq/discoinfo'
6
+ require 'xmpp4r/discovery/iq/discoitems'
7
+ require 'xmpp4r/discovery/helper/responder'
@@ -0,0 +1,165 @@
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/iq'
6
+ require 'xmpp4r/discovery/iq/discoinfo'
7
+ require 'xmpp4r/discovery/iq/discoitems'
8
+ require 'xmpp4r/caps/helper/generator'
9
+
10
+ module Jabber
11
+ module Discovery
12
+ ##
13
+ # Responds to Service Discovery queries on a given node
14
+ #
15
+ # Modify returned elements by these attributes:
16
+ # * Responder#identities
17
+ # * Responder#features (Responder#add_features is a short-cut accepting an Array of Strings, too)
18
+ # * Responder#forms
19
+ # * Responder#items
20
+ class Responder
21
+ ##
22
+ # Service Discovery node this Responder is responsible for
23
+ # (will not answer queries for other nodes)
24
+ attr_reader :node
25
+
26
+ ##
27
+ # Identities returned on Discovery Info query
28
+ #
29
+ # Array of [Discovery::Identity]
30
+ attr_accessor :identities
31
+ ##
32
+ # Features returned on Discovery Info query,
33
+ #
34
+ # Array of [Discovery::Feature]
35
+ attr_accessor :features
36
+ ##
37
+ # Forms returned on Discovery Info query
38
+ # (such as Software Information)
39
+ #
40
+ # Array of [Dataforms::XData]
41
+ attr_accessor :forms
42
+
43
+ ##
44
+ # Children returned on Discovery Item query
45
+ #
46
+ # May contain other Discovery::Responder instances
47
+ # which will generate an item dynamically from their
48
+ # first identity
49
+ #
50
+ # Array of [Discovery::Item] or [Discovery::Responder] (mixed)
51
+ attr_accessor :items
52
+
53
+ ##
54
+ # Set the JID this helper feels responsible for
55
+ # (default: nil, responsible for any JID)
56
+ attr_accessor :my_jid
57
+
58
+ CALLBACK_PRIORITY = 180
59
+
60
+ ##
61
+ # Initialize responder for a specific node
62
+ # stream:: [Jabber::Stream]
63
+ # node:: [nil] or [String]
64
+ def initialize(stream, node=nil, identities=[], features=[], items=[])
65
+ @stream = stream
66
+ @my_jid = nil
67
+ @node = node
68
+ @identities = identities
69
+ @features = []
70
+ add_features(features)
71
+ @forms = []
72
+ @items = items
73
+
74
+ @stream.add_iq_callback(CALLBACK_PRIORITY, self) do |iq|
75
+ my_nodes = [@node, "#{@node}##{generate_ver}"]
76
+
77
+ if iq.type == :get and
78
+ iq.query.kind_of? IqQueryDiscoInfo and
79
+ my_nodes.include?(iq.query.node)
80
+
81
+ answer = iq.answer(false)
82
+ answer.type = :result
83
+ query = answer.add(IqQueryDiscoInfo.new)
84
+ query.node = iq.query.node
85
+ (@identities + @features + @forms).each do |element|
86
+ query.add(element)
87
+ end
88
+ @stream.send(answer)
89
+
90
+ true # handled
91
+
92
+ elsif iq.type == :get and
93
+ iq.query.kind_of? IqQueryDiscoItems and
94
+ my_nodes.include?(iq.query.node)
95
+
96
+ answer = iq.answer(false)
97
+ answer.type = :result
98
+ query = answer.add(IqQueryDiscoItems.new)
99
+ query.node = iq.query.node
100
+ @items.each do |item|
101
+ if item.kind_of? Responder
102
+ query.add(item.generate_item)
103
+ else
104
+ query.add(item)
105
+ end
106
+ end
107
+ @stream.send(answer)
108
+
109
+ true # handled
110
+
111
+ else
112
+ false # not handled
113
+ end
114
+ end
115
+ end
116
+
117
+ ##
118
+ # Add a feature
119
+ # feature:: [Jabber::Discovery::Feature] or [String]
120
+ def add_feature(feature)
121
+ if feature.kind_of? Feature
122
+ @features << feature
123
+ else
124
+ @features << Feature.new(feature.to_s)
125
+ end
126
+ end
127
+
128
+ ##
129
+ # Add a series of features
130
+ # features:: Array of [Jabber::Discovery::Feature] or [String]
131
+ def add_features(features)
132
+ features.each { |feature|
133
+ add_feature(feature)
134
+ }
135
+ end
136
+
137
+ ##
138
+ # Generate a XEP-0115: Entity Capabilities <c/> element
139
+ # for inclusion in Presence stanzas. This enables efficient
140
+ # caching of Service Discovery information.
141
+ def generate_caps
142
+ Caps::C.new(@node, generate_ver)
143
+ end
144
+
145
+ ##
146
+ # Generate an item for inclusion in items discovery in other
147
+ # responders
148
+ # return:: [Discovery::Item] or nil
149
+ def generate_item
150
+ i = @identities.first
151
+ if i
152
+ Item.new(@my_jid || @stream.jid, i.iname, @node)
153
+ else
154
+ nil
155
+ end
156
+ end
157
+
158
+ private
159
+
160
+ def generate_ver
161
+ Caps::generate_ver(@identities, @features, @forms)
162
+ end
163
+ end
164
+ end
165
+ end
@@ -0,0 +1,211 @@
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/query'
6
+
7
+ module Jabber
8
+ module Discovery
9
+ NS_DISCO_INFO = 'http://jabber.org/protocol/disco#info'
10
+
11
+ ##
12
+ # Class for handling Service Discovery queries,
13
+ # info
14
+ # (JEP 0030)
15
+ #
16
+ # This <query/> may contain multiple Identity and Feature
17
+ # elements, describing the type and the supported namespaces of
18
+ # the service.
19
+ class IqQueryDiscoInfo < IqQuery
20
+ name_xmlns 'query', NS_DISCO_INFO
21
+
22
+ ##
23
+ # Get the queried Service Discovery node or nil
24
+ #
25
+ # See IqQueryDiscoItems#node for a
26
+ # small explanation of this.
27
+ def node
28
+ attributes['node']
29
+ end
30
+
31
+ ##
32
+ # Get the queried Service Discovery node or nil
33
+ # val:: [String]
34
+ def node=(val)
35
+ attributes['node'] = val
36
+ end
37
+
38
+ ##
39
+ # Get the queried Service Discovery node or nil
40
+ # (chaining-friendly)
41
+ # val:: [String]
42
+ def set_node(val)
43
+ self.node = val
44
+ self
45
+ end
46
+
47
+ ##
48
+ # Get the first identity child
49
+ # result:: [Identity]
50
+ def identity
51
+ first_element('identity')
52
+ end
53
+
54
+ ##
55
+ # Get list of identities
56
+ # result:: [Array] of [Identity]
57
+ def identities
58
+ get_elements('identity')
59
+ end
60
+
61
+ ##
62
+ # Get list of features
63
+ # result:: [Array] of [String]
64
+ def features
65
+ res = []
66
+ each_element('feature') { |feature|
67
+ res.push(feature.var)
68
+ }
69
+ res
70
+ end
71
+ end
72
+
73
+
74
+ ##
75
+ # Service Discovery identity to add() to IqQueryDiscoInfo
76
+ #
77
+ # Please note that XEP 0030 requires both category and type to occur,
78
+ # for a reference see: http://www.xmpp.org/registrar/disco-categories.html
79
+ class Identity < XMPPElement
80
+ name_xmlns 'identity', NS_DISCO_INFO
81
+
82
+ ##
83
+ # Initialize a new Identity
84
+ # category:: [String] Initial category or nil
85
+ # iname:: [String] Initial identity name or nil
86
+ # type:: [String] Initial type or nil
87
+ def initialize(category=nil, iname=nil, type=nil)
88
+ super()
89
+ set_category(category)
90
+ set_iname(iname)
91
+ set_type(type)
92
+ end
93
+
94
+ ##
95
+ # Get the identity's category or nil
96
+ # result:: [String]
97
+ def category
98
+ attributes['category']
99
+ end
100
+
101
+ ##
102
+ # Set the identity's category
103
+ #
104
+ # Service Discovery categories should be somewhat
105
+ # standardized by some registry, so clients may
106
+ # represent specific categories by specific icons...
107
+ # (see http://www.jabber.org/registrar/disco-categories.html)
108
+ # val:: [String]
109
+ def category=(val)
110
+ attributes['category'] = val
111
+ end
112
+
113
+ ##
114
+ # Set the identity's category (chaining-friendly)
115
+ # val:: [String]
116
+ def set_category(val)
117
+ self.category = val
118
+ self
119
+ end
120
+
121
+ ##
122
+ # Get the identity's name or nil
123
+ #
124
+ # This has been renamed from <name/> to "iname" here
125
+ # to keep REXML::Element#name accessible
126
+ # result:: [String]
127
+ def iname
128
+ attributes['name']
129
+ end
130
+
131
+ ##
132
+ # Set the identity's name
133
+ # val:: [String]
134
+ def iname=(val)
135
+ attributes['name'] = val
136
+ end
137
+
138
+ ##
139
+ # Set the identity's name (chaining-friendly)
140
+ # val:: [String]
141
+ def set_iname(val)
142
+ self.iname = val
143
+ self
144
+ end
145
+
146
+ ##
147
+ # Get the identity's type or nil
148
+ # result:: [String]
149
+ def type
150
+ attributes['type']
151
+ end
152
+
153
+ ##
154
+ # Set the identity's type
155
+ # (see http://www.jabber.org/registrar/disco-categories.html)
156
+ # val:: [String]
157
+ def type=(val)
158
+ attributes['type'] = val
159
+ end
160
+
161
+ ##
162
+ # Set the identity's type (chaining-friendly)
163
+ # val:: [String]
164
+ def set_type(val)
165
+ self.type = val
166
+ self
167
+ end
168
+ end
169
+
170
+ ##
171
+ # Service Discovery feature to add() to IqQueryDiscoInfo
172
+ #
173
+ # Please note that JEP 0030 requires var to be set,
174
+ # for a reference see: http://www.xmpp.org/registrar/disco-features.html
175
+ class Feature < XMPPElement
176
+ name_xmlns 'feature', NS_DISCO_INFO
177
+
178
+ ##
179
+ # Create a new <feature/> element
180
+ # var:: [String] New var
181
+ def initialize(var=nil)
182
+ super()
183
+ set_var(var)
184
+ end
185
+
186
+ ##
187
+ # Get the feature's var or nil
188
+ # result:: [String]
189
+ def var
190
+ attributes['var']
191
+ end
192
+
193
+ ##
194
+ # Set the feature's var
195
+ #
196
+ # This is a namespace the identity supports.
197
+ # val:: [String]
198
+ def var=(val)
199
+ attributes['var'] = val
200
+ end
201
+
202
+ ##
203
+ # Set the feature's var (chaining-friendly)
204
+ # val:: [String]
205
+ def set_var(val)
206
+ self.var = val
207
+ self
208
+ end
209
+ end
210
+ end
211
+ end
@@ -0,0 +1,147 @@
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/query'
6
+
7
+ module Jabber
8
+ module Discovery
9
+ NS_DISCO_ITEMS = 'http://jabber.org/protocol/disco#items'
10
+
11
+ ##
12
+ # Class for handling Service Discovery queries,
13
+ # items
14
+ # (JEP 0030)
15
+ #
16
+ # This <query/> may contain multiple Item elements,
17
+ # describing multiple services to be browsed by Jabber clients.
18
+ # These may then get further information about these items by
19
+ # querying IqQueryDiscoInfo and further sub-items by querying
20
+ # IqQueryDiscoItems.
21
+ class IqQueryDiscoItems < IqQuery
22
+ name_xmlns 'query', NS_DISCO_ITEMS
23
+
24
+ ##
25
+ # Get the queried Service Discovery node or nil
26
+ #
27
+ # A Service Discovery node is _not_ a JID node,
28
+ # this may be a bit confusing. It's just to make
29
+ # Service Discovery browsing a bit more structured.
30
+ def node
31
+ attributes['node']
32
+ end
33
+
34
+ ##
35
+ # Get the queried Service Discovery node or nil
36
+ def node=(val)
37
+ attributes['node'] = val
38
+ end
39
+
40
+ ##
41
+ # Get the queried Service Discovery node or nil
42
+ # (chaining-friendly)
43
+ def set_node(val)
44
+ self.node = val
45
+ self
46
+ end
47
+
48
+ ##
49
+ # Get all item children
50
+ # result:: Array of [Discovery::Item]
51
+ def items
52
+ get_elements('item')
53
+ end
54
+ end
55
+
56
+
57
+ ##
58
+ # Service Discovery item to add() to IqQueryDiscoItems
59
+ #
60
+ # Please note that JEP 0030 requires the jid to occur
61
+ class Item < XMPPElement
62
+ name_xmlns 'item', NS_DISCO_ITEMS
63
+
64
+ ##
65
+ # Initialize a new Service Discovery <item/>
66
+ # to be added to IqQueryDiscoItems
67
+ # jid:: [JID]
68
+ # iname:: [String] Item name
69
+ # node:: [String] Service Discovery node (_not_ JID#node)
70
+ def initialize(jid=nil, iname=nil, node=nil)
71
+ super()
72
+ set_jid(jid)
73
+ set_iname(iname)
74
+ set_node(node)
75
+ end
76
+
77
+ ##
78
+ # Get the item's jid or nil
79
+ # result:: [String]
80
+ def jid
81
+ JID.new(attributes['jid'])
82
+ end
83
+
84
+ ##
85
+ # Set the item's jid
86
+ # val:: [JID]
87
+ def jid=(val)
88
+ attributes['jid'] = val.to_s
89
+ end
90
+
91
+ ##
92
+ # Set the item's jid (chaining-friendly)
93
+ # val:: [JID]
94
+ def set_jid(val)
95
+ self.jid = val
96
+ self
97
+ end
98
+
99
+ ##
100
+ # Get the item's name or nil
101
+ #
102
+ # This has been renamed from <name/> to "iname" here
103
+ # to keep REXML::Element#name accessible
104
+ # result:: [String]
105
+ def iname
106
+ attributes['name']
107
+ end
108
+
109
+ ##
110
+ # Set the item's name
111
+ # val:: [String]
112
+ def iname=(val)
113
+ attributes['name'] = val
114
+ end
115
+
116
+ ##
117
+ # Set the item's name (chaining-friendly)
118
+ # val:: [String]
119
+ def set_iname(val)
120
+ self.iname = val
121
+ self
122
+ end
123
+
124
+ ##
125
+ # Get the item's Service Discovery node or nil
126
+ # result:: [String]
127
+ def node
128
+ attributes['node']
129
+ end
130
+
131
+ ##
132
+ # Set the item's Service Discovery node
133
+ # val:: [String]
134
+ def node=(val)
135
+ attributes['node'] = val
136
+ end
137
+
138
+ ##
139
+ # Set the item's Service Discovery node (chaining-friendly)
140
+ # val:: [String]
141
+ def set_node(val)
142
+ self.node = val
143
+ self
144
+ end
145
+ end
146
+ end
147
+ end