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,4 @@
1
+ Craig P Jolicoeur
2
+ cpjolicoeur@gmail.com
3
+ http://craigjolicoeur.com
4
+ http://github.com/cpjolicoeur
@@ -1,5 +1,16 @@
1
1
  = Cerberus Changelog
2
2
 
3
+ == Version 0.7
4
+ New config options, Bazaar SCM support, removed GMailer bugfixes
5
+
6
+ * added support for bazaar scm
7
+ * fixed bug with ActionMailer 2.3.3
8
+ * removed GMailer library. Use default Mail publisher instead
9
+ * added 'build_dir' option for setting custom build directory
10
+ * added 'setup_script' option for a custom script to be run before build command
11
+ * Projects using the Git SCM were not getting the full diff output in their
12
+ Publishers
13
+
3
14
  == Version 0.6
4
15
  New Ruby builder, bugfixes, and refactoring
5
16
 
@@ -0,0 +1,16 @@
1
+ If you have contributed to Cerberus, you deserve to be on this list.
2
+ Contact us (see: Authors.txt) and we will add you.
3
+
4
+ Cerberus is Copyright (C) 2006-2009 by the following contributors:
5
+
6
+ Anatol Pomozov
7
+ Xavier Shay
8
+ Mark Noworolski
9
+ Craig P Jolicoeur
10
+ Rob Kaufman
11
+ Ken Mayer
12
+ Niklas Koponen
13
+ Mike Gunderloy
14
+ Joe Van Dyk
15
+ Andrew Timberlake
16
+ Paul Hinze
data/Rakefile CHANGED
@@ -1,12 +1,11 @@
1
- %w(rubygems rake rake/clean rake/testtask fileutils newgem rubigen).each { |f| require f }
2
- require File.join( File.dirname(__FILE__), 'lib', 'cerberus', 'constants.rb' )
3
-
4
1
  require 'rubygems'
5
2
  require 'rake'
6
3
  require 'rake/testtask'
7
4
  require 'rake/packagetask'
8
5
  require 'rake/gempackagetask'
9
6
 
7
+ require './lib/cerberus/constants'
8
+
10
9
  PKG_BUILD = ENV['PKG_BUILD'] ? '.' + ENV['PKG_BUILD'] : ''
11
10
  PKG_NAME = 'cerberus'
12
11
  PKG_VERSION = Cerberus::VERSION + PKG_BUILD
@@ -35,15 +34,6 @@ task :clean => :clobber_package do
35
34
  rm_rf "#{root}/doc/site/webgen.cache"
36
35
  end
37
36
 
38
- # $hoe = Hoe.new('cerberus', Cerberus::VERSION) do |p|
39
- # p.rubyforge_name = p.name
40
- # p.developer( 'Craig P Jolicoeur', 'cpjolicoeur@gmail.com' )
41
- # p.url = 'http://cerberus.rubyforge.org'
42
- # p.need_tar = true
43
- # p.need_zip = true
44
- #
45
- # p.changes = p.paragraphs_of( 'Changelog.txt', 0..1 ).join( "\n\n" )
46
- # end
47
37
 
48
38
  GEM_SPEC = Gem::Specification.new do |s|
49
39
  s.name = PKG_NAME
@@ -62,14 +52,9 @@ GEM_SPEC = Gem::Specification.new do |s|
62
52
  s.add_dependency 'actionmailer', '>= 1.3.3'
63
53
  s.add_dependency 'activesupport', '>= 1.4.2'
64
54
  s.add_dependency 'rake', '>= 0.7.3'
65
- s.add_dependency 'xmpp4r', '>= 0.3.1'
66
- s.add_dependency 'Ruby-IRC', '>= 1.0.7'
67
- s.add_dependency 'gmailer', '>= 0.1.7'
68
- s.add_dependency 'twitter4r', '>= 0.3.0'
69
55
 
70
56
  s.files = Dir.glob("{bin,lib,test}/**/*").delete_if { |item| item.include?('__workdir') }
