riess 0.0.8

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 (420) hide show
  1. data/examples/Getting_started_example.rb +17 -0
  2. data/lib/actions.rb +53 -0
  3. data/lib/checks.rb +39 -0
  4. data/lib/exceptions.rb +12 -0
  5. data/lib/finders.rb +129 -0
  6. data/lib/helpers.rb +115 -0
  7. data/lib/html_action_modules.rb +88 -0
  8. data/lib/html_check_modules.rb +161 -0
  9. data/lib/html_object_factory.rb +33 -0
  10. data/lib/html_objects.rb +57 -0
  11. data/lib/ieparser_extension.rb +416 -0
  12. data/lib/key_codes.rb +123 -0
  13. data/lib/popup.rb +57 -0
  14. data/lib/riess.rb +111 -0
  15. data/lib/test_reporter.rb +113 -0
  16. data/riess_stable_testing_release_1-0.0.8.gemspec +22 -0
  17. data/vendor/log4r-1.0.5/doc/contact.html +166 -0
  18. data/vendor/log4r-1.0.5/doc/contribute.html +165 -0
  19. data/vendor/log4r-1.0.5/doc/images/crush/logo2.png +0 -0
  20. data/vendor/log4r-1.0.5/doc/images/log4r-logo.png +0 -0
  21. data/vendor/log4r-1.0.5/doc/images/logo2.png +0 -0
  22. data/vendor/log4r-1.0.5/doc/index.html +228 -0
  23. data/vendor/log4r-1.0.5/doc/license.html +200 -0
  24. data/vendor/log4r-1.0.5/doc/log4r.css +111 -0
  25. data/vendor/log4r-1.0.5/doc/manual.html +593 -0
  26. data/vendor/log4r-1.0.5/doc/rdoc/blank.html +2 -0
  27. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r.html +105 -0
  28. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/BasicFormatter.html +133 -0
  29. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/BasicFormatter.src/M000073.html +18 -0
  30. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/BasicFormatter.src/M000074.html +22 -0
  31. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/BasicFormatter.src/M000075.html +25 -0
  32. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/ConfigError.html +60 -0
  33. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/Configurator.html +151 -0
  34. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/Configurator.src/M000003.html +16 -0
  35. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/Configurator.src/M000004.html +16 -0
  36. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/Configurator.src/M000005.html +25 -0
  37. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/Configurator.src/M000006.html +19 -0
  38. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/Configurator.src/M000007.html +19 -0
  39. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/DateFileOutputter.html +84 -0
  40. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/DateFileOutputter.src/M000010.html +33 -0
  41. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/DefaultFormatter.html +62 -0
  42. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/EmailOutputter.html +123 -0
  43. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/EmailOutputter.src/M000047.html +32 -0
  44. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/EmailOutputter.src/M000048.html +19 -0
  45. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/FileOutputter.html +99 -0
  46. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/FileOutputter.src/M000011.html +45 -0
  47. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/Formatter.html +91 -0
  48. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/Formatter.src/M000076.html +17 -0
  49. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/Formatter.src/M000077.html +17 -0
  50. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/IOOutputter.html +112 -0
  51. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/IOOutputter.src/M000049.html +19 -0
  52. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/IOOutputter.src/M000050.html +18 -0
  53. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/IOOutputter.src/M000051.html +21 -0
  54. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/Log4rTools.html +116 -0
  55. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/Log4rTools.src/M000032.html +21 -0
  56. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/Log4rTools.src/M000033.html +18 -0
  57. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/Log4rTools.src/M000034.html +24 -0
  58. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/Log4rTools.src/M000035.html +18 -0
  59. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/LogEvent.html +132 -0
  60. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/LogEvent.src/M000001.html +19 -0
  61. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/LogServer.html +103 -0
  62. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/LogServer.src/M000044.html +22 -0
  63. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/LogServer.src/M000045.html +18 -0
  64. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/Logger.html +341 -0
  65. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/Logger.src/M000052.html +16 -0
  66. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/Logger.src/M000053.html +16 -0
  67. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/Logger.src/M000054.html +20 -0
  68. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/Logger.src/M000055.html +22 -0
  69. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/Logger.src/M000056.html +20 -0
  70. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/Logger.src/M000057.html +18 -0
  71. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/Logger.src/M000058.html +20 -0
  72. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/Logger.src/M000059.html +30 -0
  73. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/Logger.src/M000060.html +22 -0
  74. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/Logger.src/M000061.html +21 -0
  75. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/Logger.src/M000062.html +24 -0
  76. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/Logger.src/M000063.html +18 -0
  77. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/Logger.src/M000064.html +19 -0
  78. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/Logger.src/M000065.html +29 -0
  79. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/Logger.src/M000066.html +22 -0
  80. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/Logger.src/M000067.html +16 -0
  81. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/Logger.src/M000068.html +18 -0
  82. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/ObjectFormatter.html +85 -0
  83. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/ObjectFormatter.src/M000009.html +21 -0
  84. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/Outputter.html +229 -0
  85. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/Outputter.src/M000015.html +25 -0
  86. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/Outputter.src/M000016.html +16 -0
  87. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/Outputter.src/M000017.html +16 -0
  88. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/Outputter.src/M000018.html +18 -0
  89. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/Outputter.src/M000019.html +18 -0
  90. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/Outputter.src/M000020.html +18 -0
  91. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/Outputter.src/M000021.html +23 -0
  92. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/Outputter.src/M000022.html +21 -0
  93. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/Outputter.src/M000023.html +26 -0
  94. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/Outputter.src/M000024.html +29 -0
  95. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/Outputter.src/M000025.html +17 -0
  96. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/PatternFormatter.html +120 -0
  97. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/PatternFormatter.src/M000046.html +23 -0
  98. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/RemoteOutputter.html +104 -0
  99. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/RemoteOutputter.src/M000012.html +22 -0
  100. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/RemoteOutputter.src/M000013.html +18 -0
  101. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/RemoteOutputter.src/M000014.html +18 -0
  102. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/RollingFileOutputter.html +111 -0
  103. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/RollingFileOutputter.src/M000069.html +45 -0
  104. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/RootLogger.html +173 -0
  105. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/RootLogger.src/M000036.html +23 -0
  106. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/RootLogger.src/M000037.html +16 -0
  107. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/RootLogger.src/M000038.html +16 -0
  108. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/RootLogger.src/M000039.html +16 -0
  109. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/RootLogger.src/M000040.html +16 -0
  110. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/RootLogger.src/M000041.html +16 -0
  111. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/RootLogger.src/M000042.html +16 -0
  112. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/RootLogger.src/M000043.html +16 -0
  113. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/SimpleFormatter.html +83 -0
  114. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/SimpleFormatter.src/M000026.html +19 -0
  115. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/StderrOutputter.html +76 -0
  116. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/StderrOutputter.src/M000002.html +18 -0
  117. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/StdoutOutputter.html +76 -0
  118. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/StdoutOutputter.src/M000008.html +18 -0
  119. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/SyslogOutputter.html +111 -0
  120. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/SyslogOutputter.src/M000070.html +22 -0
  121. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/SyslogOutputter.src/M000071.html +18 -0
  122. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/SyslogOutputter.src/M000072.html +21 -0
  123. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/YamlConfigurator.html +128 -0
  124. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/YamlConfigurator.src/M000027.html +16 -0
  125. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/YamlConfigurator.src/M000028.html +16 -0
  126. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/YamlConfigurator.src/M000029.html +25 -0
  127. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/YamlConfigurator.src/M000030.html +18 -0
  128. data/vendor/log4r-1.0.5/doc/rdoc/classes/Log4r/YamlConfigurator.src/M000031.html +18 -0
  129. data/vendor/log4r-1.0.5/doc/rdoc/created.rid +1 -0
  130. data/vendor/log4r-1.0.5/doc/rdoc/files/log4r/configurator_rb.html +402 -0
  131. data/vendor/log4r-1.0.5/doc/rdoc/files/log4r/formatter/formatter_rb.html +152 -0
  132. data/vendor/log4r-1.0.5/doc/rdoc/files/log4r/formatter/patternformatter_rb.html +266 -0
  133. data/vendor/log4r-1.0.5/doc/rdoc/files/log4r/logger_rb.html +320 -0
  134. data/vendor/log4r-1.0.5/doc/rdoc/files/log4r/logserver_rb.html +191 -0
  135. data/vendor/log4r-1.0.5/doc/rdoc/files/log4r/outputter/datefileoutputter_rb.html +120 -0
  136. data/vendor/log4r-1.0.5/doc/rdoc/files/log4r/outputter/emailoutputter_rb.html +205 -0
  137. data/vendor/log4r-1.0.5/doc/rdoc/files/log4r/outputter/outputter_rb.html +254 -0
  138. data/vendor/log4r-1.0.5/doc/rdoc/files/log4r/outputter/syslogoutputter_rb.html +135 -0
  139. data/vendor/log4r-1.0.5/doc/rdoc/files/log4r/yamlconfigurator_rb.html +120 -0
  140. data/vendor/log4r-1.0.5/doc/rdoc/files/log4r_rb.html +228 -0
  141. data/vendor/log4r-1.0.5/doc/rdoc/fr_class_index.html +59 -0
  142. data/vendor/log4r-1.0.5/doc/rdoc/fr_file_index.html +45 -0
  143. data/vendor/log4r-1.0.5/doc/rdoc/fr_method_index.html +111 -0
  144. data/vendor/log4r-1.0.5/doc/rdoc/index.html +26 -0
  145. data/vendor/log4r-1.0.5/doc/rdoc/rdoc-style.css +79 -0
  146. data/vendor/log4r-1.0.5/examples/README +19 -0
  147. data/vendor/log4r-1.0.5/examples/customlevels.rb +34 -0
  148. data/vendor/log4r-1.0.5/examples/fileroll.rb +40 -0
  149. data/vendor/log4r-1.0.5/examples/log4r_yaml.yaml +0 -0
  150. data/vendor/log4r-1.0.5/examples/logclient.rb +25 -0
  151. data/vendor/log4r-1.0.5/examples/logserver.rb +18 -0
  152. data/vendor/log4r-1.0.5/examples/moderate.xml +29 -0
  153. data/vendor/log4r-1.0.5/examples/moderateconfig.rb +66 -0
  154. data/vendor/log4r-1.0.5/examples/myformatter.rb +23 -0
  155. data/vendor/log4r-1.0.5/examples/outofthebox.rb +21 -0
  156. data/vendor/log4r-1.0.5/examples/rrconfig.xml +63 -0
  157. data/vendor/log4r-1.0.5/examples/rrsetup.rb +42 -0
  158. data/vendor/log4r-1.0.5/examples/simpleconfig.rb +39 -0
  159. data/vendor/log4r-1.0.5/examples/xmlconfig.rb +25 -0
  160. data/vendor/log4r-1.0.5/examples/yaml.rb +30 -0
  161. data/vendor/log4r-1.0.5/src/log4r.rb +20 -0
  162. data/vendor/log4r-1.0.5/src/log4r/base.rb +74 -0
  163. data/vendor/log4r-1.0.5/src/log4r/config.rb +9 -0
  164. data/vendor/log4r-1.0.5/src/log4r/configurator.rb +224 -0
  165. data/vendor/log4r-1.0.5/src/log4r/formatter/formatter.rb +105 -0
  166. data/vendor/log4r-1.0.5/src/log4r/formatter/patternformatter.rb +108 -0
  167. data/vendor/log4r-1.0.5/src/log4r/lib/drbloader.rb +52 -0
  168. data/vendor/log4r-1.0.5/src/log4r/lib/xmlloader.rb +24 -0
  169. data/vendor/log4r-1.0.5/src/log4r/logevent.rb +28 -0
  170. data/vendor/log4r-1.0.5/src/log4r/logger.rb +194 -0
  171. data/vendor/log4r-1.0.5/src/log4r/loggerfactory.rb +89 -0
  172. data/vendor/log4r-1.0.5/src/log4r/logserver.rb +28 -0
  173. data/vendor/log4r-1.0.5/src/log4r/outputter/consoleoutputters.rb +18 -0
  174. data/vendor/log4r-1.0.5/src/log4r/outputter/datefileoutputter.rb +110 -0
  175. data/vendor/log4r-1.0.5/src/log4r/outputter/emailoutputter.rb +115 -0
  176. data/vendor/log4r-1.0.5/src/log4r/outputter/fileoutputter.rb +49 -0
  177. data/vendor/log4r-1.0.5/src/log4r/outputter/iooutputter.rb +55 -0
  178. data/vendor/log4r-1.0.5/src/log4r/outputter/outputter.rb +132 -0
  179. data/vendor/log4r-1.0.5/src/log4r/outputter/outputterfactory.rb +59 -0
  180. data/vendor/log4r-1.0.5/src/log4r/outputter/remoteoutputter.rb +40 -0
  181. data/vendor/log4r-1.0.5/src/log4r/outputter/rollingfileoutputter.rb +126 -0
  182. data/vendor/log4r-1.0.5/src/log4r/outputter/staticoutputter.rb +30 -0
  183. data/vendor/log4r-1.0.5/src/log4r/outputter/syslogoutputter.rb +75 -0
  184. data/vendor/log4r-1.0.5/src/log4r/rdoc/configurator +243 -0
  185. data/vendor/log4r-1.0.5/src/log4r/rdoc/emailoutputter +103 -0
  186. data/vendor/log4r-1.0.5/src/log4r/rdoc/formatter +39 -0
  187. data/vendor/log4r-1.0.5/src/log4r/rdoc/log4r +89 -0
  188. data/vendor/log4r-1.0.5/src/log4r/rdoc/logger +175 -0
  189. data/vendor/log4r-1.0.5/src/log4r/rdoc/logserver +85 -0
  190. data/vendor/log4r-1.0.5/src/log4r/rdoc/outputter +108 -0
  191. data/vendor/log4r-1.0.5/src/log4r/rdoc/patternformatter +128 -0
  192. data/vendor/log4r-1.0.5/src/log4r/rdoc/syslogoutputter +29 -0
  193. data/vendor/log4r-1.0.5/src/log4r/rdoc/yamlconfigurator +20 -0
  194. data/vendor/log4r-1.0.5/src/log4r/repository.rb +65 -0
  195. data/vendor/log4r-1.0.5/src/log4r/staticlogger.rb +49 -0
  196. data/vendor/log4r-1.0.5/src/log4r/yamlconfigurator.rb +0 -0
  197. data/vendor/log4r-1.0.5/tests/include.rb +7 -0
  198. data/vendor/log4r-1.0.5/tests/runtest.rb +6 -0
  199. data/vendor/log4r-1.0.5/tests/testbase.rb +45 -0
  200. data/vendor/log4r-1.0.5/tests/testcustom.rb +33 -0
  201. data/vendor/log4r-1.0.5/tests/testdefault.rb +25 -0
  202. data/vendor/log4r-1.0.5/tests/testformatter.rb +29 -0
  203. data/vendor/log4r-1.0.5/tests/testlogger.rb +198 -0
  204. data/vendor/log4r-1.0.5/tests/testoutputter.rb +112 -0
  205. data/vendor/log4r-1.0.5/tests/testpatternformatter.rb +26 -0
  206. data/vendor/log4r-1.0.5/tests/testxmlconf.rb +51 -0
  207. data/vendor/log4r-1.0.5/tests/xml/testconf.xml +37 -0
  208. data/vendor/rspec-0.8.2/CHANGES +575 -0
  209. data/vendor/rspec-0.8.2/EXAMPLES.rd +81 -0
  210. data/vendor/rspec-0.8.2/MIT-LICENSE +20 -0
  211. data/vendor/rspec-0.8.2/README +57 -0
  212. data/vendor/rspec-0.8.2/RELEASE-PLAN +117 -0
  213. data/vendor/rspec-0.8.2/Rakefile +223 -0
  214. data/vendor/rspec-0.8.2/bin/spec +4 -0
  215. data/vendor/rspec-0.8.2/examples/auto_spec_name_generation_example.rb +18 -0
  216. data/vendor/rspec-0.8.2/examples/custom_expectation_matchers.rb +53 -0
  217. data/vendor/rspec-0.8.2/examples/custom_formatter.rb +11 -0
  218. data/vendor/rspec-0.8.2/examples/dynamic_spec.rb +9 -0
  219. data/vendor/rspec-0.8.2/examples/file_accessor.rb +18 -0
  220. data/vendor/rspec-0.8.2/examples/file_accessor_spec.rb +38 -0
  221. data/vendor/rspec-0.8.2/examples/greeter_spec.rb +30 -0
  222. data/vendor/rspec-0.8.2/examples/helper_method_example.rb +11 -0
  223. data/vendor/rspec-0.8.2/examples/io_processor.rb +8 -0
  224. data/vendor/rspec-0.8.2/examples/io_processor_spec.rb +21 -0
  225. data/vendor/rspec-0.8.2/examples/mocking_example.rb +27 -0
  226. data/vendor/rspec-0.8.2/examples/partial_mock_example.rb +28 -0
  227. data/vendor/rspec-0.8.2/examples/predicate_example.rb +27 -0
  228. data/vendor/rspec-0.8.2/examples/setup_teardown_example.rb +34 -0
  229. data/vendor/rspec-0.8.2/examples/spec_helper.rb +1 -0
  230. data/vendor/rspec-0.8.2/examples/stack.rb +36 -0
  231. data/vendor/rspec-0.8.2/examples/stack_spec.rb +113 -0
  232. data/vendor/rspec-0.8.2/examples/stubbing_example.rb +69 -0
  233. data/vendor/rspec-0.8.2/examples/test_case_spec.rb +63 -0
  234. data/vendor/rspec-0.8.2/lib/spec.rb +11 -0
  235. data/vendor/rspec-0.8.2/lib/spec/callback.rb +11 -0
  236. data/vendor/rspec-0.8.2/lib/spec/callback/callback_container.rb +60 -0
  237. data/vendor/rspec-0.8.2/lib/spec/callback/extensions/module.rb +24 -0
  238. data/vendor/rspec-0.8.2/lib/spec/callback/extensions/object.rb +37 -0
  239. data/vendor/rspec-0.8.2/lib/spec/deprecated.rb +3 -0
  240. data/vendor/rspec-0.8.2/lib/spec/expectations.rb +59 -0
  241. data/vendor/rspec-0.8.2/lib/spec/expectations/differs/default.rb +62 -0
  242. data/vendor/rspec-0.8.2/lib/spec/expectations/errors.rb +6 -0
  243. data/vendor/rspec-0.8.2/lib/spec/expectations/extensions.rb +3 -0
  244. data/vendor/rspec-0.8.2/lib/spec/expectations/extensions/object.rb +109 -0
  245. data/vendor/rspec-0.8.2/lib/spec/expectations/extensions/proc.rb +57 -0
  246. data/vendor/rspec-0.8.2/lib/spec/expectations/extensions/string_and_symbol.rb +17 -0
  247. data/vendor/rspec-0.8.2/lib/spec/expectations/handler.rb +47 -0
  248. data/vendor/rspec-0.8.2/lib/spec/expectations/should.rb +5 -0
  249. data/vendor/rspec-0.8.2/lib/spec/expectations/should/base.rb +64 -0
  250. data/vendor/rspec-0.8.2/lib/spec/expectations/should/change.rb +69 -0
  251. data/vendor/rspec-0.8.2/lib/spec/expectations/should/have.rb +128 -0
  252. data/vendor/rspec-0.8.2/lib/spec/expectations/should/not.rb +74 -0
  253. data/vendor/rspec-0.8.2/lib/spec/expectations/should/should.rb +81 -0
  254. data/vendor/rspec-0.8.2/lib/spec/expectations/sugar.rb +47 -0
  255. data/vendor/rspec-0.8.2/lib/spec/matchers.rb +160 -0
  256. data/vendor/rspec-0.8.2/lib/spec/matchers/be.rb +161 -0
  257. data/vendor/rspec-0.8.2/lib/spec/matchers/be_close.rb +37 -0
  258. data/vendor/rspec-0.8.2/lib/spec/matchers/change.rb +120 -0
  259. data/vendor/rspec-0.8.2/lib/spec/matchers/eql.rb +43 -0
  260. data/vendor/rspec-0.8.2/lib/spec/matchers/equal.rb +43 -0
  261. data/vendor/rspec-0.8.2/lib/spec/matchers/has.rb +44 -0
  262. data/vendor/rspec-0.8.2/lib/spec/matchers/have.rb +140 -0
  263. data/vendor/rspec-0.8.2/lib/spec/matchers/include.rb +50 -0
  264. data/vendor/rspec-0.8.2/lib/spec/matchers/match.rb +41 -0
  265. data/vendor/rspec-0.8.2/lib/spec/matchers/raise_error.rb +100 -0
  266. data/vendor/rspec-0.8.2/lib/spec/matchers/respond_to.rb +35 -0
  267. data/vendor/rspec-0.8.2/lib/spec/matchers/satisfy.rb +47 -0
  268. data/vendor/rspec-0.8.2/lib/spec/matchers/throw_symbol.rb +75 -0
  269. data/vendor/rspec-0.8.2/lib/spec/mocks.rb +232 -0
  270. data/vendor/rspec-0.8.2/lib/spec/mocks/argument_expectation.rb +132 -0
  271. data/vendor/rspec-0.8.2/lib/spec/mocks/error_generator.rb +85 -0
  272. data/vendor/rspec-0.8.2/lib/spec/mocks/errors.rb +10 -0
  273. data/vendor/rspec-0.8.2/lib/spec/mocks/extensions/object.rb +3 -0
  274. data/vendor/rspec-0.8.2/lib/spec/mocks/message_expectation.rb +231 -0
  275. data/vendor/rspec-0.8.2/lib/spec/mocks/methods.rb +40 -0
  276. data/vendor/rspec-0.8.2/lib/spec/mocks/mock.rb +26 -0
  277. data/vendor/rspec-0.8.2/lib/spec/mocks/mock_handler.rb +166 -0
  278. data/vendor/rspec-0.8.2/lib/spec/mocks/order_group.rb +29 -0
  279. data/vendor/rspec-0.8.2/lib/spec/rake/spectask.rb +173 -0
  280. data/vendor/rspec-0.8.2/lib/spec/rake/verify_rcov.rb +47 -0
  281. data/vendor/rspec-0.8.2/lib/spec/runner.rb +132 -0
  282. data/vendor/rspec-0.8.2/lib/spec/runner/backtrace_tweaker.rb +55 -0
  283. data/vendor/rspec-0.8.2/lib/spec/runner/command_line.rb +34 -0
  284. data/vendor/rspec-0.8.2/lib/spec/runner/context.rb +154 -0
  285. data/vendor/rspec-0.8.2/lib/spec/runner/context_eval.rb +142 -0
  286. data/vendor/rspec-0.8.2/lib/spec/runner/context_runner.rb +55 -0
  287. data/vendor/rspec-0.8.2/lib/spec/runner/drb_command_line.rb +21 -0
  288. data/vendor/rspec-0.8.2/lib/spec/runner/execution_context.rb +17 -0
  289. data/vendor/rspec-0.8.2/lib/spec/runner/extensions/kernel.rb +17 -0
  290. data/vendor/rspec-0.8.2/lib/spec/runner/extensions/object.rb +32 -0
  291. data/vendor/rspec-0.8.2/lib/spec/runner/formatter.rb +5 -0
  292. data/vendor/rspec-0.8.2/lib/spec/runner/formatter/base_text_formatter.rb +118 -0
  293. data/vendor/rspec-0.8.2/lib/spec/runner/formatter/html_formatter.rb +219 -0
  294. data/vendor/rspec-0.8.2/lib/spec/runner/formatter/progress_bar_formatter.rb +27 -0
  295. data/vendor/rspec-0.8.2/lib/spec/runner/formatter/rdoc_formatter.rb +22 -0
  296. data/vendor/rspec-0.8.2/lib/spec/runner/formatter/specdoc_formatter.rb +23 -0
  297. data/vendor/rspec-0.8.2/lib/spec/runner/heckle_runner.rb +71 -0
  298. data/vendor/rspec-0.8.2/lib/spec/runner/heckle_runner_win.rb +10 -0
  299. data/vendor/rspec-0.8.2/lib/spec/runner/option_parser.rb +224 -0
  300. data/vendor/rspec-0.8.2/lib/spec/runner/reporter.rb +105 -0
  301. data/vendor/rspec-0.8.2/lib/spec/runner/spec_matcher.rb +25 -0
  302. data/vendor/rspec-0.8.2/lib/spec/runner/spec_parser.rb +41 -0
  303. data/vendor/rspec-0.8.2/lib/spec/runner/spec_should_raise_handler.rb +74 -0
  304. data/vendor/rspec-0.8.2/lib/spec/runner/specification.rb +114 -0
  305. data/vendor/rspec-0.8.2/lib/spec/translator.rb +87 -0
  306. data/vendor/rspec-0.8.2/lib/spec/version.rb +30 -0
  307. data/vendor/rspec-0.8.2/spec/spec/callback/callback_container_spec.rb +27 -0
  308. data/vendor/rspec-0.8.2/spec/spec/callback/module_spec.rb +37 -0
  309. data/vendor/rspec-0.8.2/spec/spec/callback/object_spec.rb +90 -0
  310. data/vendor/rspec-0.8.2/spec/spec/callback/object_with_class_callback_spec.rb +19 -0
  311. data/vendor/rspec-0.8.2/spec/spec/expectations/differs/default_spec.rb +107 -0
  312. data/vendor/rspec-0.8.2/spec/spec/expectations/extensions/object_spec.rb +46 -0
  313. data/vendor/rspec-0.8.2/spec/spec/expectations/fail_with_spec.rb +71 -0
  314. data/vendor/rspec-0.8.2/spec/spec/expectations/should/should_==_spec.rb +19 -0
  315. data/vendor/rspec-0.8.2/spec/spec/expectations/should/should_=~_spec.rb +13 -0
  316. data/vendor/rspec-0.8.2/spec/spec/expectations/should/should_be_a_kind_of_spec.rb +21 -0
  317. data/vendor/rspec-0.8.2/spec/spec/expectations/should/should_be_an_instance_of_spec.rb +30 -0
  318. data/vendor/rspec-0.8.2/spec/spec/expectations/should/should_be_arbitrary_predicate_spec.rb +81 -0
  319. data/vendor/rspec-0.8.2/spec/spec/expectations/should/should_be_close_spec.rb +18 -0
  320. data/vendor/rspec-0.8.2/spec/spec/expectations/should/should_be_comparison_operator_spec.rb +44 -0
  321. data/vendor/rspec-0.8.2/spec/spec/expectations/should/should_be_false_spec.rb +39 -0
  322. data/vendor/rspec-0.8.2/spec/spec/expectations/should/should_be_spec.rb +11 -0
  323. data/vendor/rspec-0.8.2/spec/spec/expectations/should/should_be_true_spec.rb +27 -0
  324. data/vendor/rspec-0.8.2/spec/spec/expectations/should/should_change_spec.rb +184 -0
  325. data/vendor/rspec-0.8.2/spec/spec/expectations/should/should_eql_spec.rb +11 -0
  326. data/vendor/rspec-0.8.2/spec/spec/expectations/should/should_equal_spec.rb +11 -0
  327. data/vendor/rspec-0.8.2/spec/spec/expectations/should/should_have_at_least_spec.rb +53 -0
  328. data/vendor/rspec-0.8.2/spec/spec/expectations/should/should_have_at_most_spec.rb +45 -0
  329. data/vendor/rspec-0.8.2/spec/spec/expectations/should/should_have_key_spec.rb +21 -0
  330. data/vendor/rspec-0.8.2/spec/spec/expectations/should/should_have_spec.rb +64 -0
  331. data/vendor/rspec-0.8.2/spec/spec/expectations/should/should_include_spec.rb +59 -0
  332. data/vendor/rspec-0.8.2/spec/spec/expectations/should/should_match_spec.rb +25 -0
  333. data/vendor/rspec-0.8.2/spec/spec/expectations/should/should_not_==_spec.rb +15 -0
  334. data/vendor/rspec-0.8.2/spec/spec/expectations/should/should_not_be_a_kind_of_spec.rb +21 -0
  335. data/vendor/rspec-0.8.2/spec/spec/expectations/should/should_not_be_an_instance_of_spec.rb +11 -0
  336. data/vendor/rspec-0.8.2/spec/spec/expectations/should/should_not_be_arbitrary_predicate_spec.rb +68 -0
  337. data/vendor/rspec-0.8.2/spec/spec/expectations/should/should_not_be_spec.rb +11 -0
  338. data/vendor/rspec-0.8.2/spec/spec/expectations/should/should_not_change_spec.rb +24 -0
  339. data/vendor/rspec-0.8.2/spec/spec/expectations/should/should_not_eql_spec.rb +11 -0
  340. data/vendor/rspec-0.8.2/spec/spec/expectations/should/should_not_equal_spec.rb +11 -0
  341. data/vendor/rspec-0.8.2/spec/spec/expectations/should/should_not_have_key_spec.rb +15 -0
  342. data/vendor/rspec-0.8.2/spec/spec/expectations/should/should_not_include_spec.rb +58 -0
  343. data/vendor/rspec-0.8.2/spec/spec/expectations/should/should_not_match_spec.rb +11 -0
  344. data/vendor/rspec-0.8.2/spec/spec/expectations/should/should_not_raise_spec.rb +75 -0
  345. data/vendor/rspec-0.8.2/spec/spec/expectations/should/should_not_respond_to_spec.rb +15 -0
  346. data/vendor/rspec-0.8.2/spec/spec/expectations/should/should_not_throw_spec.rb +35 -0
  347. data/vendor/rspec-0.8.2/spec/spec/expectations/should/should_raise_spec.rb +66 -0
  348. data/vendor/rspec-0.8.2/spec/spec/expectations/should/should_respond_to_spec.rb +15 -0
  349. data/vendor/rspec-0.8.2/spec/spec/expectations/should/should_satisfy_spec.rb +35 -0
  350. data/vendor/rspec-0.8.2/spec/spec/expectations/should/should_throw_spec.rb +27 -0
  351. data/vendor/rspec-0.8.2/spec/spec/matchers/be_close_spec.rb +33 -0
  352. data/vendor/rspec-0.8.2/spec/spec/matchers/be_spec.rb +182 -0
  353. data/vendor/rspec-0.8.2/spec/spec/matchers/change_spec.rb +232 -0
  354. data/vendor/rspec-0.8.2/spec/spec/matchers/description_generation_spec.rb +147 -0
  355. data/vendor/rspec-0.8.2/spec/spec/matchers/eql_spec.rb +41 -0
  356. data/vendor/rspec-0.8.2/spec/spec/matchers/equal_spec.rb +41 -0
  357. data/vendor/rspec-0.8.2/spec/spec/matchers/handler_spec.rb +75 -0
  358. data/vendor/rspec-0.8.2/spec/spec/matchers/has_spec.rb +37 -0
  359. data/vendor/rspec-0.8.2/spec/spec/matchers/have_spec.rb +259 -0
  360. data/vendor/rspec-0.8.2/spec/spec/matchers/include_spec.rb +33 -0
  361. data/vendor/rspec-0.8.2/spec/spec/matchers/match_spec.rb +37 -0
  362. data/vendor/rspec-0.8.2/spec/spec/matchers/matcher_methods_spec.rb +85 -0
  363. data/vendor/rspec-0.8.2/spec/spec/matchers/raise_error_spec.rb +147 -0
  364. data/vendor/rspec-0.8.2/spec/spec/matchers/respond_to_spec.rb +30 -0
  365. data/vendor/rspec-0.8.2/spec/spec/matchers/satisfy_spec.rb +36 -0
  366. data/vendor/rspec-0.8.2/spec/spec/matchers/throw_symbol_spec.rb +59 -0
  367. data/vendor/rspec-0.8.2/spec/spec/mocks/any_number_of_times_spec.rb +34 -0
  368. data/vendor/rspec-0.8.2/spec/spec/mocks/argument_expectation_spec.rb +19 -0
  369. data/vendor/rspec-0.8.2/spec/spec/mocks/at_least_spec.rb +97 -0
  370. data/vendor/rspec-0.8.2/spec/spec/mocks/at_most_spec.rb +97 -0
  371. data/vendor/rspec-0.8.2/spec/spec/mocks/bug_report_7611_spec.rb +19 -0
  372. data/vendor/rspec-0.8.2/spec/spec/mocks/bug_report_7805_spec.rb +22 -0
  373. data/vendor/rspec-0.8.2/spec/spec/mocks/bug_report_8165_spec.rb +31 -0
  374. data/vendor/rspec-0.8.2/spec/spec/mocks/bug_report_8302_spec.rb +26 -0
  375. data/vendor/rspec-0.8.2/spec/spec/mocks/failing_mock_argument_constraints_spec.rb +74 -0
  376. data/vendor/rspec-0.8.2/spec/spec/mocks/mock_ordering_spec.rb +80 -0
  377. data/vendor/rspec-0.8.2/spec/spec/mocks/mock_spec.rb +407 -0
  378. data/vendor/rspec-0.8.2/spec/spec/mocks/multiple_return_value_spec.rb +113 -0
  379. data/vendor/rspec-0.8.2/spec/spec/mocks/null_object_mock_spec.rb +40 -0
  380. data/vendor/rspec-0.8.2/spec/spec/mocks/once_counts_spec.rb +56 -0
  381. data/vendor/rspec-0.8.2/spec/spec/mocks/options_hash_spec.rb +31 -0
  382. data/vendor/rspec-0.8.2/spec/spec/mocks/partial_mock_spec.rb +52 -0
  383. data/vendor/rspec-0.8.2/spec/spec/mocks/partial_mock_using_mocks_directly_spec.rb +64 -0
  384. data/vendor/rspec-0.8.2/spec/spec/mocks/passing_mock_argument_constraints_spec.rb +92 -0
  385. data/vendor/rspec-0.8.2/spec/spec/mocks/precise_counts_spec.rb +56 -0
  386. data/vendor/rspec-0.8.2/spec/spec/mocks/record_messages_spec.rb +26 -0
  387. data/vendor/rspec-0.8.2/spec/spec/mocks/stub_spec.rb +159 -0
  388. data/vendor/rspec-0.8.2/spec/spec/mocks/twice_counts_spec.rb +67 -0
  389. data/vendor/rspec-0.8.2/spec/spec/runner/command_line_spec.rb +32 -0
  390. data/vendor/rspec-0.8.2/spec/spec/runner/context_matching_spec.rb +28 -0
  391. data/vendor/rspec-0.8.2/spec/spec/runner/context_runner_spec.rb +100 -0
  392. data/vendor/rspec-0.8.2/spec/spec/runner/context_spec.rb +405 -0
  393. data/vendor/rspec-0.8.2/spec/spec/runner/drb_command_line_spec.rb +74 -0
  394. data/vendor/rspec-0.8.2/spec/spec/runner/execution_context_spec.rb +52 -0
  395. data/vendor/rspec-0.8.2/spec/spec/runner/formatter/html_formatter_spec.rb +40 -0
  396. data/vendor/rspec-0.8.2/spec/spec/runner/formatter/progress_bar_formatter_dry_run_spec.rb +21 -0
  397. data/vendor/rspec-0.8.2/spec/spec/runner/formatter/progress_bar_formatter_failure_dump_spec.rb +36 -0
  398. data/vendor/rspec-0.8.2/spec/spec/runner/formatter/progress_bar_formatter_spec.rb +78 -0
  399. data/vendor/rspec-0.8.2/spec/spec/runner/formatter/rdoc_formatter_dry_run_spec.rb +18 -0
  400. data/vendor/rspec-0.8.2/spec/spec/runner/formatter/rdoc_formatter_spec.rb +41 -0
  401. data/vendor/rspec-0.8.2/spec/spec/runner/formatter/specdoc_formatter_dry_run_spec.rb +21 -0
  402. data/vendor/rspec-0.8.2/spec/spec/runner/formatter/specdoc_formatter_spec.rb +46 -0
  403. data/vendor/rspec-0.8.2/spec/spec/runner/heckle_runner_spec.rb +63 -0
  404. data/vendor/rspec-0.8.2/spec/spec/runner/heckler_spec.rb +14 -0
  405. data/vendor/rspec-0.8.2/spec/spec/runner/kernel_ext_spec.rb +16 -0
  406. data/vendor/rspec-0.8.2/spec/spec/runner/noisy_backtrace_tweaker_spec.rb +45 -0
  407. data/vendor/rspec-0.8.2/spec/spec/runner/object_ext_spec.rb +11 -0
  408. data/vendor/rspec-0.8.2/spec/spec/runner/option_parser_spec.rb +269 -0
  409. data/vendor/rspec-0.8.2/spec/spec/runner/quiet_backtrace_tweaker_spec.rb +47 -0
  410. data/vendor/rspec-0.8.2/spec/spec/runner/reporter_spec.rb +126 -0
  411. data/vendor/rspec-0.8.2/spec/spec/runner/spec_matcher_spec.rb +107 -0
  412. data/vendor/rspec-0.8.2/spec/spec/runner/spec_name_generation_spec.rb +102 -0
  413. data/vendor/rspec-0.8.2/spec/spec/runner/spec_parser_spec.rb +37 -0
  414. data/vendor/rspec-0.8.2/spec/spec/runner/specification_class_spec.rb +72 -0
  415. data/vendor/rspec-0.8.2/spec/spec/runner/specification_instance_spec.rb +160 -0
  416. data/vendor/rspec-0.8.2/spec/spec/runner/specification_should_raise_spec.rb +136 -0
  417. data/vendor/rspec-0.8.2/spec/spec/spec_classes.rb +102 -0
  418. data/vendor/rspec-0.8.2/spec/spec/translator_spec.rb +79 -0
  419. data/vendor/rspec-0.8.2/spec/spec_helper.rb +35 -0
  420. metadata +537 -0
