steenfest_palindrome 0.1.1b

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 (369) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +8 -0
  3. data/.travis.yml +7 -0
  4. data/Gemfile +6 -0
  5. data/README.md +35 -0
  6. data/Rakefile +10 -0
  7. data/bin/console +14 -0
  8. data/bin/setup +8 -0
  9. data/lib/steenfest_palindrome/version.rb +3 -0
  10. data/lib/steenfest_palindrome.rb +17 -0
  11. data/ruby/2.5/bin/rake +27 -0
  12. data/ruby/2.5/cache/ansi-1.5.0.gem +0 -0
  13. data/ruby/2.5/cache/builder-3.2.3.gem +0 -0
  14. data/ruby/2.5/cache/minitest-5.11.3.gem +0 -0
  15. data/ruby/2.5/cache/minitest-reporters-1.2.0.gem +0 -0
  16. data/ruby/2.5/cache/rake-10.5.0.gem +0 -0
  17. data/ruby/2.5/cache/ruby-progressbar-1.10.0.gem +0 -0
  18. data/ruby/2.5/gems/ansi-1.5.0/.index +77 -0
  19. data/ruby/2.5/gems/ansi-1.5.0/.yardopts +8 -0
  20. data/ruby/2.5/gems/ansi-1.5.0/DEMO.md +451 -0
  21. data/ruby/2.5/gems/ansi-1.5.0/HISTORY.md +217 -0
  22. data/ruby/2.5/gems/ansi-1.5.0/LICENSE.txt +23 -0
  23. data/ruby/2.5/gems/ansi-1.5.0/NOTICE.md +170 -0
  24. data/ruby/2.5/gems/ansi-1.5.0/README.md +91 -0
  25. data/ruby/2.5/gems/ansi-1.5.0/demo/01_ansicode.md +65 -0
  26. data/ruby/2.5/gems/ansi-1.5.0/demo/02_core.md +11 -0
  27. data/ruby/2.5/gems/ansi-1.5.0/demo/03_logger.md +30 -0
  28. data/ruby/2.5/gems/ansi-1.5.0/demo/04_progressbar.md +62 -0
  29. data/ruby/2.5/gems/ansi-1.5.0/demo/05_mixin.md +37 -0
  30. data/ruby/2.5/gems/ansi-1.5.0/demo/06_string.md +56 -0
  31. data/ruby/2.5/gems/ansi-1.5.0/demo/07_columns.md +89 -0
  32. data/ruby/2.5/gems/ansi-1.5.0/demo/08_table.md +28 -0
  33. data/ruby/2.5/gems/ansi-1.5.0/demo/09_diff.md +47 -0
  34. data/ruby/2.5/gems/ansi-1.5.0/demo/10_bbcode.md +24 -0
  35. data/ruby/2.5/gems/ansi-1.5.0/demo/11_terminal.md +8 -0
  36. data/ruby/2.5/gems/ansi-1.5.0/demo/applique/ae.rb +1 -0
  37. data/ruby/2.5/gems/ansi-1.5.0/demo/applique/output.rb +5 -0
  38. data/ruby/2.5/gems/ansi-1.5.0/lib/ansi/bbcode.rb +334 -0
  39. data/ruby/2.5/gems/ansi-1.5.0/lib/ansi/chain.rb +50 -0
  40. data/ruby/2.5/gems/ansi-1.5.0/lib/ansi/chart.rb +100 -0
  41. data/ruby/2.5/gems/ansi-1.5.0/lib/ansi/code.rb +349 -0
  42. data/ruby/2.5/gems/ansi-1.5.0/lib/ansi/columns.rb +197 -0
  43. data/ruby/2.5/gems/ansi-1.5.0/lib/ansi/constants.rb +25 -0
  44. data/ruby/2.5/gems/ansi-1.5.0/lib/ansi/core.rb +30 -0
  45. data/ruby/2.5/gems/ansi-1.5.0/lib/ansi/diff.rb +215 -0
  46. data/ruby/2.5/gems/ansi-1.5.0/lib/ansi/hexdump.rb +122 -0
  47. data/ruby/2.5/gems/ansi-1.5.0/lib/ansi/logger.rb +211 -0
  48. data/ruby/2.5/gems/ansi-1.5.0/lib/ansi/mixin.rb +121 -0
  49. data/ruby/2.5/gems/ansi-1.5.0/lib/ansi/progressbar.rb +292 -0
  50. data/ruby/2.5/gems/ansi-1.5.0/lib/ansi/string.rb +254 -0
  51. data/ruby/2.5/gems/ansi-1.5.0/lib/ansi/table.rb +179 -0
  52. data/ruby/2.5/gems/ansi-1.5.0/lib/ansi/terminal/curses.rb +26 -0
  53. data/ruby/2.5/gems/ansi-1.5.0/lib/ansi/terminal/stty.rb +62 -0
  54. data/ruby/2.5/gems/ansi-1.5.0/lib/ansi/terminal/termios.rb +68 -0
  55. data/ruby/2.5/gems/ansi-1.5.0/lib/ansi/terminal/win32.rb +107 -0
  56. data/ruby/2.5/gems/ansi-1.5.0/lib/ansi/terminal.rb +44 -0
  57. data/ruby/2.5/gems/ansi-1.5.0/lib/ansi/version.rb +15 -0
  58. data/ruby/2.5/gems/ansi-1.5.0/lib/ansi.rb +22 -0
  59. data/ruby/2.5/gems/ansi-1.5.0/lib/ansi.yml +77 -0
  60. data/ruby/2.5/gems/ansi-1.5.0/test/case_ansicode.rb +43 -0
  61. data/ruby/2.5/gems/ansi-1.5.0/test/case_bbcode.rb +35 -0
  62. data/ruby/2.5/gems/ansi-1.5.0/test/case_mixin.rb +35 -0
  63. data/ruby/2.5/gems/ansi-1.5.0/test/case_progressbar.rb +21 -0
  64. data/ruby/2.5/gems/ansi-1.5.0/test/test_helper.rb +3 -0
  65. data/ruby/2.5/gems/builder-3.2.3/CHANGES +107 -0
  66. data/ruby/2.5/gems/builder-3.2.3/MIT-LICENSE +20 -0
  67. data/ruby/2.5/gems/builder-3.2.3/README.md +258 -0
  68. data/ruby/2.5/gems/builder-3.2.3/Rakefile +195 -0
  69. data/ruby/2.5/gems/builder-3.2.3/doc/jamis.rb +591 -0
  70. data/ruby/2.5/gems/builder-3.2.3/doc/releases/builder-1.2.4.rdoc +31 -0
  71. data/ruby/2.5/gems/builder-3.2.3/doc/releases/builder-2.0.0.rdoc +46 -0
  72. data/ruby/2.5/gems/builder-3.2.3/doc/releases/builder-2.1.1.rdoc +58 -0
  73. data/ruby/2.5/gems/builder-3.2.3/lib/blankslate.rb +137 -0
  74. data/ruby/2.5/gems/builder-3.2.3/lib/builder/blankslate.rb +23 -0
  75. data/ruby/2.5/gems/builder-3.2.3/lib/builder/version.rb +8 -0
  76. data/ruby/2.5/gems/builder-3.2.3/lib/builder/xchar.rb +197 -0
  77. data/ruby/2.5/gems/builder-3.2.3/lib/builder/xmlbase.rb +199 -0
  78. data/ruby/2.5/gems/builder-3.2.3/lib/builder/xmlevents.rb +63 -0
  79. data/ruby/2.5/gems/builder-3.2.3/lib/builder/xmlmarkup.rb +339 -0
  80. data/ruby/2.5/gems/builder-3.2.3/lib/builder.rb +13 -0
  81. data/ruby/2.5/gems/builder-3.2.3/rakelib/publish.rake +20 -0
  82. data/ruby/2.5/gems/builder-3.2.3/rakelib/tags.rake +62 -0
  83. data/ruby/2.5/gems/builder-3.2.3/rakelib/testing.rake +7 -0
  84. data/ruby/2.5/gems/builder-3.2.3/test/helper.rb +12 -0
  85. data/ruby/2.5/gems/builder-3.2.3/test/performance.rb +41 -0
  86. data/ruby/2.5/gems/builder-3.2.3/test/preload.rb +39 -0
  87. data/ruby/2.5/gems/builder-3.2.3/test/test_blankslate.rb +213 -0
  88. data/ruby/2.5/gems/builder-3.2.3/test/test_eventbuilder.rb +150 -0
  89. data/ruby/2.5/gems/builder-3.2.3/test/test_markupbuilder.rb +611 -0
  90. data/ruby/2.5/gems/builder-3.2.3/test/test_method_caching.rb +62 -0
  91. data/ruby/2.5/gems/builder-3.2.3/test/test_namecollision.rb +39 -0
  92. data/ruby/2.5/gems/builder-3.2.3/test/test_xchar.rb +78 -0
  93. data/ruby/2.5/gems/minitest-5.11.3/.autotest +34 -0
  94. data/ruby/2.5/gems/minitest-5.11.3/History.rdoc +1310 -0
  95. data/ruby/2.5/gems/minitest-5.11.3/Manifest.txt +26 -0
  96. data/ruby/2.5/gems/minitest-5.11.3/README.rdoc +746 -0
  97. data/ruby/2.5/gems/minitest-5.11.3/Rakefile +86 -0
  98. data/ruby/2.5/gems/minitest-5.11.3/design_rationale.rb +52 -0
  99. data/ruby/2.5/gems/minitest-5.11.3/lib/hoe/minitest.rb +32 -0
  100. data/ruby/2.5/gems/minitest-5.11.3/lib/minitest/assertions.rb +693 -0
  101. data/ruby/2.5/gems/minitest-5.11.3/lib/minitest/autorun.rb +13 -0
  102. data/ruby/2.5/gems/minitest-5.11.3/lib/minitest/benchmark.rb +455 -0
  103. data/ruby/2.5/gems/minitest-5.11.3/lib/minitest/expectations.rb +284 -0
  104. data/ruby/2.5/gems/minitest-5.11.3/lib/minitest/hell.rb +11 -0
  105. data/ruby/2.5/gems/minitest-5.11.3/lib/minitest/mock.rb +240 -0
  106. data/ruby/2.5/gems/minitest-5.11.3/lib/minitest/parallel.rb +70 -0
  107. data/ruby/2.5/gems/minitest-5.11.3/lib/minitest/pride.rb +4 -0
  108. data/ruby/2.5/gems/minitest-5.11.3/lib/minitest/pride_plugin.rb +142 -0
  109. data/ruby/2.5/gems/minitest-5.11.3/lib/minitest/spec.rb +331 -0
  110. data/ruby/2.5/gems/minitest-5.11.3/lib/minitest/test.rb +220 -0
  111. data/ruby/2.5/gems/minitest-5.11.3/lib/minitest/unit.rb +45 -0
  112. data/ruby/2.5/gems/minitest-5.11.3/lib/minitest.rb +987 -0
  113. data/ruby/2.5/gems/minitest-5.11.3/test/minitest/metametameta.rb +102 -0
  114. data/ruby/2.5/gems/minitest-5.11.3/test/minitest/test_minitest_benchmark.rb +137 -0
  115. data/ruby/2.5/gems/minitest-5.11.3/test/minitest/test_minitest_mock.rb +874 -0
  116. data/ruby/2.5/gems/minitest-5.11.3/test/minitest/test_minitest_reporter.rb +299 -0
  117. data/ruby/2.5/gems/minitest-5.11.3/test/minitest/test_minitest_spec.rb +987 -0
  118. data/ruby/2.5/gems/minitest-5.11.3/test/minitest/test_minitest_test.rb +2142 -0
  119. data/ruby/2.5/gems/minitest-reporters-1.2.0/.gitignore +27 -0
  120. data/ruby/2.5/gems/minitest-reporters-1.2.0/.ruby-gemset +1 -0
  121. data/ruby/2.5/gems/minitest-reporters-1.2.0/.travis.yml +10 -0
  122. data/ruby/2.5/gems/minitest-reporters-1.2.0/.yardopts +6 -0
  123. data/ruby/2.5/gems/minitest-reporters-1.2.0/CHANGELOG.md +40 -0
  124. data/ruby/2.5/gems/minitest-reporters-1.2.0/Gemfile +2 -0
  125. data/ruby/2.5/gems/minitest-reporters-1.2.0/LICENSE +20 -0
  126. data/ruby/2.5/gems/minitest-reporters-1.2.0/README.md +115 -0
  127. data/ruby/2.5/gems/minitest-reporters-1.2.0/Rakefile +60 -0
  128. data/ruby/2.5/gems/minitest-reporters-1.2.0/assets/default-reporter.png +0 -0
  129. data/ruby/2.5/gems/minitest-reporters-1.2.0/assets/mean_time_reporter.png +0 -0
  130. data/ruby/2.5/gems/minitest-reporters-1.2.0/assets/progress-reporter.png +0 -0
  131. data/ruby/2.5/gems/minitest-reporters-1.2.0/assets/spec-reporter.png +0 -0
  132. data/ruby/2.5/gems/minitest-reporters-1.2.0/lib/minitest/extensible_backtrace_filter.rb +67 -0
  133. data/ruby/2.5/gems/minitest-reporters-1.2.0/lib/minitest/minitest_reporter_plugin.rb +75 -0
  134. data/ruby/2.5/gems/minitest-reporters-1.2.0/lib/minitest/old_activesupport_fix.rb +24 -0
  135. data/ruby/2.5/gems/minitest-reporters-1.2.0/lib/minitest/relative_position.rb +26 -0
  136. data/ruby/2.5/gems/minitest-reporters-1.2.0/lib/minitest/reporters/ansi.rb +31 -0
  137. data/ruby/2.5/gems/minitest-reporters-1.2.0/lib/minitest/reporters/base_reporter.rb +117 -0
  138. data/ruby/2.5/gems/minitest-reporters-1.2.0/lib/minitest/reporters/default_reporter.rb +228 -0
  139. data/ruby/2.5/gems/minitest-reporters-1.2.0/lib/minitest/reporters/html_reporter.rb +221 -0
  140. data/ruby/2.5/gems/minitest-reporters-1.2.0/lib/minitest/reporters/junit_reporter.rb +157 -0
  141. data/ruby/2.5/gems/minitest-reporters-1.2.0/lib/minitest/reporters/mean_time_reporter.rb +392 -0
  142. data/ruby/2.5/gems/minitest-reporters-1.2.0/lib/minitest/reporters/progress_reporter.rb +96 -0
  143. data/ruby/2.5/gems/minitest-reporters-1.2.0/lib/minitest/reporters/ruby_mate_reporter.rb +54 -0
  144. data/ruby/2.5/gems/minitest-reporters-1.2.0/lib/minitest/reporters/rubymine_reporter.rb +117 -0
  145. data/ruby/2.5/gems/minitest-reporters-1.2.0/lib/minitest/reporters/spec_reporter.rb +61 -0
  146. data/ruby/2.5/gems/minitest-reporters-1.2.0/lib/minitest/reporters/version.rb +5 -0
  147. data/ruby/2.5/gems/minitest-reporters-1.2.0/lib/minitest/reporters.rb +89 -0
  148. data/ruby/2.5/gems/minitest-reporters-1.2.0/lib/minitest/templates/index.html.erb +83 -0
  149. data/ruby/2.5/gems/minitest-reporters-1.2.0/minitest-reporters.gemspec +31 -0
  150. data/ruby/2.5/gems/minitest-reporters-1.2.0/test/fixtures/junit_filename_bug_example_test.rb +21 -0
  151. data/ruby/2.5/gems/minitest-reporters-1.2.0/test/fixtures/mean_time_test.rb +8 -0
  152. data/ruby/2.5/gems/minitest-reporters-1.2.0/test/fixtures/progress_detailed_skip_test.rb +8 -0
  153. data/ruby/2.5/gems/minitest-reporters-1.2.0/test/fixtures/progress_test.rb +8 -0
  154. data/ruby/2.5/gems/minitest-reporters-1.2.0/test/fixtures/sample_test.rb +15 -0
  155. data/ruby/2.5/gems/minitest-reporters-1.2.0/test/fixtures/spec_test.rb +13 -0
  156. data/ruby/2.5/gems/minitest-reporters-1.2.0/test/gallery/bad_test.rb +25 -0
  157. data/ruby/2.5/gems/minitest-reporters-1.2.0/test/gallery/good_test.rb +14 -0
  158. data/ruby/2.5/gems/minitest-reporters-1.2.0/test/integration/reporters/junit_reporter_test.rb +12 -0
  159. data/ruby/2.5/gems/minitest-reporters-1.2.0/test/integration/reporters/mean_time_reporter_test.rb +7 -0
  160. data/ruby/2.5/gems/minitest-reporters-1.2.0/test/integration/reporters/progress_reporter_test.rb +34 -0
  161. data/ruby/2.5/gems/minitest-reporters-1.2.0/test/test_helper.rb +22 -0
  162. data/ruby/2.5/gems/minitest-reporters-1.2.0/test/unit/minitest/extensible_backtrace_filter_test.rb +42 -0
  163. data/ruby/2.5/gems/minitest-reporters-1.2.0/test/unit/minitest/mean_time_reporter_unit_test.rb +152 -0
  164. data/ruby/2.5/gems/minitest-reporters-1.2.0/test/unit/minitest/minitest_reporter_plugin_test.rb +14 -0
  165. data/ruby/2.5/gems/minitest-reporters-1.2.0/test/unit/minitest/reporters_test.rb +52 -0
  166. data/ruby/2.5/gems/minitest-reporters-1.2.0/test/unit/minitest/spec_reporter_test.rb +41 -0
  167. data/ruby/2.5/gems/rake-10.5.0/.autotest +7 -0
  168. data/ruby/2.5/gems/rake-10.5.0/.rubocop.yml +27 -0
  169. data/ruby/2.5/gems/rake-10.5.0/.togglerc +7 -0
  170. data/ruby/2.5/gems/rake-10.5.0/CONTRIBUTING.rdoc +38 -0
  171. data/ruby/2.5/gems/rake-10.5.0/History.rdoc +659 -0
  172. data/ruby/2.5/gems/rake-10.5.0/MIT-LICENSE +21 -0
  173. data/ruby/2.5/gems/rake-10.5.0/Manifest.txt +166 -0
  174. data/ruby/2.5/gems/rake-10.5.0/README.rdoc +139 -0
  175. data/ruby/2.5/gems/rake-10.5.0/Rakefile +81 -0
  176. data/ruby/2.5/gems/rake-10.5.0/bin/rake +33 -0
  177. data/ruby/2.5/gems/rake-10.5.0/doc/command_line_usage.rdoc +158 -0
  178. data/ruby/2.5/gems/rake-10.5.0/doc/example/Rakefile1 +38 -0
  179. data/ruby/2.5/gems/rake-10.5.0/doc/example/Rakefile2 +35 -0
  180. data/ruby/2.5/gems/rake-10.5.0/doc/example/a.c +6 -0
  181. data/ruby/2.5/gems/rake-10.5.0/doc/example/b.c +6 -0
  182. data/ruby/2.5/gems/rake-10.5.0/doc/example/main.c +11 -0
  183. data/ruby/2.5/gems/rake-10.5.0/doc/glossary.rdoc +42 -0
  184. data/ruby/2.5/gems/rake-10.5.0/doc/jamis.rb +591 -0
  185. data/ruby/2.5/gems/rake-10.5.0/doc/proto_rake.rdoc +127 -0
  186. data/ruby/2.5/gems/rake-10.5.0/doc/rake.1 +141 -0
  187. data/ruby/2.5/gems/rake-10.5.0/doc/rakefile.rdoc +624 -0
  188. data/ruby/2.5/gems/rake-10.5.0/doc/rational.rdoc +151 -0
  189. data/ruby/2.5/gems/rake-10.5.0/doc/release_notes/rake-0.4.14.rdoc +23 -0
  190. data/ruby/2.5/gems/rake-10.5.0/doc/release_notes/rake-0.4.15.rdoc +35 -0
  191. data/ruby/2.5/gems/rake-10.5.0/doc/release_notes/rake-0.5.0.rdoc +53 -0
  192. data/ruby/2.5/gems/rake-10.5.0/doc/release_notes/rake-0.5.3.rdoc +78 -0
  193. data/ruby/2.5/gems/rake-10.5.0/doc/release_notes/rake-0.5.4.rdoc +46 -0
  194. data/ruby/2.5/gems/rake-10.5.0/doc/release_notes/rake-0.6.0.rdoc +141 -0
  195. data/ruby/2.5/gems/rake-10.5.0/doc/release_notes/rake-0.7.0.rdoc +119 -0
  196. data/ruby/2.5/gems/rake-10.5.0/doc/release_notes/rake-0.7.1.rdoc +59 -0
  197. data/ruby/2.5/gems/rake-10.5.0/doc/release_notes/rake-0.7.2.rdoc +121 -0
  198. data/ruby/2.5/gems/rake-10.5.0/doc/release_notes/rake-0.7.3.rdoc +47 -0
  199. data/ruby/2.5/gems/rake-10.5.0/doc/release_notes/rake-0.8.0.rdoc +114 -0
  200. data/ruby/2.5/gems/rake-10.5.0/doc/release_notes/rake-0.8.2.rdoc +165 -0
  201. data/ruby/2.5/gems/rake-10.5.0/doc/release_notes/rake-0.8.3.rdoc +112 -0
  202. data/ruby/2.5/gems/rake-10.5.0/doc/release_notes/rake-0.8.4.rdoc +147 -0
  203. data/ruby/2.5/gems/rake-10.5.0/doc/release_notes/rake-0.8.5.rdoc +53 -0
  204. data/ruby/2.5/gems/rake-10.5.0/doc/release_notes/rake-0.8.6.rdoc +37 -0
  205. data/ruby/2.5/gems/rake-10.5.0/doc/release_notes/rake-0.8.7.rdoc +55 -0
  206. data/ruby/2.5/gems/rake-10.5.0/doc/release_notes/rake-0.9.0.rdoc +112 -0
  207. data/ruby/2.5/gems/rake-10.5.0/doc/release_notes/rake-0.9.1.rdoc +52 -0
  208. data/ruby/2.5/gems/rake-10.5.0/doc/release_notes/rake-0.9.2.2.rdoc +55 -0
  209. data/ruby/2.5/gems/rake-10.5.0/doc/release_notes/rake-0.9.2.rdoc +49 -0
  210. data/ruby/2.5/gems/rake-10.5.0/doc/release_notes/rake-0.9.3.rdoc +102 -0
  211. data/ruby/2.5/gems/rake-10.5.0/doc/release_notes/rake-0.9.4.rdoc +60 -0
  212. data/ruby/2.5/gems/rake-10.5.0/doc/release_notes/rake-0.9.5.rdoc +55 -0
  213. data/ruby/2.5/gems/rake-10.5.0/doc/release_notes/rake-0.9.6.rdoc +64 -0
  214. data/ruby/2.5/gems/rake-10.5.0/doc/release_notes/rake-10.0.0.rdoc +178 -0
  215. data/ruby/2.5/gems/rake-10.5.0/doc/release_notes/rake-10.0.1.rdoc +58 -0
  216. data/ruby/2.5/gems/rake-10.5.0/doc/release_notes/rake-10.0.2.rdoc +53 -0
  217. data/ruby/2.5/gems/rake-10.5.0/doc/release_notes/rake-10.0.3.rdoc +191 -0
  218. data/ruby/2.5/gems/rake-10.5.0/doc/release_notes/rake-10.1.0.rdoc +61 -0
  219. data/ruby/2.5/gems/rake-10.5.0/lib/rake/alt_system.rb +110 -0
  220. data/ruby/2.5/gems/rake-10.5.0/lib/rake/application.rb +790 -0
  221. data/ruby/2.5/gems/rake-10.5.0/lib/rake/backtrace.rb +23 -0
  222. data/ruby/2.5/gems/rake-10.5.0/lib/rake/clean.rb +76 -0
  223. data/ruby/2.5/gems/rake-10.5.0/lib/rake/cloneable.rb +16 -0
  224. data/ruby/2.5/gems/rake-10.5.0/lib/rake/contrib/.document +1 -0
  225. data/ruby/2.5/gems/rake-10.5.0/lib/rake/contrib/compositepublisher.rb +21 -0
  226. data/ruby/2.5/gems/rake-10.5.0/lib/rake/contrib/ftptools.rb +137 -0
  227. data/ruby/2.5/gems/rake-10.5.0/lib/rake/contrib/publisher.rb +81 -0
  228. data/ruby/2.5/gems/rake-10.5.0/lib/rake/contrib/rubyforgepublisher.rb +18 -0
  229. data/ruby/2.5/gems/rake-10.5.0/lib/rake/contrib/sshpublisher.rb +61 -0
  230. data/ruby/2.5/gems/rake-10.5.0/lib/rake/contrib/sys.rb +4 -0
  231. data/ruby/2.5/gems/rake-10.5.0/lib/rake/cpu_counter.rb +125 -0
  232. data/ruby/2.5/gems/rake-10.5.0/lib/rake/default_loader.rb +14 -0
  233. data/ruby/2.5/gems/rake-10.5.0/lib/rake/dsl_definition.rb +201 -0
  234. data/ruby/2.5/gems/rake-10.5.0/lib/rake/early_time.rb +21 -0
  235. data/ruby/2.5/gems/rake-10.5.0/lib/rake/ext/core.rb +25 -0
  236. data/ruby/2.5/gems/rake-10.5.0/lib/rake/ext/module.rb +2 -0
  237. data/ruby/2.5/gems/rake-10.5.0/lib/rake/ext/pathname.rb +25 -0
  238. data/ruby/2.5/gems/rake-10.5.0/lib/rake/ext/string.rb +175 -0
  239. data/ruby/2.5/gems/rake-10.5.0/lib/rake/ext/time.rb +18 -0
  240. data/ruby/2.5/gems/rake-10.5.0/lib/rake/file_creation_task.rb +24 -0
  241. data/ruby/2.5/gems/rake-10.5.0/lib/rake/file_list.rb +428 -0
  242. data/ruby/2.5/gems/rake-10.5.0/lib/rake/file_task.rb +46 -0
  243. data/ruby/2.5/gems/rake-10.5.0/lib/rake/file_utils.rb +128 -0
  244. data/ruby/2.5/gems/rake-10.5.0/lib/rake/file_utils_ext.rb +144 -0
  245. data/ruby/2.5/gems/rake-10.5.0/lib/rake/gempackagetask.rb +4 -0
  246. data/ruby/2.5/gems/rake-10.5.0/lib/rake/invocation_chain.rb +56 -0
  247. data/ruby/2.5/gems/rake-10.5.0/lib/rake/invocation_exception_mixin.rb +16 -0
  248. data/ruby/2.5/gems/rake-10.5.0/lib/rake/late_time.rb +17 -0
  249. data/ruby/2.5/gems/rake-10.5.0/lib/rake/linked_list.rb +103 -0
  250. data/ruby/2.5/gems/rake-10.5.0/lib/rake/loaders/makefile.rb +53 -0
  251. data/ruby/2.5/gems/rake-10.5.0/lib/rake/multi_task.rb +13 -0
  252. data/ruby/2.5/gems/rake-10.5.0/lib/rake/name_space.rb +38 -0
  253. data/ruby/2.5/gems/rake-10.5.0/lib/rake/packagetask.rb +199 -0
  254. data/ruby/2.5/gems/rake-10.5.0/lib/rake/pathmap.rb +3 -0
  255. data/ruby/2.5/gems/rake-10.5.0/lib/rake/phony.rb +15 -0
  256. data/ruby/2.5/gems/rake-10.5.0/lib/rake/private_reader.rb +20 -0
  257. data/ruby/2.5/gems/rake-10.5.0/lib/rake/promise.rb +99 -0
  258. data/ruby/2.5/gems/rake-10.5.0/lib/rake/pseudo_status.rb +29 -0
  259. data/ruby/2.5/gems/rake-10.5.0/lib/rake/rake_module.rb +38 -0
  260. data/ruby/2.5/gems/rake-10.5.0/lib/rake/rake_test_loader.rb +22 -0
  261. data/ruby/2.5/gems/rake-10.5.0/lib/rake/rdoctask.rb +4 -0
  262. data/ruby/2.5/gems/rake-10.5.0/lib/rake/ruby182_test_unit_fix.rb +29 -0
  263. data/ruby/2.5/gems/rake-10.5.0/lib/rake/rule_recursion_overflow_error.rb +20 -0
  264. data/ruby/2.5/gems/rake-10.5.0/lib/rake/runtest.rb +27 -0
  265. data/ruby/2.5/gems/rake-10.5.0/lib/rake/scope.rb +42 -0
  266. data/ruby/2.5/gems/rake-10.5.0/lib/rake/task.rb +383 -0
  267. data/ruby/2.5/gems/rake-10.5.0/lib/rake/task_argument_error.rb +7 -0
  268. data/ruby/2.5/gems/rake-10.5.0/lib/rake/task_arguments.rb +98 -0
  269. data/ruby/2.5/gems/rake-10.5.0/lib/rake/task_manager.rb +307 -0
  270. data/ruby/2.5/gems/rake-10.5.0/lib/rake/tasklib.rb +24 -0
  271. data/ruby/2.5/gems/rake-10.5.0/lib/rake/testtask.rb +213 -0
  272. data/ruby/2.5/gems/rake-10.5.0/lib/rake/thread_history_display.rb +48 -0
  273. data/ruby/2.5/gems/rake-10.5.0/lib/rake/thread_pool.rb +164 -0
  274. data/ruby/2.5/gems/rake-10.5.0/lib/rake/trace_output.rb +22 -0
  275. data/ruby/2.5/gems/rake-10.5.0/lib/rake/version.rb +7 -0
  276. data/ruby/2.5/gems/rake-10.5.0/lib/rake/win32.rb +56 -0
  277. data/ruby/2.5/gems/rake-10.5.0/lib/rake.rb +79 -0
  278. data/ruby/2.5/gems/rake-10.5.0/rakelib/publish.rake +20 -0
  279. data/ruby/2.5/gems/rake-10.5.0/rakelib/test_times.rake +25 -0
  280. data/ruby/2.5/gems/rake-10.5.0/test/file_creation.rb +34 -0
  281. data/ruby/2.5/gems/rake-10.5.0/test/helper.rb +129 -0
  282. data/ruby/2.5/gems/rake-10.5.0/test/support/rakefile_definitions.rb +478 -0
  283. data/ruby/2.5/gems/rake-10.5.0/test/support/ruby_runner.rb +34 -0
  284. data/ruby/2.5/gems/rake-10.5.0/test/test_private_reader.rb +42 -0
  285. data/ruby/2.5/gems/rake-10.5.0/test/test_rake.rb +40 -0
  286. data/ruby/2.5/gems/rake-10.5.0/test/test_rake_application.rb +643 -0
  287. data/ruby/2.5/gems/rake-10.5.0/test/test_rake_application_options.rb +468 -0
  288. data/ruby/2.5/gems/rake-10.5.0/test/test_rake_backtrace.rb +119 -0
  289. data/ruby/2.5/gems/rake-10.5.0/test/test_rake_clean.rb +61 -0
  290. data/ruby/2.5/gems/rake-10.5.0/test/test_rake_cpu_counter.rb +68 -0
  291. data/ruby/2.5/gems/rake-10.5.0/test/test_rake_definitions.rb +84 -0
  292. data/ruby/2.5/gems/rake-10.5.0/test/test_rake_directory_task.rb +76 -0
  293. data/ruby/2.5/gems/rake-10.5.0/test/test_rake_dsl.rb +40 -0
  294. data/ruby/2.5/gems/rake-10.5.0/test/test_rake_early_time.rb +31 -0
  295. data/ruby/2.5/gems/rake-10.5.0/test/test_rake_extension.rb +59 -0
  296. data/ruby/2.5/gems/rake-10.5.0/test/test_rake_file_creation_task.rb +56 -0
  297. data/ruby/2.5/gems/rake-10.5.0/test/test_rake_file_list.rb +670 -0
  298. data/ruby/2.5/gems/rake-10.5.0/test/test_rake_file_list_path_map.rb +8 -0
  299. data/ruby/2.5/gems/rake-10.5.0/test/test_rake_file_task.rb +197 -0
  300. data/ruby/2.5/gems/rake-10.5.0/test/test_rake_file_utils.rb +314 -0
  301. data/ruby/2.5/gems/rake-10.5.0/test/test_rake_ftp_file.rb +74 -0
  302. data/ruby/2.5/gems/rake-10.5.0/test/test_rake_functional.rb +482 -0
  303. data/ruby/2.5/gems/rake-10.5.0/test/test_rake_invocation_chain.rb +64 -0
  304. data/ruby/2.5/gems/rake-10.5.0/test/test_rake_late_time.rb +18 -0
  305. data/ruby/2.5/gems/rake-10.5.0/test/test_rake_linked_list.rb +84 -0
  306. data/ruby/2.5/gems/rake-10.5.0/test/test_rake_makefile_loader.rb +46 -0
  307. data/ruby/2.5/gems/rake-10.5.0/test/test_rake_multi_task.rb +64 -0
  308. data/ruby/2.5/gems/rake-10.5.0/test/test_rake_name_space.rb +57 -0
  309. data/ruby/2.5/gems/rake-10.5.0/test/test_rake_package_task.rb +79 -0
  310. data/ruby/2.5/gems/rake-10.5.0/test/test_rake_path_map.rb +168 -0
  311. data/ruby/2.5/gems/rake-10.5.0/test/test_rake_path_map_explode.rb +34 -0
  312. data/ruby/2.5/gems/rake-10.5.0/test/test_rake_path_map_partial.rb +18 -0
  313. data/ruby/2.5/gems/rake-10.5.0/test/test_rake_pathname_extensions.rb +15 -0
  314. data/ruby/2.5/gems/rake-10.5.0/test/test_rake_pseudo_status.rb +21 -0
  315. data/ruby/2.5/gems/rake-10.5.0/test/test_rake_rake_test_loader.rb +20 -0
  316. data/ruby/2.5/gems/rake-10.5.0/test/test_rake_reduce_compat.rb +26 -0
  317. data/ruby/2.5/gems/rake-10.5.0/test/test_rake_require.rb +40 -0
  318. data/ruby/2.5/gems/rake-10.5.0/test/test_rake_rules.rb +388 -0
  319. data/ruby/2.5/gems/rake-10.5.0/test/test_rake_scope.rb +44 -0
  320. data/ruby/2.5/gems/rake-10.5.0/test/test_rake_task.rb +393 -0
  321. data/ruby/2.5/gems/rake-10.5.0/test/test_rake_task_argument_parsing.rb +119 -0
  322. data/ruby/2.5/gems/rake-10.5.0/test/test_rake_task_arguments.rb +127 -0
  323. data/ruby/2.5/gems/rake-10.5.0/test/test_rake_task_lib.rb +9 -0
  324. data/ruby/2.5/gems/rake-10.5.0/test/test_rake_task_manager.rb +178 -0
  325. data/ruby/2.5/gems/rake-10.5.0/test/test_rake_task_manager_argument_resolution.rb +19 -0
  326. data/ruby/2.5/gems/rake-10.5.0/test/test_rake_task_with_arguments.rb +172 -0
  327. data/ruby/2.5/gems/rake-10.5.0/test/test_rake_test_task.rb +146 -0
  328. data/ruby/2.5/gems/rake-10.5.0/test/test_rake_thread_pool.rb +145 -0
  329. data/ruby/2.5/gems/rake-10.5.0/test/test_rake_top_level_functions.rb +71 -0
  330. data/ruby/2.5/gems/rake-10.5.0/test/test_rake_win32.rb +72 -0
  331. data/ruby/2.5/gems/rake-10.5.0/test/test_thread_history_display.rb +101 -0
  332. data/ruby/2.5/gems/rake-10.5.0/test/test_trace_output.rb +52 -0
  333. data/ruby/2.5/gems/ruby-progressbar-1.10.0/LICENSE.txt +19 -0
  334. data/ruby/2.5/gems/ruby-progressbar-1.10.0/README.md +38 -0
  335. data/ruby/2.5/gems/ruby-progressbar-1.10.0/Rakefile +2 -0
  336. data/ruby/2.5/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/base.rb +183 -0
  337. data/ruby/2.5/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/calculators/length.rb +100 -0
  338. data/ruby/2.5/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/calculators/running_average.rb +9 -0
  339. data/ruby/2.5/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/components/bar.rb +102 -0
  340. data/ruby/2.5/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/components/percentage.rb +29 -0
  341. data/ruby/2.5/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/components/rate.rb +43 -0
  342. data/ruby/2.5/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/components/time.rb +107 -0
  343. data/ruby/2.5/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/components/title.rb +13 -0
  344. data/ruby/2.5/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/components.rb +5 -0
  345. data/ruby/2.5/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/errors/invalid_progress_error.rb +4 -0
  346. data/ruby/2.5/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/format/formatter.rb +27 -0
  347. data/ruby/2.5/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/format/molecule.rb +60 -0
  348. data/ruby/2.5/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/format/string.rb +36 -0
  349. data/ruby/2.5/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/format.rb +3 -0
  350. data/ruby/2.5/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/output.rb +68 -0
  351. data/ruby/2.5/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/outputs/non_tty.rb +47 -0
  352. data/ruby/2.5/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/outputs/null.rb +33 -0
  353. data/ruby/2.5/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/outputs/tty.rb +32 -0
  354. data/ruby/2.5/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/progress.rb +118 -0
  355. data/ruby/2.5/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/refinements/enumerator.rb +23 -0
  356. data/ruby/2.5/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/refinements.rb +1 -0
  357. data/ruby/2.5/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/throttle.rb +25 -0
  358. data/ruby/2.5/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/time.rb +32 -0
  359. data/ruby/2.5/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/timer.rb +72 -0
  360. data/ruby/2.5/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar/version.rb +3 -0
  361. data/ruby/2.5/gems/ruby-progressbar-1.10.0/lib/ruby-progressbar.rb +18 -0
  362. data/ruby/2.5/specifications/ansi-1.5.0.gemspec +49 -0
  363. data/ruby/2.5/specifications/builder-3.2.3.gemspec +21 -0
  364. data/ruby/2.5/specifications/minitest-5.11.3.gemspec +39 -0
  365. data/ruby/2.5/specifications/minitest-reporters-1.2.0.gemspec +49 -0
  366. data/ruby/2.5/specifications/rake-10.5.0.gemspec +43 -0
  367. data/ruby/2.5/specifications/ruby-progressbar-1.10.0.gemspec +46 -0
  368. data/steenfest_palindrome.gemspec +38 -0
  369. metadata +453 -0
