paynow_sdk 0.1.0

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 (286) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +8 -0
  3. data/.travis.yml +6 -0
  4. data/Gemfile +8 -0
  5. data/Gemfile.lock +30 -0
  6. data/README.md +36 -0
  7. data/Rakefile +10 -0
  8. data/bin/console +14 -0
  9. data/bin/setup +8 -0
  10. data/lib/paynow_sdk.rb +269 -0
  11. data/lib/paynow_sdk/version.rb +3 -0
  12. data/paynow_sdk.gemspec +27 -0
  13. data/vendor/cache/ansi-1.5.0.gem +0 -0
  14. data/vendor/cache/builder-3.2.4.gem +0 -0
  15. data/vendor/cache/minitest-5.14.1.gem +0 -0
  16. data/vendor/cache/minitest-reporters-1.4.2.gem +0 -0
  17. data/vendor/cache/rake-12.3.3.gem +0 -0
  18. data/vendor/cache/ruby-progressbar-1.10.1.gem +0 -0
  19. data/vendor/cache/ruby/2.7.0/bin/rake +27 -0
  20. data/vendor/cache/ruby/2.7.0/cache/ansi-1.5.0.gem +0 -0
  21. data/vendor/cache/ruby/2.7.0/cache/builder-3.2.4.gem +0 -0
  22. data/vendor/cache/ruby/2.7.0/cache/minitest-5.14.1.gem +0 -0
  23. data/vendor/cache/ruby/2.7.0/cache/minitest-reporters-1.4.2.gem +0 -0
  24. data/vendor/cache/ruby/2.7.0/cache/rake-12.3.3.gem +0 -0
  25. data/vendor/cache/ruby/2.7.0/cache/ruby-progressbar-1.10.1.gem +0 -0
  26. data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/.index +77 -0
  27. data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/.yardopts +8 -0
  28. data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/DEMO.md +451 -0
  29. data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/HISTORY.md +217 -0
  30. data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/LICENSE.txt +23 -0
  31. data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/NOTICE.md +170 -0
  32. data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/README.md +91 -0
  33. data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/demo/01_ansicode.md +65 -0
  34. data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/demo/02_core.md +11 -0
  35. data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/demo/03_logger.md +30 -0
  36. data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/demo/04_progressbar.md +62 -0
  37. data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/demo/05_mixin.md +37 -0
  38. data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/demo/06_string.md +56 -0
  39. data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/demo/07_columns.md +89 -0
  40. data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/demo/08_table.md +28 -0
  41. data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/demo/09_diff.md +47 -0
  42. data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/demo/10_bbcode.md +24 -0
  43. data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/demo/11_terminal.md +8 -0
  44. data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/demo/applique/ae.rb +1 -0
  45. data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/demo/applique/output.rb +5 -0
  46. data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/lib/ansi.rb +22 -0
  47. data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/lib/ansi.yml +77 -0
  48. data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/lib/ansi/bbcode.rb +334 -0
  49. data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/lib/ansi/chain.rb +50 -0
  50. data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/lib/ansi/chart.rb +100 -0
  51. data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/lib/ansi/code.rb +349 -0
  52. data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/lib/ansi/columns.rb +197 -0
  53. data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/lib/ansi/constants.rb +25 -0
  54. data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/lib/ansi/core.rb +30 -0
  55. data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/lib/ansi/diff.rb +215 -0
  56. data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/lib/ansi/hexdump.rb +122 -0
  57. data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/lib/ansi/logger.rb +211 -0
  58. data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/lib/ansi/mixin.rb +121 -0
  59. data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/lib/ansi/progressbar.rb +292 -0
  60. data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/lib/ansi/string.rb +254 -0
  61. data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/lib/ansi/table.rb +179 -0
  62. data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/lib/ansi/terminal.rb +44 -0
  63. data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/lib/ansi/terminal/curses.rb +26 -0
  64. data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/lib/ansi/terminal/stty.rb +62 -0
  65. data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/lib/ansi/terminal/termios.rb +68 -0
  66. data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/lib/ansi/terminal/win32.rb +107 -0
  67. data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/lib/ansi/version.rb +15 -0
  68. data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/test/case_ansicode.rb +43 -0
  69. data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/test/case_bbcode.rb +35 -0
  70. data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/test/case_mixin.rb +35 -0
  71. data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/test/case_progressbar.rb +21 -0
  72. data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/test/test_helper.rb +3 -0
  73. data/vendor/cache/ruby/2.7.0/gems/builder-3.2.4/CHANGES +119 -0
  74. data/vendor/cache/ruby/2.7.0/gems/builder-3.2.4/MIT-LICENSE +20 -0
  75. data/vendor/cache/ruby/2.7.0/gems/builder-3.2.4/README.md +258 -0
  76. data/vendor/cache/ruby/2.7.0/gems/builder-3.2.4/Rakefile +194 -0
  77. data/vendor/cache/ruby/2.7.0/gems/builder-3.2.4/builder.blurb +27 -0
  78. data/vendor/cache/ruby/2.7.0/gems/builder-3.2.4/builder.gemspec +45 -0
  79. data/vendor/cache/ruby/2.7.0/gems/builder-3.2.4/doc/jamis.rb +592 -0
  80. data/vendor/cache/ruby/2.7.0/gems/builder-3.2.4/doc/releases/builder-1.2.4.rdoc +31 -0
  81. data/vendor/cache/ruby/2.7.0/gems/builder-3.2.4/doc/releases/builder-2.0.0.rdoc +46 -0
  82. data/vendor/cache/ruby/2.7.0/gems/builder-3.2.4/doc/releases/builder-2.1.1.rdoc +58 -0
  83. data/vendor/cache/ruby/2.7.0/gems/builder-3.2.4/lib/blankslate.rb +138 -0
  84. data/vendor/cache/ruby/2.7.0/gems/builder-3.2.4/lib/builder.rb +14 -0
  85. data/vendor/cache/ruby/2.7.0/gems/builder-3.2.4/lib/builder/blankslate.rb +24 -0
  86. data/vendor/cache/ruby/2.7.0/gems/builder-3.2.4/lib/builder/version.rb +9 -0
  87. data/vendor/cache/ruby/2.7.0/gems/builder-3.2.4/lib/builder/xchar.rb +198 -0
  88. data/vendor/cache/ruby/2.7.0/gems/builder-3.2.4/lib/builder/xmlbase.rb +200 -0
  89. data/vendor/cache/ruby/2.7.0/gems/builder-3.2.4/lib/builder/xmlevents.rb +64 -0
  90. data/vendor/cache/ruby/2.7.0/gems/builder-3.2.4/lib/builder/xmlmarkup.rb +345 -0
  91. data/vendor/cache/ruby/2.7.0/gems/builder-3.2.4/rakelib/publish.rake +21 -0
  92. data/vendor/cache/ruby/2.7.0/gems/builder-3.2.4/rakelib/tags.rake +63 -0
  93. data/vendor/cache/ruby/2.7.0/gems/builder-3.2.4/rakelib/testing.rake +8 -0
  94. data/vendor/cache/ruby/2.7.0/gems/builder-3.2.4/test/helper.rb +13 -0
  95. data/vendor/cache/ruby/2.7.0/gems/builder-3.2.4/test/performance.rb +42 -0
  96. data/vendor/cache/ruby/2.7.0/gems/builder-3.2.4/test/preload.rb +40 -0
  97. data/vendor/cache/ruby/2.7.0/gems/builder-3.2.4/test/test_blankslate.rb +208 -0
  98. data/vendor/cache/ruby/2.7.0/gems/builder-3.2.4/test/test_eventbuilder.rb +151 -0
  99. data/vendor/cache/ruby/2.7.0/gems/builder-3.2.4/test/test_markupbuilder.rb +617 -0
  100. data/vendor/cache/ruby/2.7.0/gems/builder-3.2.4/test/test_method_caching.rb +63 -0
  101. data/vendor/cache/ruby/2.7.0/gems/builder-3.2.4/test/test_namecollision.rb +40 -0
  102. data/vendor/cache/ruby/2.7.0/gems/builder-3.2.4/test/test_xchar.rb +85 -0
  103. data/vendor/cache/ruby/2.7.0/gems/minitest-5.14.1/.autotest +34 -0
  104. data/vendor/cache/ruby/2.7.0/gems/minitest-5.14.1/History.rdoc +1392 -0
  105. data/vendor/cache/ruby/2.7.0/gems/minitest-5.14.1/Manifest.txt +27 -0
  106. data/vendor/cache/ruby/2.7.0/gems/minitest-5.14.1/README.rdoc +764 -0
  107. data/vendor/cache/ruby/2.7.0/gems/minitest-5.14.1/Rakefile +74 -0
  108. data/vendor/cache/ruby/2.7.0/gems/minitest-5.14.1/design_rationale.rb +52 -0
  109. data/vendor/cache/ruby/2.7.0/gems/minitest-5.14.1/lib/hoe/minitest.rb +32 -0
  110. data/vendor/cache/ruby/2.7.0/gems/minitest-5.14.1/lib/minitest.rb +1056 -0
  111. data/vendor/cache/ruby/2.7.0/gems/minitest-5.14.1/lib/minitest/assertions.rb +807 -0
  112. data/vendor/cache/ruby/2.7.0/gems/minitest-5.14.1/lib/minitest/autorun.rb +13 -0
  113. data/vendor/cache/ruby/2.7.0/gems/minitest-5.14.1/lib/minitest/benchmark.rb +455 -0
  114. data/vendor/cache/ruby/2.7.0/gems/minitest-5.14.1/lib/minitest/expectations.rb +303 -0
  115. data/vendor/cache/ruby/2.7.0/gems/minitest-5.14.1/lib/minitest/hell.rb +11 -0
  116. data/vendor/cache/ruby/2.7.0/gems/minitest-5.14.1/lib/minitest/mock.rb +240 -0
  117. data/vendor/cache/ruby/2.7.0/gems/minitest-5.14.1/lib/minitest/parallel.rb +70 -0
  118. data/vendor/cache/ruby/2.7.0/gems/minitest-5.14.1/lib/minitest/pride.rb +4 -0
  119. data/vendor/cache/ruby/2.7.0/gems/minitest-5.14.1/lib/minitest/pride_plugin.rb +142 -0
  120. data/vendor/cache/ruby/2.7.0/gems/minitest-5.14.1/lib/minitest/spec.rb +342 -0
  121. data/vendor/cache/ruby/2.7.0/gems/minitest-5.14.1/lib/minitest/test.rb +220 -0
  122. data/vendor/cache/ruby/2.7.0/gems/minitest-5.14.1/lib/minitest/unit.rb +45 -0
  123. data/vendor/cache/ruby/2.7.0/gems/minitest-5.14.1/test/minitest/metametameta.rb +136 -0
  124. data/vendor/cache/ruby/2.7.0/gems/minitest-5.14.1/test/minitest/test_minitest_assertions.rb +1567 -0
  125. data/vendor/cache/ruby/2.7.0/gems/minitest-5.14.1/test/minitest/test_minitest_benchmark.rb +137 -0
  126. data/vendor/cache/ruby/2.7.0/gems/minitest-5.14.1/test/minitest/test_minitest_mock.rb +872 -0
  127. data/vendor/cache/ruby/2.7.0/gems/minitest-5.14.1/test/minitest/test_minitest_reporter.rb +299 -0
  128. data/vendor/cache/ruby/2.7.0/gems/minitest-5.14.1/test/minitest/test_minitest_spec.rb +1061 -0
  129. data/vendor/cache/ruby/2.7.0/gems/minitest-5.14.1/test/minitest/test_minitest_test.rb +1084 -0
  130. data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/.gitignore +28 -0
  131. data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/.rubocop.yml +77 -0
  132. data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/.ruby-gemset +1 -0
  133. data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/.travis.yml +15 -0
  134. data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/.yardopts +6 -0
  135. data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/CHANGELOG.md +120 -0
  136. data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/Gemfile +2 -0
  137. data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/LICENSE +20 -0
  138. data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/README.md +135 -0
  139. data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/Rakefile +70 -0
  140. data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/appveyor.yml +22 -0
  141. data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/assets/default-reporter.png +0 -0
  142. data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/assets/mean_time_reporter.png +0 -0
  143. data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/assets/progress-reporter.png +0 -0
  144. data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/assets/spec-reporter.png +0 -0
  145. data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/lib/minitest/extensible_backtrace_filter.rb +67 -0
  146. data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/lib/minitest/minitest_reporter_plugin.rb +82 -0
  147. data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/lib/minitest/old_activesupport_fix.rb +24 -0
  148. data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/lib/minitest/relative_position.rb +26 -0
  149. data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/lib/minitest/reporters.rb +91 -0
  150. data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/lib/minitest/reporters/ansi.rb +30 -0
  151. data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/lib/minitest/reporters/base_reporter.rb +136 -0
  152. data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/lib/minitest/reporters/default_reporter.rb +245 -0
  153. data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/lib/minitest/reporters/html_reporter.rb +224 -0
  154. data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/lib/minitest/reporters/junit_reporter.rb +174 -0
  155. data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/lib/minitest/reporters/mean_time_reporter.rb +388 -0
  156. data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/lib/minitest/reporters/progress_reporter.rb +104 -0
  157. data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/lib/minitest/reporters/ruby_mate_reporter.rb +54 -0
  158. data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/lib/minitest/reporters/rubymine_reporter.rb +116 -0
  159. data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/lib/minitest/reporters/spec_reporter.rb +61 -0
  160. data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/lib/minitest/reporters/version.rb +5 -0
  161. data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/lib/minitest/templates/index.html.erb +85 -0
  162. data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/minitest-reporters.gemspec +31 -0
  163. data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/test/fixtures/junit_filename_bug_example_test.rb +41 -0
  164. data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/test/fixtures/mean_time_test.rb +36 -0
  165. data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/test/fixtures/progress_detailed_skip_test.rb +8 -0
  166. data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/test/fixtures/progress_test.rb +8 -0
  167. data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/test/fixtures/sample_test.rb +15 -0
  168. data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/test/fixtures/spec_test.rb +18 -0
  169. data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/test/gallery/bad_test.rb +25 -0
  170. data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/test/gallery/good_test.rb +14 -0
  171. data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/test/integration/reporters/junit_reporter_test.rb +12 -0
  172. data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/test/integration/reporters/mean_time_reporter_test.rb +7 -0
  173. data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/test/integration/reporters/progress_reporter_test.rb +40 -0
  174. data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/test/test_helper.rb +22 -0
  175. data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/test/unit/minitest/extensible_backtrace_filter_test.rb +42 -0
  176. data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/test/unit/minitest/junit_reporter_test.rb +46 -0
  177. data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/test/unit/minitest/mean_time_reporter_unit_test.rb +149 -0
  178. data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/test/unit/minitest/minitest_reporter_plugin_test.rb +14 -0
  179. data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/test/unit/minitest/reporters_test.rb +65 -0
  180. data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/test/unit/minitest/spec_reporter_test.rb +62 -0
  181. data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/CONTRIBUTING.rdoc +43 -0
  182. data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/Gemfile +3 -0
  183. data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/History.rdoc +2344 -0
  184. data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/MIT-LICENSE +21 -0
  185. data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/README.rdoc +156 -0
  186. data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/Rakefile +41 -0
  187. data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/azure-pipelines.yml +11 -0
  188. data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/bin/bundle +105 -0
  189. data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/bin/console +7 -0
  190. data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/bin/rake +29 -0
  191. data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/bin/rdoc +29 -0
  192. data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/bin/rubocop +29 -0
  193. data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/bin/setup +6 -0
  194. data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/doc/command_line_usage.rdoc +158 -0
  195. data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/doc/example/Rakefile1 +38 -0
  196. data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/doc/example/Rakefile2 +35 -0
  197. data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/doc/example/a.c +6 -0
  198. data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/doc/example/b.c +6 -0
  199. data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/doc/example/main.c +11 -0
  200. data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/doc/glossary.rdoc +42 -0
  201. data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/doc/jamis.rb +592 -0
  202. data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/doc/proto_rake.rdoc +127 -0
  203. data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/doc/rake.1 +156 -0
  204. data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/doc/rakefile.rdoc +622 -0
  205. data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/doc/rational.rdoc +151 -0
  206. data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/exe/rake +27 -0
  207. data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake.rb +71 -0
  208. data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/application.rb +824 -0
  209. data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/backtrace.rb +24 -0
  210. data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/clean.rb +78 -0
  211. data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/cloneable.rb +17 -0
  212. data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/cpu_counter.rb +107 -0
  213. data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/default_loader.rb +15 -0
  214. data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/dsl_definition.rb +195 -0
  215. data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/early_time.rb +22 -0
  216. data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/ext/core.rb +26 -0
  217. data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/ext/string.rb +176 -0
  218. data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/file_creation_task.rb +25 -0
  219. data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/file_list.rb +435 -0
  220. data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/file_task.rb +54 -0
  221. data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/file_utils.rb +137 -0
  222. data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/file_utils_ext.rb +145 -0
  223. data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/invocation_chain.rb +57 -0
  224. data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/invocation_exception_mixin.rb +17 -0
  225. data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/late_time.rb +18 -0
  226. data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/linked_list.rb +112 -0
  227. data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/loaders/makefile.rb +54 -0
  228. data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/multi_task.rb +14 -0
  229. data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/name_space.rb +38 -0
  230. data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/packagetask.rb +207 -0
  231. data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/phony.rb +16 -0
  232. data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/private_reader.rb +21 -0
  233. data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/promise.rb +100 -0
  234. data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/pseudo_status.rb +30 -0
  235. data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/rake_module.rb +67 -0
  236. data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/rake_test_loader.rb +27 -0
  237. data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/rule_recursion_overflow_error.rb +20 -0
  238. data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/scope.rb +43 -0
  239. data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/task.rb +413 -0
  240. data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/task_argument_error.rb +8 -0
  241. data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/task_arguments.rb +109 -0
  242. data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/task_manager.rb +324 -0
  243. data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/tasklib.rb +12 -0
  244. data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/testtask.rb +224 -0
  245. data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/thread_history_display.rb +49 -0
  246. data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/thread_pool.rb +163 -0
  247. data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/trace_output.rb +23 -0
  248. data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/version.rb +10 -0
  249. data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/win32.rb +51 -0
  250. data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/rake.gemspec +42 -0
  251. data/vendor/cache/ruby/2.7.0/gems/ruby-progressbar-1.10.1/LICENSE.txt +19 -0
  252. data/vendor/cache/ruby/2.7.0/gems/ruby-progressbar-1.10.1/README.md +38 -0
  253. data/vendor/cache/ruby/2.7.0/gems/ruby-progressbar-1.10.1/Rakefile +2 -0
  254. data/vendor/cache/ruby/2.7.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar.rb +22 -0
  255. data/vendor/cache/ruby/2.7.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar/base.rb +183 -0
  256. data/vendor/cache/ruby/2.7.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar/calculators/length.rb +100 -0
  257. data/vendor/cache/ruby/2.7.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar/calculators/running_average.rb +9 -0
  258. data/vendor/cache/ruby/2.7.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar/components.rb +5 -0
  259. data/vendor/cache/ruby/2.7.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar/components/bar.rb +102 -0
  260. data/vendor/cache/ruby/2.7.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar/components/percentage.rb +29 -0
  261. data/vendor/cache/ruby/2.7.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar/components/rate.rb +43 -0
  262. data/vendor/cache/ruby/2.7.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar/components/time.rb +107 -0
  263. data/vendor/cache/ruby/2.7.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar/components/title.rb +13 -0
  264. data/vendor/cache/ruby/2.7.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar/errors/invalid_progress_error.rb +4 -0
  265. data/vendor/cache/ruby/2.7.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar/format.rb +3 -0
  266. data/vendor/cache/ruby/2.7.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar/format/formatter.rb +27 -0
  267. data/vendor/cache/ruby/2.7.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar/format/molecule.rb +60 -0
  268. data/vendor/cache/ruby/2.7.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar/format/string.rb +36 -0
  269. data/vendor/cache/ruby/2.7.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar/output.rb +68 -0
  270. data/vendor/cache/ruby/2.7.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar/outputs/non_tty.rb +47 -0
  271. data/vendor/cache/ruby/2.7.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar/outputs/null.rb +33 -0
  272. data/vendor/cache/ruby/2.7.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar/outputs/tty.rb +32 -0
  273. data/vendor/cache/ruby/2.7.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar/progress.rb +118 -0
  274. data/vendor/cache/ruby/2.7.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar/refinements.rb +1 -0
  275. data/vendor/cache/ruby/2.7.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar/refinements/enumerator.rb +23 -0
  276. data/vendor/cache/ruby/2.7.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar/throttle.rb +25 -0
  277. data/vendor/cache/ruby/2.7.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar/time.rb +32 -0
  278. data/vendor/cache/ruby/2.7.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar/timer.rb +72 -0
  279. data/vendor/cache/ruby/2.7.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar/version.rb +3 -0
  280. data/vendor/cache/ruby/2.7.0/specifications/ansi-1.5.0.gemspec +42 -0
  281. data/vendor/cache/ruby/2.7.0/specifications/builder-3.2.4.gemspec +23 -0
  282. data/vendor/cache/ruby/2.7.0/specifications/minitest-5.14.1.gemspec +38 -0
  283. data/vendor/cache/ruby/2.7.0/specifications/minitest-reporters-1.4.2.gemspec +43 -0
  284. data/vendor/cache/ruby/2.7.0/specifications/rake-12.3.3.gemspec +43 -0
  285. data/vendor/cache/ruby/2.7.0/specifications/ruby-progressbar-1.10.1.gemspec +40 -0
  286. metadata +330 -0