@@ -0,0 +1,40 @@
1
+ module Spec
2
+ module Mocks
3
+ module Methods
4
+ def should_receive(sym, opts={}, &block)
5
+ __mock_handler.add_message_expectation(opts[:expected_from] || caller(1)[0], sym, opts, &block)
6
+ end
7
+
8
+ def should_not_receive(sym, &block)
9
+ __mock_handler.add_negative_message_expectation(caller(1)[0], sym, &block)
10
+ end
11
+
12
+ def stub!(sym)
13
+ __mock_handler.add_stub(caller(1)[0], sym)
14
+ end
15
+
16
+ def received_message?(sym, *args, &block) #:nodoc:
17
+ __mock_handler.received_message?(sym, *args, &block)
18
+ end
19
+
20
+ def __verify #:nodoc:
21
+ __mock_handler.verify
22
+ end
23
+
24
+ def __reset_mock #:nodoc:
25
+ __mock_handler.reset
26
+ end
27
+
28
+ def method_missing(sym, *args, &block) #:nodoc:
29
+ __mock_handler.instance_eval {@messages_received << [sym, args, block]}
30
+ super(sym, *args, &block)
31
+ end
32
+
33
+ private
34
+
35
+ def __mock_handler
36
+ @mock_handler ||= MockHandler.new(self, @name, @options)
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,26 @@
1
+ module Spec
2
+ module Mocks
3
+ class Mock
4
+ include Methods
5
+
6
+ # Creates a new mock with a +name+ (that will be used in error messages only)
7
+ # == Options:
8
+ # * <tt>:null_object</tt> - if true, the mock object acts as a forgiving null object allowing any message to be sent to it.
9
+ def initialize(name, options={})
10
+ @name = name
11
+ @options = options
12
+ end
13
+
14
+ def method_missing(sym, *args, &block)
15
+ __mock_handler.instance_eval {@messages_received << [sym, args, block]}
16
+ begin
17
+ return self if __mock_handler.null_object?
18
+ super(sym, *args, &block)
19
+ rescue NoMethodError
20
+ __mock_handler.raise_unexpected_message_error sym, *args
21
+ end
22
+ end
23
+
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,166 @@
1
+ module Spec
2
+ module Mocks
3
+ class MockHandler
4
+ DEFAULT_OPTIONS = {
5
+ :null_object => false,
6
+ :auto_verify => true
7
+ }
8
+
9
+ def initialize(target, name, options={})
10
+ @target = target
11
+ @name = name
12
+ @error_generator = ErrorGenerator.new target, name
13
+ @expectation_ordering = OrderGroup.new @error_generator
14
+ @expectations = []
15
+ @messages_received = []
16
+ @stubs = []
17
+ @proxied_methods = []
18
+ @options = options ? DEFAULT_OPTIONS.dup.merge(options) : DEFAULT_OPTIONS
19
+ end
20
+
21
+ def null_object?
22
+ @options[:null_object]
23
+ end
24
+
25
+ def add_message_expectation(expected_from, sym, opts={}, &block)
26
+ __add expected_from, sym, block
27
+ @expectations << MessageExpectation.new(@error_generator, @expectation_ordering, expected_from, sym, block_given? ? block : nil, 1, opts)
28
+ @expectations.last
29
+ end
30
+
31
+ def add_negative_message_expectation(expected_from, sym, &block)
32
+ __add expected_from, sym, block
33
+ @expectations << NegativeMessageExpectation.new(@error_generator, @expectation_ordering, expected_from, sym, block_given? ? block : nil)
34
+ @expectations.last
35
+ end
36
+
37
+ def add_stub(expected_from, sym)
38
+ __add expected_from, sym, nil
39
+ @stubs.unshift MethodStub.new(@error_generator, @expectation_ordering, expected_from, sym, nil)
40
+ @stubs.first
41
+ end
42
+
43
+ def verify #:nodoc:
44
+ begin
45
+ verify_expectations
46
+ ensure
47
+ reset
48
+ end
49
+ end
50
+
51
+ def reset
52
+ clear_expectations
53
+ clear_stubs
54
+ reset_proxied_methods
55
+ clear_proxied_methods
56
+ end
57
+
58
+ def received_message?(sym, *args, &block)
59
+ return true if @messages_received.find {|array| array == [sym, args, block]}
60
+ return false
61
+ end
62
+
63
+ def has_negative_expectation?(sym)
64
+ @expectations.detect {|expectation| expectation.negative_expectation_for?(sym)}
65
+ end
66
+
67
+ def message_received(sym, *args, &block)
68
+ if expectation = find_matching_expectation(sym, *args)
69
+ expectation.invoke(args, block)
70
+ elsif stub = find_matching_method_stub(sym)
71
+ stub.invoke([], block)
72
+ elsif expectation = find_almost_matching_expectation(sym, *args)
73
+ raise_unexpected_message_args_error(expectation, *args) unless has_negative_expectation?(sym) unless null_object?
74
+ else
75
+ @target.send :method_missing, sym, *args, &block
76
+ end
77
+ end
78
+
79
+ def raise_unexpected_message_args_error(expectation, *args)
80
+ @error_generator.raise_unexpected_message_args_error expectation, *args
81
+ end
82
+
83
+ def raise_unexpected_message_error(sym, *args)
84
+ @error_generator.raise_unexpected_message_error sym, *args
85
+ end
86
+
87
+ private
88
+
89
+ def __add(expected_from, sym, block)
90
+ # TODO - this is the only reference in the 'spec/mocks' to the Runner
91
+ current_spec = Runner::Specification.current
92
+ current_spec.after_teardown {verify} if current_spec && @options[:auto_verify]
93
+ define_expected_method(sym)
94
+ end
95
+
96
+ def define_expected_method(sym)
97
+ if target_responds_to?(sym) && !@proxied_methods.include?(sym)
98
+ @proxied_methods << sym
99
+ metaclass.__send__(:alias_method, munge(sym), sym)
100
+ end
101
+
102
+ metaclass_eval(<<-EOF, __FILE__, __LINE__)
103
+ def #{sym}(*args, &block)
104
+ __mock_handler.message_received :#{sym}, *args, &block
105
+ end
106
+ EOF
107
+ end
108
+
109
+ def target_responds_to?(sym)
110
+ return @target.send(munge(:respond_to?),sym) if @already_proxied_respond_to
111
+ return @already_proxied_respond_to = true if sym == :respond_to?
112
+ return @target.respond_to?(sym)
113
+ end
114
+
115
+ def munge(sym)
116
+ "proxied_by_rspec__#{sym.to_s}".to_sym
117
+ end
118
+
119
+ def clear_expectations
120
+ @expectations.clear
121
+ end
122
+
123
+ def clear_stubs
124
+ @stubs.clear
125
+ end
126
+
127
+ def clear_proxied_methods
128
+ @proxied_methods.clear
129
+ end
130
+
131
+ def metaclass_eval(str, filename, lineno)
132
+ metaclass.class_eval(str, filename, lineno)
133
+ end
134
+
135
+ def metaclass
136
+ (class << @target; self; end)
137
+ end
138
+
139
+ def verify_expectations
140
+ @expectations.each do |expectation|
141
+ expectation.verify_messages_received
142
+ end
143
+ end
144
+
145
+ def reset_proxied_methods
146
+ @proxied_methods.each do |sym|
147
+ metaclass.__send__(:alias_method, sym, munge(sym))
148
+ metaclass.__send__(:undef_method, munge(sym))
149
+ end
150
+ end
151
+
152
+ def find_matching_expectation(sym, *args)
153
+ @expectations.find {|expectation| expectation.matches(sym, args)}
154
+ end
155
+
156
+ def find_almost_matching_expectation(sym, *args)
157
+ @expectations.find {|expectation| expectation.matches_name_but_not_args(sym, args)}
158
+ end
159
+
160
+ def find_matching_method_stub(sym)
161
+ @stubs.find {|stub| stub.matches(sym, [])}
162
+ end
163
+
164
+ end
165
+ end
166
+ end
@@ -0,0 +1,29 @@
1
+ module Spec
2
+ module Mocks
3
+ class OrderGroup
4
+ def initialize error_generator
5
+ @error_generator = error_generator
6
+ @ordering = Array.new
7
+ end
8
+
9
+ def register(expectation)
10
+ @ordering << expectation
11
+ end
12
+
13
+ def ready_for?(expectation)
14
+ return @ordering.first == expectation
15
+ end
16
+
17
+ def consume
18
+ @ordering.shift
19
+ end
20
+
21
+ def handle_order_constraint expectation
22
+ return unless @ordering.include? expectation
23
+ return consume if ready_for?(expectation)
24
+ @error_generator.raise_out_of_order_error expectation.sym
25
+ end
26
+
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,173 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ # Define a task library for running RSpec contexts.
4
+
5
+ require 'rake'
6
+ require 'rake/tasklib'
7
+
8
+ module Spec
9
+ module Rake
10
+
11
+ # A Rake task that runs a set of RSpec contexts.
12
+ #
13
+ # Example:
14
+ #
15
+ # Spec::Rake::SpecTask.new do |t|
16
+ # t.warning = true
17
+ # t.rcov = true
18
+ # end
19
+ #
20
+ # This will create a task that can be run with:
21
+ #
22
+ # rake spec
23
+ #
24
+ class SpecTask < ::Rake::TaskLib
25
+
26
+ # Name of spec task. (default is :spec)
27
+ attr_accessor :name
28
+
29
+ # Array of directories to be added to $LOAD_PATH before running the
30
+ # specs. Defaults to ['<the absolute path to RSpec's lib directory>']
31
+ attr_accessor :libs
32
+
33
+ # If true, requests that the specs be run with the warning flag set.
34
+ # E.g. warning=true implies "ruby -w" used to run the specs. Defaults to false.
35
+ attr_accessor :warning
36
+
37
+ # Glob pattern to match spec files. (default is 'spec/**/*_spec.rb')
38
+ attr_accessor :pattern
39
+
40
+ # Array of commandline options to pass to RSpec. Defaults to [].
41
+ attr_accessor :spec_opts
42
+
43
+ # Where RSpec's output is written. Defaults to STDOUT.
44
+ attr_accessor :out
45
+
46
+ # Whether or not to use RCov (default is false)
47
+ # See http://eigenclass.org/hiki.rb?rcov
48
+ attr_accessor :rcov
49
+
50
+ # Array of commandline options to pass to RCov. Defaults to ['--exclude', 'lib\/spec,bin\/spec'].
51
+ # Ignored if rcov=false
52
+ attr_accessor :rcov_opts
53
+
54
+ # Directory where the RCov report is written. Defaults to "coverage"
55
+ # Ignored if rcov=false
56
+ attr_accessor :rcov_dir
57
+
58
+ # Array of commandline options to pass to ruby. Defaults to [].
59
+ attr_accessor :ruby_opts
60
+
61
+ # Whether or not to fail Rake when an error occurs (typically when specs fail).
62
+ # Defaults to true.
63
+ attr_accessor :fail_on_error
64
+
65
+ # A message to print to stdout when there are failures.
66
+ attr_accessor :failure_message
67
+
68
+ # Explicitly define the list of spec files to be included in a
69
+ # spec. +list+ is expected to be an array of file names (a
70
+ # FileList is acceptable). If both +pattern+ and +spec_files+ are
71
+ # used, then the list of spec files is the union of the two.
72
+ def spec_files=(list)
73
+ @spec_files = list
74
+ end
75
+
76
+ # Create a specing task.
77
+ def initialize(name=:spec)
78
+ @name = name
79
+ @libs = [File.expand_path(File.dirname(__FILE__) + '/../../../lib')]
80
+ @pattern = nil
81
+ @spec_files = nil
82
+ @spec_opts = []
83
+ @warning = false
84
+ @ruby_opts = []
85
+ @out = nil
86
+ @fail_on_error = true
87
+ @rcov = false
88
+ @rcov_opts = ['--exclude', 'lib\/spec,bin\/spec,config\/boot.rb']
89
+ @rcov_dir = "coverage"
90
+
91
+ yield self if block_given?
92
+ @pattern = 'spec/**/*_spec.rb' if @pattern.nil? && @spec_files.nil?
93
+ define
94
+ end
95
+
96
+ def define
97
+ spec_script = File.expand_path(File.dirname(__FILE__) + '/../../../bin/spec')
98
+
99
+ lib_path = @libs.join(File::PATH_SEPARATOR)
100
+ actual_name = Hash === name ? name.keys.first : name
101
+ unless ::Rake.application.last_comment
102
+ desc "Run RSpec for #{actual_name}" + (@rcov ? " using RCov" : "")
103
+ end
104
+ task @name do
105
+ RakeFileUtils.verbose(@verbose) do
106
+ ruby_opts = @ruby_opts.clone
107
+ ruby_opts.push( "-I\"#{lib_path}\"" )
108
+ ruby_opts.push( "-S rcov" ) if @rcov
109
+ ruby_opts.push( "-w" ) if @warning
110
+
111
+ redirect = @out.nil? ? "" : " > \"#{@out}\""
112
+
113
+ unless spec_file_list.empty?
114
+ # ruby [ruby_opts] -Ilib -S rcov [rcov_opts] bin/spec -- [spec_opts] examples
115
+ # or
116
+ # ruby [ruby_opts] -Ilib bin/spec [spec_opts] examples
117
+ begin
118
+ ruby(
119
+ ruby_opts.join(" ") + " " +
120
+ rcov_option_list +
121
+ (@rcov ? %[ -o "#{@rcov_dir}" ] : "") +
122
+ '"' + spec_script + '"' + " " +
123
+ (@rcov ? "-- " : "") +
124
+ spec_file_list.collect { |fn| %["#{fn}"] }.join(' ') + " " +
125
+ spec_option_list + " " +
126
+ redirect
127
+ )
128
+ rescue => e
129
+ puts @failure_message if @failure_message
130
+ raise e if @fail_on_error
131
+ end
132
+ end
133
+ end
134
+ end
135
+
136
+ if @rcov
137
+ desc "Remove rcov products for #{actual_name}"
138
+ task paste("clobber_", actual_name) do
139
+ rm_r @rcov_dir rescue nil
140
+ end
141
+
142
+ clobber_task = paste("clobber_", actual_name)
143
+ task :clobber => [clobber_task]
144
+
145
+ task actual_name => clobber_task
146
+ end
147
+ self
148
+ end
149
+
150
+ def rcov_option_list # :nodoc:
151
+ return "" unless @rcov
152
+ ENV['RCOVOPTS'] || @rcov_opts.join(" ") || ""
153
+ end
154
+
155
+ def spec_option_list # :nodoc:
156
+ ENV['RSPECOPTS'] || @spec_opts.join(" ") || ""
157
+ end
158
+
159
+ def spec_file_list # :nodoc:
160
+ if ENV['SPEC']
161
+ FileList[ ENV['SPEC'] ]
162
+ else
163
+ result = []
164
+ result += @spec_files.to_a if @spec_files
165
+ result += FileList[ @pattern ].to_a if @pattern
166
+ FileList[result]
167
+ end
168
+ end
169
+
170
+ end
171
+ end
172
+ end
173
+
@@ -0,0 +1,47 @@
1
+ module RCov
2
+ # A task that can verify that the RCov coverage doesn't
3
+ # drop below a certain threshold. It should be run after
4
+ # running Spec::Rake::SpecTask.
5
+ class VerifyTask < Rake::TaskLib
6
+ # Name of the task. Defaults to :verify_rcov
7
+ attr_accessor :name
8
+
9
+ # Path to the index.html file generated by RCov, which
10
+ # is the file containing the total coverage.
11
+ # Defaults to 'coverage/index.html'
12
+ attr_accessor :index_html
13
+
14
+ # Whether or not to output details. Defaults to true.
15
+ attr_accessor :verbose
16
+
17
+ # The threshold value (in percent) for coverage. If the
18
+ # actual coverage is not equal to this value, the task will raise an
19
+ # exception.
20
+ attr_accessor :threshold
21
+
22
+ def initialize(name=:verify_rcov)
23
+ @name = name
24
+ @index_html = 'coverage/index.html'
25
+ @verbose = true
26
+ yield self if block_given?
27
+ raise "Threshold must be set" if @threshold.nil?
28
+ define
29
+ end
30
+
31
+ def define
32
+ desc "Verify that rcov coverage is at least #{threshold}%"
33
+ task @name do
34
+ total_coverage = nil
35
+ File.open(index_html).each_line do |line|
36
+ if line =~ /<tt.*>(\d+\.\d+)%<\/tt>&nbsp;<\/td>/
37
+ total_coverage = eval($1)
38
+ break
39
+ end
40
+ end
41
+ puts "Coverage: #{total_coverage}% (threshold: #{threshold}%)" if verbose
42
+ raise "Coverage must be at least #{threshold}% but was #{total_coverage}%" if total_coverage < threshold
43
+ raise "Coverage has increased above the threshold of #{threshold}% to #{total_coverage}%. You should update your threshold value." if total_coverage > threshold
44
+ end
45
+ end
46
+ end
47
+ end