@@ -0,0 +1,178 @@
1
+ require File.expand_path('../helper', __FILE__)
2
+
3
+ class TestRakeTaskManager < Rake::TestCase
4
+
5
+ def setup
6
+ super
7
+
8
+ @tm = Rake::TestCase::TaskManager.new
9
+ end
10
+
11
+ def test_create_task_manager
12
+ refute_nil @tm
13
+ assert_equal [], @tm.tasks
14
+ end
15
+
16
+ def test_define_task
17
+ t = @tm.define_task(Rake::Task, :t)
18
+ assert_equal "t", t.name
19
+ assert_equal @tm, t.application
20
+ end
21
+
22
+ def test_index
23
+ e = assert_raises RuntimeError do
24
+ @tm['bad']
25
+ end
26
+
27
+ assert_equal "Don't know how to build task 'bad' (see --tasks)", e.message
28
+ end
29
+
30
+ def test_name_lookup
31
+ t = @tm.define_task(Rake::Task, :t)
32
+ assert_equal t, @tm[:t]
33
+ end
34
+
35
+ def test_namespace_task_create
36
+ @tm.in_namespace("x") do
37
+ t = @tm.define_task(Rake::Task, :t)
38
+ assert_equal "x:t", t.name
39
+ end
40
+ assert_equal ["x:t"], @tm.tasks.map { |t| t.name }
41
+ end
42
+
43
+ def test_define_namespaced_task
44
+ t = @tm.define_task(Rake::Task, 'n:a:m:e:t')
45
+ assert_equal Rake::Scope.make("e", "m", "a", "n"), t.scope
46
+ assert_equal "n:a:m:e:t", t.name
47
+ assert_equal @tm, t.application
48
+ end
49
+
50
+ def test_define_namespace_in_namespace
51
+ t = nil
52
+ @tm.in_namespace("n") do
53
+ t = @tm.define_task(Rake::Task, 'a:m:e:t')
54
+ end
55
+ assert_equal Rake::Scope.make("e", "m", "a", "n"), t.scope
56
+ assert_equal "n:a:m:e:t", t.name
57
+ assert_equal @tm, t.application
58
+ end
59
+
60
+ def test_anonymous_namespace
61
+ anon_ns = @tm.in_namespace(nil) do
62
+ t = @tm.define_task(Rake::Task, :t)
63
+ assert_equal "_anon_1:t", t.name
64
+ end
65
+ task = anon_ns[:t]
66
+ assert_equal "_anon_1:t", task.name
67
+ end
68
+
69
+ def test_create_filetask_in_namespace
70
+ @tm.in_namespace("x") do
71
+ t = @tm.define_task(Rake::FileTask, "fn")
72
+ assert_equal "fn", t.name
73
+ end
74
+
75
+ assert_equal ["fn"], @tm.tasks.map { |t| t.name }
76
+ end
77
+
78
+ def test_namespace_yields_same_namespace_as_returned
79
+ yielded_namespace = nil
80
+ returned_namespace = @tm.in_namespace("x") do |ns|
81
+ yielded_namespace = ns
82
+ end
83
+ assert_equal returned_namespace, yielded_namespace
84
+ end
85
+
86
+ def test_name_lookup_with_implicit_file_tasks
87
+ FileUtils.touch 'README.rdoc'
88
+
89
+ t = @tm["README.rdoc"]
90
+
91
+ assert_equal "README.rdoc", t.name
92
+ assert Rake::FileTask === t
93
+ end
94
+
95
+ def test_name_lookup_with_nonexistent_task
96
+ assert_raises(RuntimeError) {
97
+ @tm["DOES NOT EXIST"]
98
+ }
99
+ end
100
+
101
+ def test_name_lookup_in_multiple_scopes
102
+ aa = nil
103
+ bb = nil
104
+ xx = @tm.define_task(Rake::Task, :xx)
105
+ top_z = @tm.define_task(Rake::Task, :z)
106
+ @tm.in_namespace("a") do
107
+ aa = @tm.define_task(Rake::Task, :aa)
108
+ mid_z = @tm.define_task(Rake::Task, :z)
109
+ ns_d = @tm.define_task(Rake::Task, "n:t")
110
+ @tm.in_namespace("b") do
111
+ bb = @tm.define_task(Rake::Task, :bb)
112
+ bot_z = @tm.define_task(Rake::Task, :z)
113
+
114
+ assert_equal Rake::Scope.make("b", "a"), @tm.current_scope
115
+
116
+ assert_equal bb, @tm["a:b:bb"]
117
+ assert_equal aa, @tm["a:aa"]
118
+ assert_equal xx, @tm["xx"]
119
+ assert_equal bot_z, @tm["z"]
120
+ assert_equal mid_z, @tm["^z"]
121
+ assert_equal top_z, @tm["^^z"]
122
+ assert_equal top_z, @tm["^^^z"] # Over the top
123
+ assert_equal top_z, @tm["rake:z"]
124
+ end
125
+
126
+ assert_equal Rake::Scope.make("a"), @tm.current_scope
127
+
128
+ assert_equal bb, @tm["a:b:bb"]
129
+ assert_equal aa, @tm["a:aa"]
130
+ assert_equal xx, @tm["xx"]
131
+ assert_equal bb, @tm["b:bb"]
132
+ assert_equal aa, @tm["aa"]
133
+ assert_equal mid_z, @tm["z"]
134
+ assert_equal top_z, @tm["^z"]
135
+ assert_equal top_z, @tm["^^z"] # Over the top
136
+ assert_equal top_z, @tm["rake:z"]
137
+ assert_equal ns_d, @tm["n:t"]
138
+ assert_equal ns_d, @tm["a:n:t"]
139
+ end
140
+
141
+ assert_equal Rake::Scope.make, @tm.current_scope
142
+
143
+ assert_equal Rake::Scope.make, xx.scope
144
+ assert_equal Rake::Scope.make('a'), aa.scope
145
+ assert_equal Rake::Scope.make('b', 'a'), bb.scope
146
+ end
147
+
148
+ def test_lookup_with_explicit_scopes
149
+ t1, t2, t3, s = (0...4).map { nil }
150
+ t1 = @tm.define_task(Rake::Task, :t)
151
+ @tm.in_namespace("a") do
152
+ t2 = @tm.define_task(Rake::Task, :t)
153
+ s = @tm.define_task(Rake::Task, :s)
154
+ @tm.in_namespace("b") do
155
+ t3 = @tm.define_task(Rake::Task, :t)
156
+ end
157
+ end
158
+ assert_equal t1, @tm[:t, Rake::Scope.make]
159
+ assert_equal t2, @tm[:t, Rake::Scope.make("a")]
160
+ assert_equal t3, @tm[:t, Rake::Scope.make("b", "a")]
161
+ assert_equal s, @tm[:s, Rake::Scope.make("b", "a")]
162
+ assert_equal s, @tm[:s, Rake::Scope.make("a")]
163
+ end
164
+
165
+ def test_correctly_scoped_prerequisites_are_invoked
166
+ values = []
167
+ @tm = Rake::Application.new
168
+ @tm.define_task(Rake::Task, :z) do values << "top z" end
169
+ @tm.in_namespace("a") do
170
+ @tm.define_task(Rake::Task, :z) do values << "next z" end
171
+ @tm.define_task(Rake::Task, :x => :z)
172
+ end
173
+
174
+ @tm["a:x"].invoke
175
+ assert_equal ["next z"], values
176
+ end
177
+
178
+ end
@@ -0,0 +1,19 @@
1
+ require File.expand_path('../helper', __FILE__)
2
+
3
+ class TestRakeTaskManagerArgumentResolution < Rake::TestCase
4
+
5
+ def test_good_arg_patterns
6
+ assert_equal [:t, [], []], task(:t)
7
+ assert_equal [:t, [], [:x]], task(:t => :x)
8
+ assert_equal [:t, [], [:x, :y]], task(:t => [:x, :y])
9
+
10
+ assert_equal [:t, [:a, :b], []], task(:t, [:a, :b])
11
+ assert_equal [:t, [:a, :b], [:x]], task(:t, [:a, :b] => :x)
12
+ assert_equal [:t, [:a, :b], [:x, :y]], task(:t, [:a, :b] => [:x, :y])
13
+ end
14
+
15
+ def task(*args)
16
+ tm = Rake::TestCase::TaskManager.new
17
+ tm.resolve_args(args)
18
+ end
19
+ end
@@ -0,0 +1,172 @@
1
+ require File.expand_path('../helper', __FILE__)
2
+
3
+ class TestRakeTaskWithArguments < Rake::TestCase
4
+ include Rake
5
+
6
+ def setup
7
+ super
8
+
9
+ Task.clear
10
+ Rake::TaskManager.record_task_metadata = true
11
+ end
12
+
13
+ def teardown
14
+ Rake::TaskManager.record_task_metadata = false
15
+ Rake.application.thread_pool.join
16
+
17
+ super
18
+ end
19
+
20
+ def test_no_args_given
21
+ t = task :t
22
+ assert_equal [], t.arg_names
23
+ end
24
+
25
+ def test_args_given
26
+ t = task :t, :a, :b
27
+ assert_equal [:a, :b], t.arg_names
28
+ end
29
+
30
+ def test_name_and_needs
31
+ t = task(:t => [:pre])
32
+ assert_equal "t", t.name
33
+ assert_equal [], t.arg_names
34
+ assert_equal ["pre"], t.prerequisites
35
+ end
36
+
37
+ def test_name_args_and_prereqs
38
+ t = task(:t, [:x, :y] => [:pre])
39
+ assert_equal "t", t.name
40
+ assert_equal [:x, :y], t.arg_names
41
+ assert_equal ["pre"], t.prerequisites
42
+ end
43
+
44
+ def test_arg_list_is_empty_if_no_args_given
45
+ t = task(:t) { |tt, args| assert_equal({}, args.to_hash) }
46
+ t.invoke(1, 2, 3)
47
+ end
48
+
49
+ def test_tasks_can_access_arguments_as_hash
50
+ t = task :t, :a, :b, :c do |tt, args|
51
+ assert_equal({:a => 1, :b => 2, :c => 3}, args.to_hash)
52
+ assert_equal 1, args[:a]
53
+ assert_equal 2, args[:b]
54
+ assert_equal 3, args[:c]
55
+ assert_equal 1, args.a
56
+ assert_equal 2, args.b
57
+ assert_equal 3, args.c
58
+ end
59
+ t.invoke(1, 2, 3)
60
+ end
61
+
62
+ def test_actions_of_various_arity_are_ok_with_args
63
+ notes = []
64
+ t = task(:t, :x) do
65
+ notes << :a
66
+ end
67
+ t.enhance do | |
68
+ notes << :b
69
+ end
70
+ t.enhance do |task|
71
+ notes << :c
72
+ assert_kind_of Task, task
73
+ end
74
+ t.enhance do |t2, args|
75
+ notes << :d
76
+ assert_equal t, t2
77
+ assert_equal({:x => 1}, args.to_hash)
78
+ end
79
+ t.invoke(1)
80
+ assert_equal [:a, :b, :c, :d], notes
81
+ end
82
+
83
+ def test_arguments_are_passed_to_block
84
+ t = task(:t, :a, :b) { |tt, args|
85
+ assert_equal({ :a => 1, :b => 2 }, args.to_hash)
86
+ }
87
+ t.invoke(1, 2)
88
+ end
89
+
90
+ def test_extra_parameters_are_ignored
91
+ t = task(:t, :a) { |tt, args|
92
+ assert_equal 1, args.a
93
+ assert_nil args.b
94
+ }
95
+ t.invoke(1, 2)
96
+ end
97
+
98
+ def test_arguments_are_passed_to_all_blocks
99
+ counter = 0
100
+ t = task :t, :a
101
+ task :t do |tt, args|
102
+ assert_equal 1, args.a
103
+ counter += 1
104
+ end
105
+ task :t do |tt, args|
106
+ assert_equal 1, args.a
107
+ counter += 1
108
+ end
109
+ t.invoke(1)
110
+ assert_equal 2, counter
111
+ end
112
+
113
+ def test_block_with_no_parameters_is_ok
114
+ t = task(:t) { }
115
+ t.invoke(1, 2)
116
+ end
117
+
118
+ def test_name_with_args
119
+ desc "T"
120
+ t = task(:tt, :a, :b)
121
+ assert_equal "tt", t.name
122
+ assert_equal "T", t.comment
123
+ assert_equal "[a,b]", t.arg_description
124
+ assert_equal "tt[a,b]", t.name_with_args
125
+ assert_equal [:a, :b], t.arg_names
126
+ end
127
+
128
+ def test_named_args_are_passed_to_prereqs
129
+ value = nil
130
+ task(:pre, :rev) { |t, args| value = args.rev }
131
+ t = task(:t, [:name, :rev] => [:pre])
132
+ t.invoke("bill", "1.2")
133
+ assert_equal "1.2", value
134
+ end
135
+
136
+ def test_args_not_passed_if_no_prereq_names_on_task
137
+ task(:pre) { |t, args|
138
+ assert_equal({}, args.to_hash)
139
+ assert_equal "bill", args.name
140
+ }
141
+ t = task(:t, [:name, :rev] => [:pre])
142
+ t.invoke("bill", "1.2")
143
+ end
144
+
145
+ def test_args_not_passed_if_no_prereq_names_on_multitask
146
+ task(:pre) { |t, args|
147
+ assert_equal({}, args.to_hash)
148
+ assert_equal "bill", args.name
149
+ }
150
+ t = multitask(:t, [:name, :rev] => [:pre])
151
+ t.invoke("bill", "1.2")
152
+ end
153
+
154
+ def test_args_not_passed_if_no_arg_names
155
+ task(:pre, :rev) { |t, args|
156
+ assert_equal({}, args.to_hash)
157
+ }
158
+ t = task(:t => [:pre])
159
+ t.invoke("bill", "1.2")
160
+ end
161
+
162
+ def test_values_at
163
+ t = task(:pre, [:a, :b, :c]) { |task, args|
164
+ a, b, c = args.values_at(:a, :b, :c)
165
+ assert_equal %w[1 2 3], [a, b, c]
166
+ }
167
+
168
+ t.invoke(*%w[1 2 3])
169
+
170
+ # HACK no assertions
171
+ end
172
+ end
@@ -0,0 +1,146 @@
1
+ require File.expand_path('../helper', __FILE__)
2
+ require 'rake/testtask'
3
+
4
+ class TestRakeTestTask < Rake::TestCase
5
+ include Rake
6
+
7
+ def test_initialize
8
+ tt = Rake::TestTask.new do |t| end
9
+ refute_nil tt
10
+ assert_equal :test, tt.name
11
+ assert_equal ['lib'], tt.libs
12
+ assert_equal 'test/test*.rb', tt.pattern
13
+ assert_equal false, tt.verbose
14
+ assert Task.task_defined?(:test)
15
+ end
16
+
17
+ def test_initialize_override
18
+ tt = Rake::TestTask.new(:example) do |t|
19
+ t.description = "Run example tests"
20
+ t.libs = ['src', 'ext']
21
+ t.pattern = 'test/tc_*.rb'
22
+ t.verbose = true
23
+ end
24
+ refute_nil tt
25
+ assert_equal "Run example tests", tt.description
26
+ assert_equal :example, tt.name
27
+ assert_equal ['src', 'ext'], tt.libs
28
+ assert_equal 'test/tc_*.rb', tt.pattern
29
+ assert_equal true, tt.verbose
30
+ assert Task.task_defined?(:example)
31
+ end
32
+
33
+ def test_file_list_env_test
34
+ ENV['TEST'] = 'testfile.rb'
35
+ tt = Rake::TestTask.new do |t|
36
+ t.pattern = '*'
37
+ end
38
+
39
+ assert_equal ["testfile.rb"], tt.file_list.to_a
40
+ ensure
41
+ ENV.delete 'TEST'
42
+ end
43
+
44
+ def test_libs_equals
45
+ test_task = Rake::TestTask.new do |t|
46
+ t.libs << ["A", "B"]
47
+ end
48
+
49
+ path = %w[lib A B].join File::PATH_SEPARATOR
50
+
51
+ assert_equal "-I\"#{path}\"", test_task.ruby_opts_string
52
+ end
53
+
54
+ def test_libs_equals_empty
55
+ test_task = Rake::TestTask.new do |t|
56
+ t.libs = []
57
+ end
58
+
59
+ assert_equal '', test_task.ruby_opts_string
60
+ end
61
+
62
+ def test_pattern_equals
63
+ tt = Rake::TestTask.new do |t|
64
+ t.pattern = '*.rb'
65
+ end
66
+ assert_equal ['*.rb'], tt.file_list.to_a
67
+ end
68
+
69
+ def test_pattern_equals_test_files_equals
70
+ tt = Rake::TestTask.new do |t|
71
+ t.test_files = FileList['a.rb', 'b.rb']
72
+ t.pattern = '*.rb'
73
+ end
74
+ assert_equal ['a.rb', 'b.rb', '*.rb'], tt.file_list.to_a
75
+ end
76
+
77
+ def test_run_code_direct
78
+ test_task = Rake::TestTask.new do |t|
79
+ t.loader = :direct
80
+ end
81
+
82
+ assert_equal '-e "ARGV.each{|f| require f}"', test_task.run_code
83
+ end
84
+
85
+ def test_run_code_rake
86
+ spec = Gem::Specification.new 'rake', 0
87
+ spec.loaded_from = File.join Gem::Specification.dirs.last, 'rake-0.gemspec'
88
+ rake, Gem.loaded_specs['rake'] = Gem.loaded_specs['rake'], spec
89
+
90
+ test_task = Rake::TestTask.new do |t|
91
+ t.loader = :rake
92
+ end
93
+
94
+ assert_match(/\A-I".*?" ".*?"\Z/, test_task.run_code)
95
+ ensure
96
+ Gem.loaded_specs['rake'] = rake
97
+ end
98
+
99
+ def test_run_code_rake_default_gem
100
+ skip 'this ruby does not have default gems' unless
101
+ Gem::Specification.method_defined? :default_specifications_dir
102
+
103
+ default_spec = Gem::Specification.new 'rake', 0
104
+ default_spec.loaded_from = File.join Gem::Specification.default_specifications_dir, 'rake-0.gemspec'
105
+ begin
106
+ rake, Gem.loaded_specs['rake'] = Gem.loaded_specs['rake'], default_spec
107
+
108
+ test_task = Rake::TestTask.new do |t|
109
+ t.loader = :rake
110
+ end
111
+
112
+ assert_match(/\A(-I".*?" *)* ".*?"\Z/, test_task.run_code)
113
+ ensure
114
+ Gem.loaded_specs['rake'] = rake
115
+ end
116
+ end
117
+
118
+ def test_run_code_testrb_ruby_1_8_2
119
+ test_task = Rake::TestTask.new do |t|
120
+ t.loader = :testrb
121
+ end
122
+
123
+ def test_task.ruby_version() '1.8.2' end
124
+
125
+ assert_match(/^-S testrb +".*"$/, test_task.run_code)
126
+ end
127
+
128
+ def test_run_code_testrb_ruby_1_8_6
129
+ test_task = Rake::TestTask.new do |t|
130
+ t.loader = :testrb
131
+ end
132
+
133
+ def test_task.ruby_version() '1.8.6' end
134
+
135
+ assert_match(/^-S testrb +$/, test_task.run_code)
136
+ end
137
+
138
+ def test_test_files_equals
139
+ tt = Rake::TestTask.new do |t|
140
+ t.test_files = FileList['a.rb', 'b.rb']
141
+ end
142
+
143
+ assert_equal ["a.rb", 'b.rb'], tt.file_list.to_a
144
+ end
145
+
146
+ end
@@ -0,0 +1,145 @@
1
+ require File.expand_path('../helper', __FILE__)
2
+ require 'rake/thread_pool'
3
+
4
+ class TestRakeTestThreadPool < Rake::TestCase
5
+ include Rake
6
+
7
+ def test_pool_executes_in_current_thread_for_zero_threads
8
+ pool = ThreadPool.new(0)
9
+ f = pool.future { Thread.current }
10
+ pool.join
11
+ assert_equal Thread.current, f.value
12
+ end
13
+
14
+ def test_pool_executes_in_other_thread_for_pool_of_size_one
15
+ pool = ThreadPool.new(1)
16
+ f = pool.future { Thread.current }
17
+ pool.join
18
+ refute_equal Thread.current, f.value
19
+ end
20
+
21
+ def test_pool_executes_in_two_other_threads_for_pool_of_size_two
22
+ pool = ThreadPool.new(2)
23
+ threads = 2.times.map {
24
+ pool.future {
25
+ sleep 0.1
26
+ Thread.current
27
+ }
28
+ }.each { |f|
29
+ f.value
30
+ }
31
+
32
+ refute_equal threads[0], threads[1]
33
+ refute_equal Thread.current, threads[0]
34
+ refute_equal Thread.current, threads[1]
35
+ ensure
36
+ pool.join
37
+ end
38
+
39
+ def test_pool_creates_the_correct_number_of_threads
40
+ pool = ThreadPool.new(2)
41
+ threads = Set.new
42
+ t_mutex = Mutex.new
43
+ 10.times.each do
44
+ pool.future do
45
+ sleep 0.02
46
+ t_mutex.synchronize { threads << Thread.current }
47
+ end
48
+ end
49
+ pool.join
50
+ assert_equal 2, threads.count
51
+ end
52
+
53
+ def test_pool_future_does_not_duplicate_arguments
54
+ pool = ThreadPool.new(2)
55
+ obj = Object.new
56
+ captured = nil
57
+ pool.future(obj) { |var| captured = var }
58
+ pool.join
59
+ assert_equal obj, captured
60
+ end
61
+
62
+ def test_pool_join_empties_queue
63
+ pool = ThreadPool.new(2)
64
+ repeat = 25
65
+ repeat.times {
66
+ pool.future do
67
+ repeat.times {
68
+ pool.future do
69
+ repeat.times {
70
+ pool.future do end
71
+ }
72
+ end
73
+ }
74
+ end
75
+ }
76
+
77
+ pool.join
78
+ assert_equal(
79
+ true,
80
+ pool.__send__(:__queue__).empty?,
81
+ "queue should be empty")
82
+ end
83
+
84
+ CustomError = Class.new(StandardError)
85
+
86
+ # test that throwing an exception way down in the blocks propagates
87
+ # to the top
88
+ def test_exceptions
89
+ pool = ThreadPool.new(10)
90
+
91
+ deep_exception_block = lambda do |count|
92
+ raise CustomError if count < 1
93
+ pool.future(count - 1, &deep_exception_block).value
94
+ end
95
+
96
+ assert_raises(CustomError) do
97
+ pool.future(2, &deep_exception_block).value
98
+ end
99
+ ensure
100
+ pool.join
101
+ end
102
+
103
+ def test_pool_prevents_deadlock
104
+ pool = ThreadPool.new(5)
105
+
106
+ common_dependency_a = pool.future { sleep 0.2 }
107
+ futures_a = 10.times.map {
108
+ pool.future {
109
+ common_dependency_a.value
110
+ sleep(rand() * 0.01)
111
+ }
112
+ }
113
+
114
+ common_dependency_b = pool.future { futures_a.each { |f| f.value } }
115
+ futures_b = 10.times.map {
116
+ pool.future {
117
+ common_dependency_b.value
118
+ sleep(rand() * 0.01)
119
+ }
120
+ }
121
+
122
+ futures_b.each { |f| f.value }
123
+ pool.join
124
+ end
125
+
126
+ def test_pool_reports_correct_results
127
+ pool = ThreadPool.new(7)
128
+
129
+ a = 18
130
+ b = 5
131
+ c = 3
132
+
133
+ result = a.times.map do
134
+ pool.future do
135
+ b.times.map do
136
+ pool.future { sleep rand * 0.001; c }
137
+ end.reduce(0) { |m, f| m + f.value }
138
+ end
139
+ end.reduce(0) { |m, f| m + f.value }
140
+
141
+ assert_equal a * b * c, result
142
+ pool.join
143
+ end
144
+
145
+ end