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,27 @@
1
+ module Spec
2
+ module Runner
3
+ module Formatter
4
+ class ProgressBarFormatter < BaseTextFormatter
5
+ def add_context(name, first)
6
+ @output.puts if first
7
+ STDOUT.flush
8
+ end
9
+
10
+ def spec_failed(name, counter, failure)
11
+ @output.print failure.expectation_not_met? ? red('F') : magenta('F')
12
+ STDOUT.flush
13
+ end
14
+
15
+ def spec_passed(name)
16
+ @output.print green('.')
17
+ STDOUT.flush
18
+ end
19
+
20
+ def start_dump
21
+ @output.puts
22
+ STDOUT.flush
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,22 @@
1
+ module Spec
2
+ module Runner
3
+ module Formatter
4
+ class RdocFormatter < BaseTextFormatter
5
+ def add_context(name, first)
6
+ @output.print "# #{name}\n"
7
+ STDOUT.flush
8
+ end
9
+
10
+ def spec_passed(name)
11
+ @output.print "# * #{name}\n"
12
+ STDOUT.flush
13
+ end
14
+
15
+ def spec_failed(name, counter, failure)
16
+ @output.print "# * #{name} [#{counter} - FAILED]\n"
17
+ STDOUT.flush
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,23 @@
1
+ module Spec
2
+ module Runner
3
+ module Formatter
4
+ class SpecdocFormatter < BaseTextFormatter
5
+ def add_context(name, first)
6
+ @output.puts
7
+ @output.puts name
8
+ STDOUT.flush
9
+ end
10
+
11
+ def spec_failed(name, counter, failure)
12
+ @output.puts failure.expectation_not_met? ? red("- #{name} (FAILED - #{counter})") : magenta("- #{name} (ERROR - #{counter})")
13
+ STDOUT.flush
14
+ end
15
+
16
+ def spec_passed(name)
17
+ @output.print green("- #{name}\n")
18
+ STDOUT.flush
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,71 @@
1
+ begin
2
+ require 'rubygems'
3
+ require 'heckle'
4
+ rescue LoadError ; raise "You must gem install heckle to use --heckle" ; end
5
+
6
+ module Spec
7
+ module Runner
8
+ # Creates a new Heckler configured to heckle all methods in the classes
9
+ # whose name matches +filter+
10
+ class HeckleRunner
11
+ def initialize(filter, heckle_class=Heckler)
12
+ @filter = filter
13
+ @heckle_class = heckle_class
14
+ end
15
+
16
+ # Runs all the contexts held by +context_runner+ once for each of the
17
+ # methods in the matched classes.
18
+ def heckle_with(context_runner)
19
+ if @filter =~ /(.*)[#\.](.*)/
20
+ heckle_method($1, $2)
21
+ else
22
+ heckle_class_or_module(@filter)
23
+ end
24
+ end
25
+
26
+ def heckle_method(class_name, method_name)
27
+ verify_constant(class_name)
28
+ heckle = @heckle_class.new(class_name, method_name, context_runner)
29
+ heckle.validate
30
+ end
31
+
32
+ def heckle_class_or_module(class_or_module_name)
33
+ verify_constant(class_or_module_name)
34
+ pattern = /^#{class_or_module_name}/
35
+ classes = []
36
+ ObjectSpace.each_object(Class) do |klass|
37
+ classes << klass if klass.name =~ pattern
38
+ end
39
+
40
+ classes.each do |klass|
41
+ klass.instance_methods(false).each do |method_name|
42
+ heckle = @heckle_class.new(klass.name, method_name, context_runner)
43
+ heckle.validate
44
+ end
45
+ end
46
+ end
47
+
48
+ def verify_constant(name)
49
+ begin
50
+ # This is defined in Heckle
51
+ name.to_class
52
+ rescue
53
+ raise "Heckling failed - \"#{name}\" is not a known class or module"
54
+ end
55
+ end
56
+ end
57
+
58
+ #Supports Heckle 1.2 and prior (earlier versions used Heckle::Base)
59
+ class Heckler < (Heckle.const_defined?(:Base) ? Heckle::Base : Heckle)
60
+ def initialize(klass_name, method_name, context_runner)
61
+ super(klass_name, method_name)
62
+ @context_runner = context_runner
63
+ end
64
+
65
+ def tests_pass?
66
+ failure_count = @context_runner.run(false)
67
+ failure_count == 0
68
+ end
69
+ end
70
+ end
71
+ end
@@ -0,0 +1,10 @@
1
+ module Spec
2
+ module Runner
3
+ # Dummy implementation for Windows that just fails (Heckle is not supported on Windows)
4
+ class HeckleRunner
5
+ def initialize(filter)
6
+ raise "Heckle not supported on Windows"
7
+ end
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,224 @@
1
+ require 'ostruct'
2
+ require 'optparse'
3
+ require 'spec/runner/spec_parser'
4
+ require 'spec/runner/formatter'
5
+ require 'spec/runner/backtrace_tweaker'
6
+ require 'spec/runner/reporter'
7
+ require 'spec/runner/context_runner'
8
+
9
+ module Spec
10
+ module Runner
11
+ class OptionParser
12
+ def initialize
13
+ @spec_parser = SpecParser.new
14
+ @file_factory = File
15
+ end
16
+
17
+ def create_context_runner(args, err, out, warn_if_no_files)
18
+ options = parse(args, err, out, warn_if_no_files)
19
+ # Some exit points in parse (--generate-options, --drb) don't return the options,
20
+ # but hand over control. In that case we don't want to continue.
21
+ return nil unless options.is_a?(OpenStruct)
22
+
23
+ formatter = options.formatter_type.new(options.out, options.dry_run, options.colour)
24
+ options.reporter = Reporter.new(formatter, options.backtrace_tweaker)
25
+
26
+ # this doesn't really belong here.
27
+ # it should, but the way things are coupled, it doesn't
28
+ if options.differ_class
29
+ Spec::Expectations.differ = options.differ_class.new(options.diff_format, options.context_lines, options.colour)
30
+ end
31
+
32
+ unless options.generate
33
+ ContextRunner.new(options)
34
+ end
35
+ end
36
+
37
+ def parse(args, err, out, warn_if_no_files)
38
+ options_file = nil
39
+ args_copy = args.dup
40
+ options = OpenStruct.new
41
+ options.out = (out == STDOUT ? Kernel : out)
42
+ options.formatter_type = Formatter::ProgressBarFormatter
43
+ options.backtrace_tweaker = QuietBacktraceTweaker.new
44
+ options.spec_name = nil
45
+
46
+ opts = ::OptionParser.new do |opts|
47
+ opts.banner = "Usage: spec [options] (FILE|DIRECTORY|GLOB)+"
48
+ opts.separator ""
49
+
50
+ opts.on("-D", "--diff [FORMAT]", "Show diff of objects that are expected to be equal when they are not",
51
+ "Builtin formats: unified|u|context|c",
52
+ "You can also specify a custom differ class",
53
+ "(in which case you should also specify --require)") do |format|
54
+
55
+ # TODO make context_lines settable
56
+ options.context_lines = 3
57
+
58
+ case format
59
+ when 'context', 'c'
60
+ options.diff_format = :context
61
+ when 'unified', 'u', '', nil
62
+ options.diff_format = :unified
63
+ end
64
+
65
+ if [:context,:unified].include? options.diff_format
66
+ require 'spec/expectations/differs/default'
67
+ options.differ_class = Spec::Expectations::Differs::Default
68
+ else
69
+ begin
70
+ options.diff_format = :custom
71
+ options.differ_class = eval(format)
72
+ rescue NameError
73
+ err.puts "Couldn't find differ class #{format}"
74
+ err.puts "Make sure the --require option is specified *before* --diff"
75
+ exit if out == $stdout
76
+ end
77
+ end
78
+
79
+ end
80
+
81
+ opts.on("-c", "--colour", "--color", "Show coloured (red/green) output") do
82
+ options.colour = true
83
+ end
84
+
85
+ opts.on("-s", "--spec SPECIFICATION_NAME", "Execute context or specification with matching name") do |spec_name|
86
+ options.spec_name = spec_name
87
+ end
88
+
89
+ opts.on("-l", "--line LINE_NUMBER", Integer, "Execute context or specification at given line") do |line_number|
90
+ options.line_number = line_number.to_i
91
+ end
92
+
93
+ opts.on("-f", "--format FORMAT", "Builtin formats: specdoc|s|rdoc|r|html|h",
94
+ "You can also specify a custom formatter class",
95
+ "(in which case you should also specify --require)") do |format|
96
+ case format
97
+ when 'specdoc', 's'
98
+ options.formatter_type = Formatter::SpecdocFormatter
99
+ when 'html', 'h'
100
+ options.formatter_type = Formatter::HtmlFormatter
101
+ when 'rdoc', 'r'
102
+ options.formatter_type = Formatter::RdocFormatter
103
+ options.dry_run = true
104
+ else
105
+ begin
106
+ options.formatter_type = eval(format)
107
+ rescue NameError
108
+ err.puts "Couldn't find formatter class #{format}"
109
+ err.puts "Make sure the --require option is specified *before* --format"
110
+ exit if out == $stdout
111
+ end
112
+ end
113
+ end
114
+
115
+ opts.on("-r", "--require FILE", "Require FILE before running specs",
116
+ "Useful for loading custom formatters or other extensions",
117
+ "If this option is used it must come before the others") do |req|
118
+ req.split(",").each{|file| require file}
119
+ end
120
+
121
+ opts.on("-b", "--backtrace", "Output full backtrace") do
122
+ options.backtrace_tweaker = NoisyBacktraceTweaker.new
123
+ end
124
+
125
+ opts.on("-H", "--heckle CODE", "If all specs pass, this will run your specs many times, mutating",
126
+ "the specced code a little each time. The intent is that specs",
127
+ "*should* fail, and RSpec will tell you if they don't.",
128
+ "CODE should be either Some::Module, Some::Class or Some::Fabulous#method}") do |heckle|
129
+ heckle_runner = PLATFORM == 'i386-mswin32' ? 'spec/runner/heckle_runner_win' : 'spec/runner/heckle_runner'
130
+ require heckle_runner
131
+ options.heckle_runner = HeckleRunner.new(heckle)
132
+ end
133
+
134
+ opts.on("-d", "--dry-run", "Don't execute specs") do
135
+ options.dry_run = true
136
+ end
137
+
138
+ opts.on("-o", "--out OUTPUT_FILE", "Path to output file (defaults to STDOUT)") do |out_file|
139
+ options.out = File.new(out_file, 'w')
140
+ end
141
+
142
+ opts.on("-O", "--options PATH", "Read options from a file") do |options_file|
143
+ # Remove the --options option and the argument before writing to file
144
+ index = args_copy.index("-O") || args_copy.index("--options")
145
+ args_copy.delete_at(index)
146
+ args_copy.delete_at(index)
147
+
148
+ new_args = args_copy + IO.readlines(options_file).each {|s| s.chomp!}
149
+ return CommandLine.run(new_args, err, out, true, warn_if_no_files)
150
+ end
151
+
152
+ opts.on("-G", "--generate-options PATH", "Generate an options file for --options") do |options_file|
153
+ # Remove the --generate-options option and the argument before writing to file
154
+ index = args_copy.index("-G") || args_copy.index("--generate-options")
155
+ args_copy.delete_at(index)
156
+ args_copy.delete_at(index)
157
+
158
+ File.open(options_file, 'w') do |io|
159
+ io.puts args_copy.join("\n")
160
+ end
161
+ out.puts "\nOptions written to #{options_file}. You can now use these options with:"
162
+ out.puts "spec --options #{options_file}"
163
+ options.generate = true
164
+ end
165
+
166
+ opts.on("-X", "--drb", "Run specs via DRb. (For example against script/rails_spec_server)") do |options_file|
167
+ # Remove the --options option and the argument before writing to file
168
+ index = args_copy.index("-X") || args_copy.index("--drb")
169
+ args_copy.delete_at(index)
170
+
171
+ return DrbCommandLine.run(args_copy, err, out, true, warn_if_no_files)
172
+ end
173
+
174
+ opts.on("-v", "--version", "Show version") do
175
+ out.puts ::Spec::VERSION::DESCRIPTION
176
+ exit if out == $stdout
177
+ end
178
+
179
+ opts.on_tail("-h", "--help", "You're looking at it") do
180
+ out.puts opts
181
+ exit if out == $stdout
182
+ end
183
+
184
+ end
185
+ opts.parse!(args)
186
+
187
+ if args.empty? && warn_if_no_files
188
+ err.puts "No files specified."
189
+ err.puts opts
190
+ exit(6) if err == $stderr
191
+ end
192
+
193
+ if options.line_number
194
+ set_spec_from_line_number(options, args, err)
195
+ end
196
+
197
+ options
198
+ end
199
+
200
+ def set_spec_from_line_number(options, args, err)
201
+ unless options.spec_name
202
+ if args.length == 1
203
+ if @file_factory.file?(args[0])
204
+ source = @file_factory.open(args[0])
205
+ options.spec_name = @spec_parser.spec_name_for(source, options.line_number)
206
+ elsif @file_factory.directory?(args[0])
207
+ err.puts "You must specify one file, not a directory when using the --line option"
208
+ exit(1) if err == $stderr
209
+ else
210
+ err.puts "#{args[0]} does not exist"
211
+ exit(2) if err == $stderr
212
+ end
213
+ else
214
+ err.puts "Only one file can be specified when using the --line option: #{args.inspect}"
215
+ exit(3) if err == $stderr
216
+ end
217
+ else
218
+ err.puts "You cannot use both --line and --spec"
219
+ exit(4) if err == $stderr
220
+ end
221
+ end
222
+ end
223
+ end
224
+ end
@@ -0,0 +1,105 @@
1
+ module Spec
2
+ module Runner
3
+ class Reporter
4
+
5
+ def initialize(formatter, backtrace_tweaker)
6
+ @formatter = formatter
7
+ @backtrace_tweaker = backtrace_tweaker
8
+ clear!
9
+ end
10
+
11
+ def add_context(name)
12
+ #TODO - @context_names.empty? tells the formatter whether this is the first context or not - that's a little slippery
13
+ @formatter.add_context(name, @context_names.empty?)
14
+ @context_names << name
15
+ end
16
+
17
+ def spec_started(name)
18
+ @spec_names << name
19
+ @formatter.spec_started(name)
20
+ end
21
+
22
+ def spec_finished(name, error=nil, failure_location=nil)
23
+ if error.nil?
24
+ spec_passed(name)
25
+ else
26
+ @backtrace_tweaker.tweak_backtrace(error, failure_location)
27
+ spec_failed(name, Failure.new(@context_names.last, name, error))
28
+ end
29
+ end
30
+
31
+ def start(number_of_specs)
32
+ clear!
33
+ @start_time = Time.new
34
+ @formatter.start(number_of_specs)
35
+ end
36
+
37
+ def end
38
+ @end_time = Time.new
39
+ end
40
+
41
+ # Dumps the summary and returns the total number of failures
42
+ def dump
43
+ @formatter.start_dump
44
+ dump_failures
45
+ @formatter.dump_summary(duration, @spec_names.length, @failures.length)
46
+ @failures.length
47
+ end
48
+
49
+ private
50
+
51
+ def clear!
52
+ @context_names = []
53
+ @failures = []
54
+ @spec_names = []
55
+ @start_time = nil
56
+ @end_time = nil
57
+ end
58
+
59
+ def dump_failures
60
+ return if @failures.empty?
61
+ @failures.inject(1) do |index, failure|
62
+ @formatter.dump_failure(index, failure)
63
+ index + 1
64
+ end
65
+ end
66
+
67
+ def duration
68
+ return @end_time - @start_time unless (@end_time.nil? or @start_time.nil?)
69
+ return "0.0"
70
+ end
71
+
72
+ def spec_passed(name)
73
+ @formatter.spec_passed(name)
74
+ end
75
+
76
+ def spec_failed(name, failure)
77
+ @failures << failure
78
+ @formatter.spec_failed(name, @failures.length, failure)
79
+ end
80
+
81
+ class Failure
82
+ attr_reader :exception
83
+
84
+ def initialize(context_name, spec_name, exception)
85
+ @context_name = context_name
86
+ @spec_name = spec_name
87
+ @exception = exception
88
+ end
89
+
90
+ def header
91
+ if expectation_not_met?
92
+ "'#{@context_name} #{@spec_name}' FAILED"
93
+ else
94
+ "#{@exception.class.name} in '#{@context_name} #{@spec_name}'"
95
+ end
96
+ end
97
+
98
+ def expectation_not_met?
99
+ @exception.is_a?(Spec::Expectations::ExpectationNotMetError)
100
+ end
101
+
102
+ end
103
+ end
104
+ end
105
+ end