@@ -0,0 +1,245 @@
1
+ module Minitest
2
+ module Reporters
3
+ # A reporter identical to the standard Minitest reporter except with more
4
+ # colors.
5
+ #
6
+ # Based upon Ryan Davis of Seattle.rb's Minitest (MIT License).
7
+ #
8
+ # @see https://github.com/seattlerb/minitest Minitest
9
+
10
+ class DefaultReporter < BaseReporter
11
+ include ANSI::Code
12
+ include RelativePosition
13
+
14
+ def initialize(options = {})
15
+ super
16
+ @detailed_skip = options.fetch(:detailed_skip, true)
17
+ @slow_count = options.fetch(:slow_count, 0)
18
+ @slow_suite_count = options.fetch(:slow_suite_count, 0)
19
+ @suite_times = []
20
+ @suite_start_times = {}
21
+ @fast_fail = options.fetch(:fast_fail, false)
22
+ @show_test_location = options.fetch(:location, false)
23
+ @options = options
24
+ end
25
+
26
+ def start
27
+ super
28
+ on_start
29
+ end
30
+
31
+ def on_start
32
+ puts
33
+ puts("# Running tests with run options %s:" % options[:args])
34
+ puts
35
+ end
36
+
37
+ def before_test(test)
38
+ super
39
+ print "\n#{test.class}##{test.name} " if options[:verbose]
40
+ end
41
+
42
+ def before_suite(suite)
43
+ @suite_start_times[suite] = Minitest::Reporters.clock_time
44
+ super
45
+ end
46
+
47
+ def after_suite(suite)
48
+ super
49
+ duration = suite_duration(suite)
50
+ @suite_times << [suite.name, duration]
51
+ end
52
+
53
+ def record(test)
54
+ super
55
+
56
+ on_record(test)
57
+ end
58
+
59
+ def on_record(test)
60
+ print "#{"%.2f" % test.time} = " if options[:verbose]
61
+
62
+ # Print the pass/skip/fail mark
63
+ print(if test.passed?
64
+ record_pass(test)
65
+ elsif test.skipped?
66
+ record_skip(test)
67
+ elsif test.failure
68
+ record_failure(test)
69
+ end)
70
+
71
+ # Print fast_fail information
72
+ if @fast_fail && (test.skipped? || test.failure)
73
+ print_failure(test)
74
+ end
75
+ end
76
+
77
+ def record_pass(record)
78
+ green(record.result_code)
79
+ end
80
+
81
+ def record_skip(record)
82
+ yellow(record.result_code)
83
+ end
84
+
85
+ def record_failure(record)
86
+ red(record.result_code)
87
+ end
88
+
89
+ def report
90
+ super
91
+ on_report
92
+ end
93
+
94
+ def on_report
95
+ status_line = "Finished tests in %.6fs, %.4f tests/s, %.4f assertions/s." %
96
+ [total_time, count / total_time, assertions / total_time]
97
+
98
+ puts
99
+ puts
100
+ puts colored_for(suite_result, status_line)
101
+ puts
102
+
103
+ unless @fast_fail
104
+ tests.reject(&:passed?).each do |test|
105
+ print_failure(test)
106
+ end
107
+ end
108
+
109
+ if @slow_count > 0
110
+ slow_tests = tests.sort_by(&:time).reverse.take(@slow_count)
111
+
112
+ puts
113
+ puts "Slowest tests:"
114
+ puts
115
+
116
+ slow_tests.each do |test|
117
+ puts "%.6fs %s#%s" % [test.time, test.name, test_class(test)]
118
+ end
119
+ end
120
+
121
+ if @slow_suite_count > 0
122
+ slow_suites = @suite_times.sort_by { |x| x[1] }.reverse.take(@slow_suite_count)
123
+
124
+ puts
125
+ puts "Slowest test classes:"
126
+ puts
127
+
128
+ slow_suites.each do |slow_suite|
129
+ puts "%.6fs %s" % [slow_suite[1], slow_suite[0]]
130
+ end
131
+ end
132
+
133
+ puts
134
+ print colored_for(suite_result, result_line)
135
+ puts
136
+ end
137
+
138
+ alias to_s report
139
+
140
+ def print_failure(test)
141
+ message = message_for(test)
142
+ unless message.nil? || message.strip == ''
143
+ puts
144
+ puts colored_for(result(test), message)
145
+ if @show_test_location
146
+ location = get_source_location(test)
147
+ puts "\n\n#{relative_path(location[0])}:#{location[1]}"
148
+ end
149
+
150
+ end
151
+ end
152
+
153
+ private
154
+
155
+ def relative_path(path)
156
+ Pathname.new(path).relative_path_from(Pathname.new(Dir.getwd))
157
+ end
158
+
159
+ def get_source_location(result)
160
+ if result.respond_to? :klass
161
+ result.source_location
162
+ else
163
+ result.method(result.name).source_location
164
+ end
165
+ end
166
+
167
+ def color?
168
+ return @color if defined?(@color)
169
+ @color = @options.fetch(:color) do
170
+ io.tty? && (
171
+ ENV["TERM"] =~ /^screen|color/ ||
172
+ ENV["EMACS"] == "t"
173
+ )
174
+ end
175
+ end
176
+
177
+ def green(string)
178
+ color? ? ANSI::Code.green(string) : string
179
+ end
180
+
181
+ def yellow(string)
182
+ color? ? ANSI::Code.yellow(string) : string
183
+ end
184
+
185
+ def red(string)
186
+ color? ? ANSI::Code.red(string) : string
187
+ end
188
+
189
+ def colored_for(result, string)
190
+ case result
191
+ when :fail, :error; red(string)
192
+ when :skip; yellow(string)
193
+ else green(string)
194
+ end
195
+ end
196
+
197
+ def suite_result
198
+ case
199
+ when failures > 0; :fail
200
+ when errors > 0; :error
201
+ when skips > 0; :skip
202
+ else :pass
203
+ end
204
+ end
205
+
206
+ def location(exception)
207
+ last_before_assertion = ''
208
+ exception.backtrace.reverse_each do |s|
209
+ break if s =~ /in .(assert|refute|flunk|pass|fail|raise|must|wont)/
210
+ last_before_assertion = s
211
+ end
212
+
213
+ last_before_assertion.sub(/:in .*$/, '')
214
+ end
215
+
216
+ def message_for(test)
217
+ e = test.failure
218
+
219
+ if test.skipped?
220
+ if @detailed_skip
221
+ "Skipped:\n#{test_class(test)}##{test.name} [#{location(e)}]:\n#{e.message}"
222
+ end
223
+ elsif test.error?
224
+ "Error:\n#{test_class(test)}##{test.name}:\n#{e.message}"
225
+ else
226
+ "Failure:\n#{test_class(test)}##{test.name} [#{test.failure.location}]\n#{e.class}: #{e.message}"
227
+ end
228
+ end
229
+
230
+ def result_line
231
+ '%d tests, %d assertions, %d failures, %d errors, %d skips' %
232
+ [count, assertions, failures, errors, skips]
233
+ end
234
+
235
+ def suite_duration(suite)
236
+ start_time = @suite_start_times.delete(suite)
237
+ if start_time.nil?
238
+ 0
239
+ else
240
+ Minitest::Reporters.clock_time - start_time
241
+ end
242
+ end
243
+ end
244
+ end
245
+ end
@@ -0,0 +1,224 @@
1
+ require 'builder'
2
+ require 'fileutils'
3
+ require 'erb'
4
+
5
+ module Minitest
6
+ module Reporters
7
+ # A reporter for generating HTML test reports
8
+ # This is recommended to be used with a CI server, where the report is kept as an artifact and is accessible via
9
+ # a shared link
10
+ #
11
+ # The reporter sorts the results alphabetically and then by results
12
+ # so that failing and skipped tests are at the top.
13
+ #
14
+ # When using Minitest Specs, the number prefix is dropped from the name of the test so that it reads well
15
+ #
16
+ # On each test run all files in the reports directory are deleted, this prevents a build up of old reports
17
+ #
18
+ # The report is generated using ERB. A custom ERB template can be provided but it is not required
19
+ # The default ERB template uses JQuery and Bootstrap, both of these are included by referencing the CDN sites
20
+ class HtmlReporter < BaseReporter
21
+ # The title of the report
22
+ attr_reader :title
23
+
24
+ # The number of tests that passed
25
+ def passes
26
+ count - failures - errors - skips
27
+ end
28
+
29
+ # The percentage of tests that passed, calculated in a way that avoids rounding errors
30
+ def percent_passes
31
+ 100 - percent_skipps - percent_errors_failures
32
+ end
33
+
34
+ # The percentage of tests that were skipped
35
+ def percent_skipps
36
+ (skips / count.to_f * 100).to_i
37
+ end
38
+
39
+ # The percentage of tests that failed
40
+ def percent_errors_failures
41
+ ((errors + failures) / count.to_f * 100).to_i
42
+ end
43
+
44
+ # Trims off the number prefix on test names when using Minitest Specs
45
+ def friendly_name(test)
46
+ groups = test.name.scan(/(test_\d+_)(.*)/i)
47
+ return test.name if groups.empty?
48
+ "it #{groups[0][1]}"
49
+ end
50
+
51
+ # The constructor takes a hash, and uses the following keys:
52
+ # :title - the title that will be used in the report, defaults to 'Test Results'
53
+ # :reports_dir - the directory the reports should be written to, defaults to 'test/html_reports'
54
+ # :erb_template - the path to a custom ERB template, defaults to the supplied ERB template
55
+ # :mode - Useful for debugging, :terse suppresses errors and is the default, :verbose lets errors bubble up
56
+ # :output_filename - the report's filename, defaults to 'index.html'
57
+ def initialize(args = {})
58
+ super({})
59
+
60
+ defaults = {
61
+ :title => 'Test Results',
62
+ :erb_template => "#{File.dirname(__FILE__)}/../templates/index.html.erb",
63
+ :reports_dir => 'test/html_reports',
64
+ :mode => :safe,
65
+ :output_filename => 'index.html',
66
+ }
67
+
68
+ settings = defaults.merge(args)
69
+
70
+ @mode = settings[:mode]
71
+ @title = settings[:title]
72
+ @erb_template = settings[:erb_template]
73
+ @output_filename = settings[:output_filename]
74
+ reports_dir = settings[:reports_dir]
75
+
76
+ @reports_path = File.absolute_path(reports_dir)
77
+ end
78
+
79
+ def start
80
+ super
81
+
82
+ puts "Emptying #{@reports_path}"
83
+ FileUtils.mkdir_p(@reports_path)
84
+ File.delete(html_file) if File.exist?(html_file)
85
+ end
86
+
87
+ # Called by the framework to generate the report
88
+ def report
89
+ super
90
+
91
+ begin
92
+ puts "Writing HTML reports to #{@reports_path}"
93
+ erb_str = File.read(@erb_template)
94
+ renderer = ERB.new(erb_str)
95
+
96
+ tests_by_suites = tests.group_by { |test| test_class(test) } # taken from the JUnit reporter
97
+
98
+ suites = tests_by_suites.map do |suite, tests|
99
+ suite_summary = summarize_suite(suite, tests)
100
+ suite_summary[:tests] = tests.sort { |a, b| compare_tests(a, b) }
101
+ suite_summary
102
+ end
103
+
104
+ suites.sort! { |a, b| compare_suites(a, b) }
105
+
106
+ result = renderer.result(binding)
107
+ File.open(html_file, 'w') do |f|
108
+ f.write(result)
109
+ end
110
+
111
+ # rubocop:disable Lint/RescueException
112
+ rescue Exception => e
113
+ puts 'There was an error writing the HTML report'
114
+ puts 'This may have been caused by cancelling the test run'
115
+ puts 'Use mode => :verbose in the HTML reporters constructor to see more detail' if @mode == :terse
116
+ puts 'Use mode => :terse in the HTML reporters constructor to see less detail' if @mode != :terse
117
+ raise e if @mode != :terse
118
+ end
119
+ # rubocop:enable Lint/RescueException
120
+ end
121
+
122
+ private
123
+
124
+ def html_file
125
+ "#{@reports_path}/#{@output_filename}"
126
+ end
127
+
128
+ def compare_suites_by_name(suite_a, suite_b)
129
+ suite_a[:name] <=> suite_b[:name]
130
+ end
131
+
132
+ def compare_tests_by_name(test_a, test_b)
133
+ friendly_name(test_a) <=> friendly_name(test_b)
134
+ end
135
+
136
+ # Test suites are first ordered by evaluating the results of the tests, then by test suite name
137
+ # Test suites which have failing tests are given highest order
138
+ # Tests suites which have skipped tests are given second highest priority
139
+ def compare_suites(suite_a, suite_b)
140
+ return compare_suites_by_name(suite_a, suite_b) if suite_a[:has_errors_or_failures] && suite_b[:has_errors_or_failures]
141
+ return -1 if suite_a[:has_errors_or_failures] && !suite_b[:has_errors_or_failures]
142
+ return 1 if !suite_a[:has_errors_or_failures] && suite_b[:has_errors_or_failures]
143
+
144
+ return compare_suites_by_name(suite_a, suite_b) if suite_a[:has_skipps] && suite_b[:has_skipps]
145
+ return -1 if suite_a[:has_skipps] && !suite_b[:has_skipps]
146
+ return 1 if !suite_a[:has_skipps] && suite_b[:has_skipps]
147
+
148
+ compare_suites_by_name(suite_a, suite_b)
149
+ end
150
+
151
+ # Tests are first ordered by evaluating the results of the tests, then by tests names
152
+ # Tess which fail are given highest order
153
+ # Tests which are skipped are given second highest priority
154
+ def compare_tests(test_a, test_b)
155
+ return compare_tests_by_name(test_a, test_b) if test_fail_or_error?(test_a) && test_fail_or_error?(test_b)
156
+
157
+ return -1 if test_fail_or_error?(test_a) && !test_fail_or_error?(test_b)
158
+ return 1 if !test_fail_or_error?(test_a) && test_fail_or_error?(test_b)
159
+
160
+ return compare_tests_by_name(test_a, test_b) if test_a.skipped? && test_b.skipped?
161
+ return -1 if test_a.skipped? && !test_b.skipped?
162
+ return 1 if !test_a.skipped? && test_b.skipped?
163
+
164
+ compare_tests_by_name(test_a, test_b)
165
+ end
166
+
167
+ def test_fail_or_error?(test)
168
+ test.error? || test.failure
169
+ end
170
+
171
+ # based on analyze_suite from the JUnit reporter
172
+ def summarize_suite(suite, tests)
173
+ summary = Hash.new(0)
174
+ summary[:name] = suite.to_s
175
+ tests.each do |test|
176
+ summary[:"#{result(test)}_count"] += 1
177
+ summary[:assertion_count] += test.assertions
178
+ summary[:test_count] += 1
179
+ summary[:time] += test.time
180
+ end
181
+ summary[:has_errors_or_failures] = (summary[:fail_count] + summary[:error_count]) > 0
182
+ summary[:has_skipps] = summary[:skip_count] > 0
183
+ summary
184
+ end
185
+
186
+ # based on message_for(test) from the JUnit reporter
187
+ def message_for(test)
188
+ suite = test.class
189
+ name = test.name
190
+ e = test.failure
191
+
192
+ if test.passed?
193
+ nil
194
+ elsif test.skipped?
195
+ "Skipped:\n#{name}(#{suite}) [#{location(e)}]:\n#{e.message}\n"
196
+ elsif test.failure
197
+ "Failure:\n#{name}(#{suite}) [#{location(e)}]:\n#{e.message}\n"
198
+ elsif test.error?
199
+ "Error:\n#{name}(#{suite}):\n#{e.message}"
200
+ end
201
+ end
202
+
203
+ # taken from the JUnit reporter
204
+ def location(exception)
205
+ last_before_assertion = ''
206
+ exception.backtrace.reverse_each do |s|
207
+ break if s =~ /in .(assert|refute|flunk|pass|fail|raise|must|wont)/
208
+ last_before_assertion = s
209
+ end
210
+ last_before_assertion.sub(/:in .*$/, '')
211
+ end
212
+
213
+ def total_time_to_hms
214
+ return ('%.2fs' % total_time) if total_time < 1
215
+
216
+ hours = (total_time / (60 * 60)).round
217
+ minutes = ((total_time / 60) % 60).round.to_s.rjust(2, '0')
218
+ seconds = (total_time % 60).round.to_s.rjust(2, '0')
219
+
220
+ "#{hours}h#{minutes}m#{seconds}s"
221
+ end
222
+ end
223
+ end
224
+ end