71
- s.files += %w(License.txt Readme.markdown Changelog.txt Rakefile)
72
- s.files += Dir.glob("doc/*").delete_if { |item| item.include?('__workdir') }
57
+ s.files += %w(License.txt Readme.markdown Changelog.txt Authors.txt Copyright.txt Rakefile)
73
58
 
74
59
  s.bindir = "bin"
75
60
  s.executables = ["cerberus"]
@@ -101,7 +86,7 @@ end
101
86
 
102
87
  desc "Look for TODO and FIXME tags in the code"
103
88
  task :todo do
104
- FileList.new(File.dirname(__FILE__)+'/**/*.rb').egrep(/#.*(FIXME|TODO|TBD|DEPRECATED)/i)
89
+ FileList.new(File.dirname(__FILE__)+'/lib/cerberus/**/*.rb').egrep(/#.*(FIXME|TODO|TBD|DEPRECATED)/i)
105
90
  end
106
91
 
107
92
  task :reinstall => [:uninstall, :install]
@@ -110,14 +95,14 @@ begin
110
95
  require 'rcov/rcovtask'
111
96
  Rcov::RcovTask.new do |t|
112
97
  t.test_files = FileList['test/*_test.rb']
113
- t.output_dir = File.dirname(__FILE__) + "/coverage"
98
+ t.output_dir = File.join( File.dirname(__FILE__),'coverage' )
114
99
  t.verbose = true
115
100
  end
116
101
  rescue Object
117
102
  end
118
103
 
119
104
  task :site_coverage => [:rcov] do
120
- sh %{ scp -r test/coverage/* #{RUBYFORGE_USER}@rubyforge.org:/var/www/gforge-projects/#{RUBYFORGE_PROJECT}/coverage/ }
105
+ sh %{ scp -r coverage/* #{RUBYFORGE_USER}@rubyforge.org:/var/www/gforge-projects/#{RUBYFORGE_PROJECT}/coverage/ }
121
106
  end
122
107
 
123
108
  task :release_files => [:clean, :package] do
@@ -152,10 +137,16 @@ task :publish_news do
152
137
  end
153
138
  end
154
139
 
155
- require 'webgen/webgentask'
156
- Webgen::WebgenTask.new do |t|
157
- t.directory = File.join( File.dirname( __FILE__ ), 'doc/site')
158
- t.clobber_outdir = true
140
+ begin
141
+ gem 'webgen', '>=0.5.6'
142
+ require 'webgen/webgentask'
143
+
144
+ Webgen::WebgenTask.new do |t|
145
+ t.directory = File.join( File.dirname( __FILE__ ), 'doc/site')
146
+ t.clobber_outdir = true
147
+ end
148
+ rescue Gem::LoadError
149
+ puts "webgen gem is required to build website output"
159
150
  end
160
151
 
161
152
  task :publish_site => :webgen do
@@ -35,10 +35,7 @@ Main advantages of Cerberus over other solutions include:
35
35
  * rake - 0.7.3 or higher (optional)
36
36
  * actionmailer - 1.3.3 or higher (optional)
37
37
  * activesupport - 1.4.2 or higher (optional)
38
- * xmpp4r - 0.3.1 or higher (optional)
39
- * Ruby-IRC - 1.0.7 or higher (optional)
40
38
  * gmailer - 0.1.7 or higher (optional)
41
- * twitter4r - 0.3.0 or higher (optional)
42
39
 
43
40
  ## Usage
44
41
 
@@ -89,6 +86,7 @@ Cerberus currently supports the following SCM tools:
89
86
  * Darcs
90
87
  * Perforce
91
88
  * CVS
89
+ * Bazaar
92
90
 
93
91
  Cerberus currently supports the following notification systems:
94
92
 
@@ -1,5 +1,10 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
+ # Add lib dir to load path so that we don't have to be installed in rubygems
4
+ require 'pathname' # Use Pathname to follow symlinks
5
+ CERBERUS_LIB_DIR = File.join( File.dirname( Pathname.new( __FILE__ ).realpath ),'..','lib' )
6
+ $:.unshift CERBERUS_LIB_DIR
7
+
3
8
  require 'cerberus/cli'
4
9
 
5
10
  Cerberus::CLI.new(*ARGV)
@@ -8,8 +8,6 @@ class Cerberus::Builder::Bjam
8
8
  end
9
9
 
10
10
  def run
11
- Dir.chdir @config[:application_root]
12
-
13
11
  #set correct mountpoint if it present
14
12
  build_dir = @config[:builder, :bjam, :build_dir]
15
13
  Dir.chdir(build_dir) if build_dir
@@ -29,4 +27,4 @@ class Cerberus::Builder::Bjam
29
27
  def brokeness
30
28
  return nil
31
29
  end
32
- end
30
+ end
@@ -8,7 +8,6 @@ class Cerberus::Builder::Maven2
8
8
  end
9
9
 
10
10
  def run
11
- Dir.chdir @config[:application_root]
12
11
  cmd = @config[:builder, :maven2, :cmd] || 'mvn'
13
12
  task = @config[:builder, :maven2, :task] || 'test'
14
13
  @output = `#{@config[:bin_path]}#{cmd} #{system_properties} #{settings} #{task} 2>&1`
@@ -6,6 +6,6 @@ class Cerberus::Builder::Rake < Cerberus::Builder::RubyBase
6
6
  end
7
7
 
8
8
  def successful?
9
- $?.exitstatus == 0 and not @output.include?("#{@cmd} aborted!") and @output.include?("0 failures, 0 errors")
9
+ $?.exitstatus == 0 and not @output.include?("#{@cmd} aborted!")
10
10
  end
11
11
  end
@@ -6,7 +6,6 @@ class Cerberus::Builder::RSpec < Cerberus::Builder::RubyBase
6
6
  end
7
7
 
8
8
  def run
9
- Dir.chdir @config[:application_root]
10
9
  @output = if @config[:builder, @name.to_sym, :task]
11
10
  `#{@config[:bin_path]}rake #{@config[:builder, @name.to_sym, :task]} 2>&1`
12
11
  else
@@ -10,7 +10,6 @@ class Cerberus::Builder::RubyBase
10
10
  end
11
11
 
12
12
  def run
13
- Dir.chdir @config[:application_root]
14
13
  @output = `#{@config[:bin_path]}#{choose_exec()} #{@config[:builder, @name.to_sym, :task]} 2>&1`
15
14
  successful?
16
15
  end
@@ -5,6 +5,7 @@ module Cerberus
5
5
  :darcs => 'Darcs',
6
6
  :perforce => 'Perforce',
7
7
  :cvs => 'CVS',
8
+ :bzr => 'Bazaar',
8
9
  :git => 'Git'
9
10
  }
10
11
 
@@ -25,6 +26,8 @@ module Cerberus
25
26
  'darcs'
26
27
  when test(?d, path+'/.cvs')
27
28
  'cvs'
29
+ when test(?d, path+'/.bzr')
30
+ 'bzr'
28
31
  when test(?d, path+'/.git')
29
32
  'git'
30
33
  end
@@ -33,6 +36,8 @@ module Cerberus
33
36
  case path
34
37
  when /^:(pserver|ext|local):/
35
38
  'cvs'
39
+ when /^(bzr+ssh|bzr)/
40
+ 'bzr'
36
41
  end
37
42
  end
38
43
  end
@@ -40,8 +45,7 @@ module Cerberus
40
45
 
41
46
  module Publisher
42
47
  TYPES = {
43
- :mail => 'Mail', #Cerberus::Publisher
44
- :gmailer => 'Gmailer',
48
+ :mail => 'Mail',
45
49
  :jabber => 'Jabber',
46
50
  :irc => 'IRC',
47
51
  :rss => 'RSS',
@@ -7,6 +7,7 @@ publisher:
7
7
  authentication: plain
8
8
  user_name: someuser
9
9
  password: somepassword
10
+ sender: cerberus@example.com
10
11
  # on_event: all
11
12
  # jabber:
12
13
  # jid: somemailbox@gmail.com/cerberus
@@ -2,7 +2,7 @@ module Cerberus
2
2
  HOME = File.expand_path(ENV['CERBERUS_HOME'] || '~/.cerberus')
3
3
  CONFIG_FILE = "#{HOME}/config.yml"
4
4
 
5
- LOCK_WAIT = 30 * 60 #30 minutes
5
+ LOCK_WAIT = 30 * 60 # 30 minutes
6
6
 
7
- VERSION = '0.6'
7
+ VERSION = '0.7'
8
8
  end
@@ -113,6 +113,9 @@ module Cerberus
113
113
  @scm.update!
114
114
 
115
115
  if @scm.has_changes? or @config[:force] or @status.previous_build_successful.nil?
116
+ Dir.chdir File.join(@config[:application_root], @config[:build_dir] || '')
117
+ `#{@config[:setup_script]}` if @config[:setup_script]
118
+
116
119
  build_successful = @builder.run
117
120
  @status.keep(build_successful, @scm.current_revision, @builder.brokeness)
118
121
 
@@ -215,7 +218,7 @@ module Cerberus
215
218
  def run
216
219
  projects = Dir["#{HOME}/config/*.yml"]
217
220
  if projects.empty?
218
- puts "There are no any active projects"
221
+ puts "There are no active projects"
219
222
  else
220
223
  puts "List of active projects:"
221
224
 
@@ -313,6 +316,9 @@ module Cerberus
313
316
  @successful_build_revision = @hash['successful_build_revision']
314
317
  @previous_build_successful = @hash['successful']
315
318
  @previous_brokeness = @hash['brokeness']
319
+
320
+ # Create some convenience methods to access status
321
+ @hash.keys.each { |key| self.class.send( :define_method, key ) { @hash[key] } }
316
322
  end
317
323
 
318
324
  def self.read(file_name)
@@ -2,8 +2,8 @@ require 'rubygems'
2
2
  require 'action_mailer'
3
3
  require 'cerberus/publisher/base'
4
4
 
5
- if RUBY_VERSION > '1.8.2'
6
- #This hack works only on 1.8.4
5
+ if RUBY_VERSION =~ /1\.8\.\d/
6
+ # This hack works only on 1.8.x
7
7
  require 'cerberus/publisher/netsmtp_tls_fix'
8
8
  end
9
9
 
@@ -30,8 +30,8 @@ class Cerberus::Publisher::Mail < Cerberus::Publisher::Base
30
30
  def message(state, manager, options)
31
31
  @subject, @body = Cerberus::Publisher::Base.formatted_message(state, manager, options)
32
32
  @recipients, @sent_on = options[:publisher, :mail, :recipients], Time.now
33
- @from = options[:publisher, :mail, :sender] || "'Cerberus' <cerberus@example.com>"
33
+ @from = options[:publisher, :mail, :sender] || 'cerberus@example.com'
34
34
  raise "Please specify recipient addresses for application '#{options[:application_name]}'" unless @recipients
35
35
  end
36
36
  end
37
- end
37
+ end
@@ -13,7 +13,6 @@ require 'cerberus/utils'
13
13
  class Cerberus::Publisher::Twitter < Cerberus::Publisher::Base
14
14
  def self.publish(state, manager, options)
15
15
  begin
16
- gem 'twitter4r', '>=0.3.0'
17
16
  require 'twitter'
18
17
 
19
18
  twitter_options = options[:publisher, :twitter]
@@ -0,0 +1,19 @@
1
+ module Cerberus
2
+ module SCM
3
+ class Base
4
+
5
+ def initialize(path, config = {})
6
+ raise "Path can't be nil" unless path
7
+
8
+ @path, @config = path.strip, config
9
+ @encoded_path = (@path.include?(' ') ? "\"#{@path}\"" : @path)
10
+ end
11
+
12
+ def url
13
+ @path
14
+ end
15
+
16
+ end
17
+ end
18
+ end
19
+
@@ -0,0 +1,62 @@
1
+ require 'cerberus/utils'
2
+ require 'cerberus/scm/base'
3
+ require 'time'
4
+
5
+ class Cerberus::SCM::Bazaar < Cerberus::SCM::Base
6
+
7
+ def installed?
8
+ exec_successful? "#{@config[:bin_path]}bzr --version"
9
+ end
10
+
11
+ def update!
12
+ if test(?d, File.join(@path, '.bzr'))
13
+ extract_last_commit_info
14
+ @old_revision = @revision
15
+ # Revert in an attempt to avoid conflicts from local file changes
16
+ execute("revert", "--no-backup 2>&1")
17
+ @status = execute("update", "2>&1")
18
+ else
19
+ @old_revision = 0
20
+ FileUtils.rm_rf(@path) if test(?d, @path)
21
+ @status = execute("checkout", nil, @config[:scm, :url])
22
+ end
23
+ extract_last_commit_info
24
+ end
25
+
26
+ def has_changes?
27
+ @revision.to_i > @old_revision.to_i
28
+ end
29
+
30
+ def current_revision
31
+ @revision
32
+ end
33
+
34
+ def last_commit_message
35
+ @message
36
+ end
37
+
38
+ def last_author
39
+ @author
40
+ end
41
+
42
+ private
43
+ def execute(command, parameters = nil, pre_parameters = nil)
44
+ `#{@config[:bin_path]}bzr #{command} #{pre_parameters} #{@encoded_path} #{parameters}`
45
+ end
46
+
47
+ def extract_last_commit_info
48
+ lastlog = execute("log", "-r-1")
49
+ # ------------------------------------------------------------
50
+ # revno: 2222
51
+ # committer: Paul Hinze <phinze@vpr0304>
52
+ # branch nick: my-trunk
53
+ # timestamp: Tue 2009-04-21 18:52:54 -0500
54
+ # message:
55
+ # sidfugsdiufgsdifusdg
56
+
57
+ @revision = lastlog.match(/^revno: (\d+)$/)[1].to_i
58
+ @author = lastlog.match(/^committer: (.+)$/)[1]
59
+ @date = Time.parse(lastlog.match(/^timestamp: (.+)$/)[1])
60
+ @message = lastlog.match(/message:\n (.*)/m)[1]
61
+ end
62
+ end
@@ -1,12 +1,7 @@
1
1
  require 'cerberus/utils'
2
+ require 'cerberus/scm/base'
2
3
 
3
- class Cerberus::SCM::CVS
4
- def initialize(path, config = {})
5
- raise "Path can't be nil" unless path
6
-
7
- @path, @config = path.strip, config
8
- @encoded_path = (@path.include?(' ') ? "\"#{@path}\"" : @path)
9
- end
4
+ class Cerberus::SCM::CVS < Cerberus::SCM::Base
10
5
 
11
6
  def installed?
12
7
  exec_successful? "#{@config[:bin_path]}cvs --version"
@@ -1,12 +1,7 @@
1
1
  require 'cerberus/utils'
2
+ require 'cerberus/scm/base'
2
3
 
3
- class Cerberus::SCM::Darcs
4
- def initialize(path, config = {})
5
- raise "Path can't be nil" unless path
6
-
7
- @path, @config = path.strip, config
8
- @encoded_path = (@path.include?(' ') ? "\"#{@path}\"" : @path)
9
- end
4
+ class Cerberus::SCM::Darcs < Cerberus::SCM::Base
10
5
 
11
6
  def installed?
12
7
  exec_successful? "#{@config[:bin_path]}darcs --version"
@@ -37,10 +32,6 @@ class Cerberus::SCM::Darcs
37
32
  @date
38
33
  end
39
34
 
40
- def url
41
- @path
42
- end
43
-
44
35
  def last_commit_message
45
36
  @message
46
37
  end