trackler 2.1.0.11 → 2.1.0.12

Sign up to get free protection for your applications and to get access to all the features.
Files changed (554) hide show
  1. checksums.yaml +4 -4
  2. data/bin/bump-content +3 -3
  3. data/common/CONTRIBUTING.md +1 -0
  4. data/common/exercises/atbash-cipher/description.md +1 -1
  5. data/common/exercises/dominoes/canonical-data.json +2 -2
  6. data/common/exercises/robot-name/description.md +2 -3
  7. data/lib/trackler/version.rb +1 -1
  8. data/tracks/coq/.gitignore +3 -0
  9. data/tracks/coq/README.md +12 -14
  10. data/tracks/coq/config.json +18 -1
  11. data/tracks/coq/exercises/TRACK_HINTS.md +22 -0
  12. data/tracks/coq/exercises/hello-world/example.v +12 -0
  13. data/tracks/coq/exercises/hello-world/helloworld.v +3 -0
  14. data/tracks/coq/exercises/hello-world/metadata.yml +3 -0
  15. data/tracks/coq/exercises/hello-world/test.v +9 -0
  16. data/tracks/coq/exercises/rna-transcription/DNA.v +4 -0
  17. data/tracks/coq/exercises/rna-transcription/example.v +15 -0
  18. data/tracks/coq/exercises/rna-transcription/metadata.yml +3 -0
  19. data/tracks/coq/exercises/rna-transcription/rna-transcription.v +5 -0
  20. data/tracks/coq/exercises/tautology/description.md +1 -0
  21. data/tracks/coq/exercises/tautology/example.v +4 -0
  22. data/tracks/coq/exercises/tautology/metadata.yml +3 -0
  23. data/tracks/coq/exercises/tautology/tautology.v +4 -0
  24. data/tracks/ecmascript/.travis.yml +0 -1
  25. data/tracks/ecmascript/Makefile +1 -1
  26. data/tracks/ecmascript/README.md +4 -2
  27. data/tracks/ecmascript/exercises/accumulate/package.json +3 -3
  28. data/tracks/ecmascript/exercises/acronym/package.json +3 -3
  29. data/tracks/ecmascript/exercises/all-your-base/package.json +3 -3
  30. data/tracks/ecmascript/exercises/allergies/package.json +3 -3
  31. data/tracks/ecmascript/exercises/anagram/package.json +3 -3
  32. data/tracks/ecmascript/exercises/atbash-cipher/package.json +3 -3
  33. data/tracks/ecmascript/exercises/beer-song/package.json +3 -3
  34. data/tracks/ecmascript/exercises/binary-search-tree/package.json +3 -3
  35. data/tracks/ecmascript/exercises/binary-search/package.json +3 -3
  36. data/tracks/ecmascript/exercises/binary/package.json +3 -3
  37. data/tracks/ecmascript/exercises/bob/package.json +3 -3
  38. data/tracks/ecmascript/exercises/bracket-push/package.json +3 -3
  39. data/tracks/ecmascript/exercises/circular-buffer/package.json +3 -3
  40. data/tracks/ecmascript/exercises/clock/package.json +3 -3
  41. data/tracks/ecmascript/exercises/crypto-square/package.json +3 -3
  42. data/tracks/ecmascript/exercises/custom-set/package.json +3 -3
  43. data/tracks/ecmascript/exercises/diamond/package.json +3 -3
  44. data/tracks/ecmascript/exercises/difference-of-squares/package.json +3 -3
  45. data/tracks/ecmascript/exercises/etl/package.json +3 -3
  46. data/tracks/ecmascript/exercises/food-chain/package.json +3 -3
  47. data/tracks/ecmascript/exercises/gigasecond/package.json +3 -3
  48. data/tracks/ecmascript/exercises/grade-school/package.json +3 -3
  49. data/tracks/ecmascript/exercises/grains/package.json +3 -3
  50. data/tracks/ecmascript/exercises/hamming/package.json +3 -3
  51. data/tracks/ecmascript/exercises/hello-world/package.json +3 -3
  52. data/tracks/ecmascript/exercises/hexadecimal/package.json +3 -3
  53. data/tracks/ecmascript/exercises/isogram/package.json +3 -3
  54. data/tracks/ecmascript/exercises/kindergarten-garden/package.json +3 -3
  55. data/tracks/ecmascript/exercises/largest-series-product/package.json +3 -3
  56. data/tracks/ecmascript/exercises/leap/package.json +3 -3
  57. data/tracks/ecmascript/exercises/linked-list/package.json +3 -3
  58. data/tracks/ecmascript/exercises/luhn/package.json +3 -3
  59. data/tracks/ecmascript/exercises/matrix/package.json +3 -3
  60. data/tracks/ecmascript/exercises/meetup/package.json +3 -3
  61. data/tracks/ecmascript/exercises/nth-prime/package.json +3 -3
  62. data/tracks/ecmascript/exercises/ocr-numbers/package.json +3 -3
  63. data/tracks/ecmascript/exercises/octal/package.json +3 -3
  64. data/tracks/ecmascript/exercises/palindrome-products/package.json +3 -3
  65. data/tracks/ecmascript/exercises/pangram/package.json +3 -3
  66. data/tracks/ecmascript/exercises/pascals-triangle/package.json +3 -3
  67. data/tracks/ecmascript/exercises/perfect-numbers/package.json +3 -3
  68. data/tracks/ecmascript/exercises/phone-number/package.json +3 -3
  69. data/tracks/ecmascript/exercises/pig-latin/package.json +3 -3
  70. data/tracks/ecmascript/exercises/prime-factors/package.json +3 -3
  71. data/tracks/ecmascript/exercises/pythagorean-triplet/package.json +3 -3
  72. data/tracks/ecmascript/exercises/queen-attack/package.json +3 -3
  73. data/tracks/ecmascript/exercises/raindrops/package.json +3 -3
  74. data/tracks/ecmascript/exercises/rna-transcription/package.json +3 -3
  75. data/tracks/ecmascript/exercises/robot-name/package.json +3 -3
  76. data/tracks/ecmascript/exercises/robot-simulator/package.json +3 -3
  77. data/tracks/ecmascript/exercises/roman-numerals/package.json +3 -3
  78. data/tracks/ecmascript/exercises/saddle-points/package.json +3 -3
  79. data/tracks/ecmascript/exercises/say/package.json +3 -3
  80. data/tracks/ecmascript/exercises/scrabble-score/package.json +3 -3
  81. data/tracks/ecmascript/exercises/secret-handshake/package.json +3 -3
  82. data/tracks/ecmascript/exercises/series/package.json +3 -3
  83. data/tracks/ecmascript/exercises/sieve/package.json +3 -3
  84. data/tracks/ecmascript/exercises/simple-cipher/package.json +3 -3
  85. data/tracks/ecmascript/exercises/space-age/package.json +3 -3
  86. data/tracks/ecmascript/exercises/strain/package.json +3 -3
  87. data/tracks/ecmascript/exercises/sum-of-multiples/package.json +3 -3
  88. data/tracks/ecmascript/exercises/triangle/package.json +3 -3
  89. data/tracks/ecmascript/exercises/trinary/package.json +3 -3
  90. data/tracks/ecmascript/exercises/two-bucket/package.json +3 -3
  91. data/tracks/ecmascript/exercises/word-count/package.json +3 -3
  92. data/tracks/ecmascript/exercises/wordy/package.json +3 -3
  93. data/tracks/ecmascript/package.json +3 -3
  94. data/tracks/ecmascript/yarn.lock +2886 -0
  95. data/tracks/elixir/exercises/isogram/isogram_test.exs +0 -10
  96. data/tracks/elixir/exercises/strain/strain.exs +1 -2
  97. data/tracks/erlang/exercises/roman-numerals/test/roman_numerals_tests.erl +1 -1
  98. data/tracks/go/exercises/binary-search-tree/binary_search_tree_test.go +36 -9
  99. data/tracks/go/exercises/bracket-push/.meta/gen.go +49 -0
  100. data/tracks/go/exercises/bracket-push/bracket_push_test.go +1 -43
  101. data/tracks/go/exercises/bracket-push/cases_test.go +83 -0
  102. data/tracks/go/exercises/bracket-push/example.go +13 -16
  103. data/tracks/go/gen/gen.go +26 -2
  104. data/tracks/haskell/exercises/accumulate/package.yaml +1 -1
  105. data/tracks/haskell/exercises/accumulate/test/Tests.hs +2 -2
  106. data/tracks/haskell/exercises/acronym/package.yaml +1 -1
  107. data/tracks/haskell/exercises/acronym/test/Tests.hs +1 -2
  108. data/tracks/haskell/exercises/all-your-base/package.yaml +1 -1
  109. data/tracks/haskell/exercises/all-your-base/test/Tests.hs +1 -2
  110. data/tracks/haskell/exercises/allergies/package.yaml +1 -1
  111. data/tracks/haskell/exercises/allergies/test/Tests.hs +1 -1
  112. data/tracks/haskell/exercises/alphametics/package.yaml +1 -1
  113. data/tracks/haskell/exercises/alphametics/test/Tests.hs +1 -2
  114. data/tracks/haskell/exercises/anagram/package.yaml +1 -1
  115. data/tracks/haskell/exercises/anagram/test/Tests.hs +1 -2
  116. data/tracks/haskell/exercises/atbash-cipher/package.yaml +1 -1
  117. data/tracks/haskell/exercises/atbash-cipher/test/Tests.hs +1 -1
  118. data/tracks/haskell/exercises/bank-account/package.yaml +1 -1
  119. data/tracks/haskell/exercises/bank-account/test/Tests.hs +2 -2
  120. data/tracks/haskell/exercises/beer-song/package.yaml +1 -1
  121. data/tracks/haskell/exercises/beer-song/test/Tests.hs +8 -10
  122. data/tracks/haskell/exercises/binary-search-tree/package.yaml +1 -1
  123. data/tracks/haskell/exercises/binary-search-tree/test/Tests.hs +2 -2
  124. data/tracks/haskell/exercises/binary/package.yaml +1 -1
  125. data/tracks/haskell/exercises/binary/test/Tests.hs +1 -2
  126. data/tracks/haskell/exercises/bob/package.yaml +1 -1
  127. data/tracks/haskell/exercises/bob/test/Tests.hs +1 -2
  128. data/tracks/haskell/exercises/bowling/package.yaml +1 -1
  129. data/tracks/haskell/exercises/bowling/test/Tests.hs +5 -6
  130. data/tracks/haskell/exercises/bracket-push/package.yaml +1 -1
  131. data/tracks/haskell/exercises/bracket-push/test/Tests.hs +1 -2
  132. data/tracks/haskell/exercises/change/package.yaml +1 -1
  133. data/tracks/haskell/exercises/change/test/Tests.hs +2 -3
  134. data/tracks/haskell/exercises/clock/package.yaml +1 -1
  135. data/tracks/haskell/exercises/clock/test/Tests.hs +1 -1
  136. data/tracks/haskell/exercises/connect/package.yaml +1 -1
  137. data/tracks/haskell/exercises/connect/test/Tests.hs +1 -2
  138. data/tracks/haskell/exercises/crypto-square/package.yaml +1 -1
  139. data/tracks/haskell/exercises/crypto-square/test/Tests.hs +1 -2
  140. data/tracks/haskell/exercises/custom-set/package.yaml +1 -1
  141. data/tracks/haskell/exercises/custom-set/test/Tests.hs +1 -1
  142. data/tracks/haskell/exercises/difference-of-squares/package.yaml +1 -1
  143. data/tracks/haskell/exercises/difference-of-squares/test/Tests.hs +1 -1
  144. data/tracks/haskell/exercises/dominoes/package.yaml +1 -1
  145. data/tracks/haskell/exercises/dominoes/test/Tests.hs +2 -3
  146. data/tracks/haskell/exercises/etl/package.yaml +1 -1
  147. data/tracks/haskell/exercises/etl/test/Tests.hs +1 -1
  148. data/tracks/haskell/exercises/food-chain/package.yaml +1 -1
  149. data/tracks/haskell/exercises/food-chain/test/Tests.hs +8 -10
  150. data/tracks/haskell/exercises/forth/package.yaml +1 -1
  151. data/tracks/haskell/exercises/forth/test/Tests.hs +1 -1
  152. data/tracks/haskell/exercises/gigasecond/package.yaml +1 -1
  153. data/tracks/haskell/exercises/gigasecond/test/Tests.hs +12 -13
  154. data/tracks/haskell/exercises/go-counting/package.yaml +1 -1
  155. data/tracks/haskell/exercises/go-counting/test/Tests.hs +2 -2
  156. data/tracks/haskell/exercises/grade-school/package.yaml +1 -1
  157. data/tracks/haskell/exercises/grade-school/test/Tests.hs +2 -2
  158. data/tracks/haskell/exercises/grains/package.yaml +1 -1
  159. data/tracks/haskell/exercises/grains/test/Tests.hs +1 -1
  160. data/tracks/haskell/exercises/hamming/package.yaml +1 -1
  161. data/tracks/haskell/exercises/hamming/test/Tests.hs +1 -2
  162. data/tracks/haskell/exercises/hello-world/package.yaml +1 -1
  163. data/tracks/haskell/exercises/hello-world/test/Tests.hs +3 -5
  164. data/tracks/haskell/exercises/hexadecimal/package.yaml +1 -1
  165. data/tracks/haskell/exercises/hexadecimal/test/Tests.hs +1 -2
  166. data/tracks/haskell/exercises/house/package.yaml +1 -1
  167. data/tracks/haskell/exercises/house/test/Tests.hs +8 -10
  168. data/tracks/haskell/exercises/kindergarten-garden/package.yaml +1 -1
  169. data/tracks/haskell/exercises/kindergarten-garden/test/Tests.hs +2 -2
  170. data/tracks/haskell/exercises/largest-series-product/package.yaml +1 -1
  171. data/tracks/haskell/exercises/largest-series-product/test/Tests.hs +1 -3
  172. data/tracks/haskell/exercises/leap/package.yaml +1 -1
  173. data/tracks/haskell/exercises/leap/test/Tests.hs +9 -22
  174. data/tracks/haskell/exercises/lens-person/package.yaml +1 -1
  175. data/tracks/haskell/exercises/lens-person/test/Tests.hs +2 -2
  176. data/tracks/haskell/exercises/linked-list/package.yaml +1 -1
  177. data/tracks/haskell/exercises/linked-list/test/Tests.hs +2 -2
  178. data/tracks/haskell/exercises/list-ops/package.yaml +1 -1
  179. data/tracks/haskell/exercises/list-ops/test/Tests.hs +2 -2
  180. data/tracks/haskell/exercises/luhn/examples/success-standard/src/Luhn.hs +8 -23
  181. data/tracks/haskell/exercises/luhn/package.yaml +1 -1
  182. data/tracks/haskell/exercises/luhn/src/Luhn.hs +2 -14
  183. data/tracks/haskell/exercises/luhn/test/Tests.hs +68 -70
  184. data/tracks/haskell/exercises/matrix/package.yaml +1 -1
  185. data/tracks/haskell/exercises/matrix/test/Tests.hs +2 -2
  186. data/tracks/haskell/exercises/meetup/package.yaml +1 -1
  187. data/tracks/haskell/exercises/meetup/test/Tests.hs +1 -2
  188. data/tracks/haskell/exercises/minesweeper/package.yaml +1 -1
  189. data/tracks/haskell/exercises/minesweeper/test/Tests.hs +1 -2
  190. data/tracks/haskell/exercises/nth-prime/package.yaml +1 -1
  191. data/tracks/haskell/exercises/nth-prime/test/Tests.hs +1 -2
  192. data/tracks/haskell/exercises/nucleotide-count/package.yaml +1 -1
  193. data/tracks/haskell/exercises/nucleotide-count/test/Tests.hs +1 -1
  194. data/tracks/haskell/exercises/ocr-numbers/package.yaml +1 -1
  195. data/tracks/haskell/exercises/ocr-numbers/test/Tests.hs +1 -2
  196. data/tracks/haskell/exercises/octal/package.yaml +1 -1
  197. data/tracks/haskell/exercises/octal/test/Tests.hs +2 -2
  198. data/tracks/haskell/exercises/palindrome-products/package.yaml +1 -1
  199. data/tracks/haskell/exercises/palindrome-products/test/Tests.hs +1 -1
  200. data/tracks/haskell/exercises/pangram/package.yaml +1 -1
  201. data/tracks/haskell/exercises/pangram/test/Tests.hs +1 -2
  202. data/tracks/haskell/exercises/parallel-letter-frequency/package.yaml +1 -1
  203. data/tracks/haskell/exercises/parallel-letter-frequency/test/Tests.hs +1 -1
  204. data/tracks/haskell/exercises/pascals-triangle/package.yaml +1 -1
  205. data/tracks/haskell/exercises/pascals-triangle/test/Tests.hs +1 -2
  206. data/tracks/haskell/exercises/phone-number/examples/success-standard/src/Phone.hs +12 -3
  207. data/tracks/haskell/exercises/phone-number/package.yaml +1 -1
  208. data/tracks/haskell/exercises/phone-number/test/Tests.hs +24 -17
  209. data/tracks/haskell/exercises/pig-latin/package.yaml +1 -1
  210. data/tracks/haskell/exercises/pig-latin/test/Tests.hs +1 -2
  211. data/tracks/haskell/exercises/pov/package.yaml +1 -1
  212. data/tracks/haskell/exercises/pov/test/Tests.hs +6 -9
  213. data/tracks/haskell/exercises/prime-factors/package.yaml +1 -1
  214. data/tracks/haskell/exercises/prime-factors/test/Tests.hs +1 -2
  215. data/tracks/haskell/exercises/pythagorean-triplet/package.yaml +1 -1
  216. data/tracks/haskell/exercises/pythagorean-triplet/test/Tests.hs +1 -1
  217. data/tracks/haskell/exercises/queen-attack/package.yaml +1 -1
  218. data/tracks/haskell/exercises/queen-attack/test/Tests.hs +1 -1
  219. data/tracks/haskell/exercises/raindrops/package.yaml +1 -1
  220. data/tracks/haskell/exercises/raindrops/test/Tests.hs +1 -2
  221. data/tracks/haskell/exercises/rna-transcription/package.yaml +1 -1
  222. data/tracks/haskell/exercises/rna-transcription/test/Tests.hs +1 -2
  223. data/tracks/haskell/exercises/robot-name/package.yaml +1 -1
  224. data/tracks/haskell/exercises/robot-name/test/Tests.hs +2 -2
  225. data/tracks/haskell/exercises/robot-simulator/package.yaml +1 -1
  226. data/tracks/haskell/exercises/robot-simulator/test/Tests.hs +1 -1
  227. data/tracks/haskell/exercises/roman-numerals/package.yaml +1 -1
  228. data/tracks/haskell/exercises/roman-numerals/test/Tests.hs +59 -41
  229. data/tracks/haskell/exercises/run-length-encoding/package.yaml +1 -1
  230. data/tracks/haskell/exercises/run-length-encoding/test/Tests.hs +1 -1
  231. data/tracks/haskell/exercises/saddle-points/package.yaml +1 -1
  232. data/tracks/haskell/exercises/saddle-points/test/Tests.hs +1 -2
  233. data/tracks/haskell/exercises/say/package.yaml +1 -1
  234. data/tracks/haskell/exercises/say/test/Tests.hs +1 -2
  235. data/tracks/haskell/exercises/scrabble-score/package.yaml +1 -1
  236. data/tracks/haskell/exercises/scrabble-score/test/Tests.hs +1 -1
  237. data/tracks/haskell/exercises/secret-handshake/package.yaml +1 -1
  238. data/tracks/haskell/exercises/secret-handshake/test/Tests.hs +2 -2
  239. data/tracks/haskell/exercises/series/package.yaml +1 -1
  240. data/tracks/haskell/exercises/series/test/Tests.hs +2 -2
  241. data/tracks/haskell/exercises/sgf-parsing/package.yaml +1 -1
  242. data/tracks/haskell/exercises/sgf-parsing/test/Tests.hs +1 -2
  243. data/tracks/haskell/exercises/sieve/package.yaml +1 -1
  244. data/tracks/haskell/exercises/sieve/test/Tests.hs +1 -2
  245. data/tracks/haskell/exercises/simple-cipher/package.yaml +1 -1
  246. data/tracks/haskell/exercises/simple-cipher/test/Tests.hs +2 -2
  247. data/tracks/haskell/exercises/simple-linked-list/package.yaml +1 -1
  248. data/tracks/haskell/exercises/simple-linked-list/test/Tests.hs +2 -2
  249. data/tracks/haskell/exercises/space-age/package.yaml +1 -1
  250. data/tracks/haskell/exercises/space-age/test/Tests.hs +1 -2
  251. data/tracks/haskell/exercises/strain/package.yaml +1 -1
  252. data/tracks/haskell/exercises/strain/test/Tests.hs +2 -2
  253. data/tracks/haskell/exercises/sublist/package.yaml +1 -1
  254. data/tracks/haskell/exercises/sublist/test/Tests.hs +1 -1
  255. data/tracks/haskell/exercises/sum-of-multiples/package.yaml +1 -1
  256. data/tracks/haskell/exercises/sum-of-multiples/test/Tests.hs +1 -2
  257. data/tracks/haskell/exercises/triangle/package.yaml +1 -1
  258. data/tracks/haskell/exercises/triangle/test/Tests.hs +1 -2
  259. data/tracks/haskell/exercises/trinary/package.yaml +1 -1
  260. data/tracks/haskell/exercises/trinary/test/Tests.hs +2 -2
  261. data/tracks/haskell/exercises/word-count/package.yaml +1 -1
  262. data/tracks/haskell/exercises/word-count/test/Tests.hs +1 -2
  263. data/tracks/haskell/exercises/wordy/package.yaml +1 -1
  264. data/tracks/haskell/exercises/wordy/test/Tests.hs +1 -2
  265. data/tracks/haskell/exercises/zebra-puzzle/package.yaml +1 -1
  266. data/tracks/haskell/exercises/zebra-puzzle/test/Tests.hs +3 -4
  267. data/tracks/haskell/exercises/zipper/package.yaml +1 -1
  268. data/tracks/haskell/exercises/zipper/test/Tests.hs +2 -2
  269. data/tracks/java/.github/PULL_REQUEST_TEMPLATE.md +10 -0
  270. data/tracks/java/POLICIES.md +67 -0
  271. data/tracks/java/config.json +7 -10
  272. data/tracks/java/exercises/acronym/src/example/java/Acronym.java +6 -4
  273. data/tracks/java/exercises/acronym/src/main/java/Acronym.java +11 -0
  274. data/tracks/java/exercises/atbash-cipher/src/test/java/AtbashTest.java +1 -1
  275. data/tracks/java/exercises/beer-song/src/test/java/BeerSongTest.java +6 -6
  276. data/tracks/java/exercises/binary-search-tree/src/test/java/BSTTest.java +8 -8
  277. data/tracks/java/exercises/binary-search/src/test/java/BinarySearchTest.java +9 -9
  278. data/tracks/java/exercises/bob/src/test/java/BobTest.java +17 -17
  279. data/tracks/java/exercises/crypto-square/src/test/java/CryptoSquareTest.java +14 -14
  280. data/tracks/java/exercises/difference-of-squares/src/example/java/DifferenceOfSquaresCalculator.java +4 -4
  281. data/tracks/java/exercises/difference-of-squares/src/main/java/DifferenceOfSquaresCalculator.java +11 -1
  282. data/tracks/java/exercises/hello-world/src/main/java/HelloWorld.java +1 -1
  283. data/tracks/java/exercises/pangram/src/main/java/PangramChecker.java +2 -1
  284. data/tracks/java/exercises/raindrops/src/example/java/RaindropConverter.java +4 -3
  285. data/tracks/java/exercises/raindrops/src/main/java/RaindropConverter.java +7 -0
  286. data/tracks/java/exercises/rna-transcription/src/example/java/RnaTranscription.java +2 -2
  287. data/tracks/java/exercises/rna-transcription/src/main/java/RnaTranscription.java +2 -2
  288. data/tracks/java/exercises/rna-transcription/src/test/java/RnaTranscriptionTest.java +6 -6
  289. data/tracks/java/exercises/run-length-encoding/build.gradle +17 -0
  290. data/tracks/java/exercises/run-length-encoding/src/example/java/RunLengthEncoding.java +67 -0
  291. data/tracks/java/exercises/run-length-encoding/src/main/java/RunLengthEncoding.java +9 -0
  292. data/tracks/java/exercises/run-length-encoding/src/test/java/RunLengthEncodingTest.java +111 -0
  293. data/tracks/java/exercises/scrabble-score/src/example/java/Scrabble.java +5 -6
  294. data/tracks/java/exercises/scrabble-score/src/main/java/Scrabble.java +11 -0
  295. data/tracks/java/exercises/scrabble-score/src/test/java/ScrabbleScoreTest.java +1 -3
  296. data/tracks/java/exercises/space-age/src/example/java/SpaceAge.java +13 -12
  297. data/tracks/java/exercises/space-age/src/main/java/SpaceAge.java +43 -0
  298. data/tracks/javascript/config.json +12 -2
  299. data/tracks/javascript/docs/TESTS.md +2 -2
  300. data/tracks/javascript/exercises/minesweeper/example.js +48 -0
  301. data/tracks/javascript/exercises/minesweeper/minesweeper.spec.js +182 -0
  302. data/tracks/lisp/.travis.yml +1 -1
  303. data/tracks/lisp/bin/xlisp-test.lisp +23 -5
  304. data/tracks/lisp/config.json +114 -29
  305. data/tracks/ocaml/config.json +10 -5
  306. data/tracks/ocaml/exercises/acronym/.merlin +5 -0
  307. data/tracks/ocaml/exercises/acronym/Makefile +11 -0
  308. data/tracks/ocaml/exercises/acronym/acronym.mli +2 -0
  309. data/tracks/ocaml/exercises/acronym/example.ml +12 -0
  310. data/tracks/ocaml/exercises/acronym/test.ml +26 -0
  311. data/tracks/ocaml/exercises/bowling/bowling.mli +4 -2
  312. data/tracks/ocaml/exercises/bowling/example.ml +56 -16
  313. data/tracks/ocaml/exercises/bowling/test.ml +132 -27
  314. data/tracks/ocaml/exercises/dominoes/test.ml +1 -1
  315. data/tracks/ocaml/exercises/phone-number/test.ml +0 -2
  316. data/tracks/ocaml/tools/test-generator/src/special_cases.ml +16 -0
  317. data/tracks/ocaml/tools/test-generator/templates/acronym/template.ml +16 -0
  318. data/tracks/ocaml/tools/test-generator/templates/bowling/template.ml +34 -0
  319. data/tracks/perl5/.github/stale.yml +21 -0
  320. data/tracks/perl6/.github/stale.yml +21 -0
  321. data/tracks/perl6/exercises/accumulate/accumulate.t +5 -13
  322. data/tracks/perl6/exercises/accumulate/example.yaml +23 -0
  323. data/tracks/perl6/exercises/allergies/allergies.t +138 -141
  324. data/tracks/perl6/exercises/allergies/example.yaml +21 -0
  325. data/tracks/perl6/exercises/anagram/anagram.t +141 -143
  326. data/tracks/perl6/exercises/anagram/example.yaml +6 -0
  327. data/tracks/perl6/exercises/atbash-cipher/atbash-cipher.t +99 -101
  328. data/tracks/perl6/exercises/atbash-cipher/example.yaml +13 -0
  329. data/tracks/perl6/exercises/grains/example.yaml +13 -0
  330. data/tracks/perl6/exercises/grains/grains.t +86 -89
  331. data/tracks/perl6/exercises/linked-list/example.yaml +81 -0
  332. data/tracks/perl6/exercises/linked-list/linked-list.t +4 -3
  333. data/tracks/perl6/exercises/raindrops/example.yaml +12 -0
  334. data/tracks/perl6/exercises/raindrops/raindrops.t +124 -127
  335. data/tracks/perl6/exercises/rna-transcription/example.yaml +12 -0
  336. data/tracks/perl6/exercises/rna-transcription/rna-transcription.t +75 -78
  337. data/tracks/perl6/exercises/robot-name/example.yaml +25 -0
  338. data/tracks/perl6/exercises/robot-name/robot-name.t +5 -7
  339. data/tracks/perl6/exercises/scrabble-score/example.yaml +6 -0
  340. data/tracks/perl6/exercises/scrabble-score/scrabble-score.t +81 -84
  341. data/tracks/perl6/exercises/space-age/example.yaml +6 -0
  342. data/tracks/perl6/exercises/space-age/space-age.t +71 -74
  343. data/tracks/perl6/exercises/word-count/example.yaml +6 -0
  344. data/tracks/perl6/exercises/word-count/word-count.t +125 -128
  345. data/tracks/perl6/exercises/wordy/example.yaml +12 -0
  346. data/tracks/perl6/exercises/wordy/wordy.t +117 -120
  347. data/tracks/perl6/templates/test.mustache +3 -1
  348. data/tracks/php/config.json +5 -0
  349. data/tracks/php/exercises/sum-of-multiples/example.php +15 -0
  350. data/tracks/php/exercises/sum-of-multiples/sum-of-multiples_test.php +64 -0
  351. data/tracks/python/exercises/book-store/book_store_test.py +1 -1
  352. data/tracks/python/exercises/rail-fence-cipher/rail_fence_cipher_test.py +7 -7
  353. data/tracks/python/exercises/tournament/tournament_test.py +62 -15
  354. data/tracks/r/docs/TESTS.md +2 -0
  355. data/tracks/r/exercises/TRACK_HINTS.md +1 -1
  356. data/tracks/racket/docs/INSTALLATION.md +13 -3
  357. data/tracks/ruby/README.md +27 -21
  358. data/tracks/ruby/bin/generate +3 -3
  359. data/tracks/ruby/config.json +7 -6
  360. data/tracks/ruby/exercises/accumulate/{example.rb → .meta/solutions/accumulate.rb} +0 -0
  361. data/tracks/ruby/exercises/acronym/.meta/generator/{acronym_cases.rb → acronym_case.rb} +0 -0
  362. data/tracks/ruby/exercises/acronym/{example.rb → .meta/solutions/acronym.rb} +0 -0
  363. data/tracks/ruby/exercises/all-your-base/.meta/generator/{all_your_base_cases.rb → all_your_base_case.rb} +0 -0
  364. data/tracks/ruby/exercises/all-your-base/{example.rb → .meta/solutions/all_your_base.rb} +0 -0
  365. data/tracks/ruby/exercises/allergies/{example.rb → .meta/solutions/allergies.rb} +0 -0
  366. data/tracks/ruby/exercises/alphametics/.meta/generator/{alphametics_cases.rb → alphametics_case.rb} +0 -0
  367. data/tracks/ruby/exercises/alphametics/.meta/generator/test_template.erb +2 -2
  368. data/tracks/ruby/exercises/alphametics/{example.rb → .meta/solutions/alphametics.rb} +0 -0
  369. data/tracks/ruby/exercises/anagram/.meta/generator/{anagram_cases.rb → anagram_case.rb} +0 -0
  370. data/tracks/ruby/exercises/anagram/{example.rb → .meta/solutions/anagram.rb} +0 -0
  371. data/tracks/ruby/exercises/atbash-cipher/{example.rb → .meta/solutions/atbash_cipher.rb} +0 -0
  372. data/tracks/ruby/exercises/beer-song/.meta/generator/{beer_song_cases.rb → beer_song_case.rb} +0 -0
  373. data/tracks/ruby/exercises/beer-song/{example.rb → .meta/solutions/beer_song.rb} +0 -0
  374. data/tracks/ruby/exercises/binary-search-tree/{example.rb → .meta/solutions/binary_search_tree.rb} +0 -0
  375. data/tracks/ruby/exercises/binary-search/{example.rb → .meta/solutions/binary_search.rb} +0 -0
  376. data/tracks/ruby/exercises/binary/.meta/generator/{binary_cases.rb → binary_case.rb} +0 -0
  377. data/tracks/ruby/exercises/binary/{example.rb → .meta/solutions/binary.rb} +0 -0
  378. data/tracks/ruby/exercises/bob/{example.rb → .meta/solutions/bob.rb} +0 -0
  379. data/tracks/ruby/exercises/bowling/.meta/generator/{bowling_cases.rb → bowling_case.rb} +0 -0
  380. data/tracks/ruby/exercises/bowling/.meta/generator/test_template.erb +2 -2
  381. data/tracks/ruby/exercises/bowling/{example.rb → .meta/solutions/bowling.rb} +0 -0
  382. data/tracks/ruby/exercises/bracket-push/.meta/generator/{bracket_push_cases.rb → bracket_push_case.rb} +0 -0
  383. data/tracks/ruby/exercises/bracket-push/{example.rb → .meta/solutions/bracket_push.rb} +0 -0
  384. data/tracks/ruby/exercises/circular-buffer/{example.rb → .meta/solutions/circular_buffer.rb} +0 -0
  385. data/tracks/ruby/exercises/clock/.meta/generator/{clock_cases.rb → clock_case.rb} +0 -0
  386. data/tracks/ruby/exercises/clock/{example.rb → .meta/solutions/clock.rb} +0 -0
  387. data/tracks/ruby/exercises/connect/.meta/generator/{connect_cases.rb → connect_case.rb} +0 -0
  388. data/tracks/ruby/exercises/connect/.meta/generator/test_template.erb +2 -2
  389. data/tracks/ruby/exercises/connect/{example.rb → .meta/solutions/connect.rb} +0 -0
  390. data/tracks/ruby/exercises/crypto-square/{example.rb → .meta/solutions/crypto_square.rb} +0 -0
  391. data/tracks/ruby/exercises/custom-set/.meta/generator/{custom_set_cases.rb → custom_set_case.rb} +0 -0
  392. data/tracks/ruby/exercises/custom-set/{example.rb → .meta/solutions/custom_set.rb} +0 -0
  393. data/tracks/ruby/exercises/diamond/{example.rb → .meta/solutions/diamond.rb} +0 -0
  394. data/tracks/ruby/exercises/difference-of-squares/.meta/generator/{difference_of_squares_cases.rb → difference_of_squares_case.rb} +0 -0
  395. data/tracks/ruby/exercises/difference-of-squares/{example.rb → .meta/solutions/difference_of_squares.rb} +0 -0
  396. data/tracks/ruby/exercises/dominoes/.meta/generator/{dominoes_cases.rb → dominoes_case.rb} +0 -0
  397. data/tracks/ruby/exercises/dominoes/.meta/generator/test_template.erb +2 -2
  398. data/tracks/ruby/exercises/dominoes/{example.rb → .meta/solutions/dominoes.rb} +0 -0
  399. data/tracks/ruby/exercises/dominoes/dominoes_test.rb +2 -2
  400. data/tracks/ruby/exercises/etl/.meta/generator/{etl_cases.rb → etl_case.rb} +0 -0
  401. data/tracks/ruby/exercises/etl/{example.rb → .meta/solutions/etl.rb} +0 -0
  402. data/tracks/ruby/exercises/flatten-array/{example.rb → .meta/solutions/flatten_array.rb} +0 -0
  403. data/tracks/ruby/exercises/food-chain/{example.rb → .meta/solutions/food_chain.rb} +0 -0
  404. data/tracks/ruby/exercises/gigasecond/.meta/generator/{gigasecond_cases.rb → gigasecond_case.rb} +0 -0
  405. data/tracks/ruby/exercises/gigasecond/{example.rb → .meta/solutions/gigasecond.rb} +0 -0
  406. data/tracks/ruby/exercises/grade-school/{example.rb → .meta/solutions/grade_school.rb} +0 -0
  407. data/tracks/ruby/exercises/grains/.meta/generator/{grains_cases.rb → grains_case.rb} +0 -0
  408. data/tracks/ruby/exercises/grains/{example.rb → .meta/solutions/grains.rb} +0 -0
  409. data/tracks/ruby/exercises/hamming/.meta/generator/{hamming_cases.rb → hamming_case.rb} +0 -0
  410. data/tracks/ruby/exercises/hamming/{example.rb → .meta/solutions/hamming.rb} +0 -0
  411. data/tracks/ruby/exercises/hello-world/.meta/generator/{hello_world_cases.rb → hello_world_case.rb} +0 -0
  412. data/tracks/ruby/exercises/hello-world/.meta/generator/test_template.erb +2 -2
  413. data/tracks/ruby/exercises/hello-world/{example.rb → .meta/solutions/hello_world.rb} +0 -0
  414. data/tracks/ruby/exercises/hexadecimal/{example.rb → .meta/solutions/hexadecimal.rb} +0 -0
  415. data/tracks/ruby/exercises/house/{example.rb → .meta/solutions/house.rb} +0 -0
  416. data/tracks/ruby/exercises/isogram/.meta/generator/{isogram_cases.rb → isogram_case.rb} +0 -0
  417. data/tracks/ruby/exercises/isogram/{example.rb → .meta/solutions/isogram.rb} +0 -0
  418. data/tracks/ruby/exercises/kindergarten-garden/{example.rb → .meta/solutions/kindergarten_garden.rb} +0 -0
  419. data/tracks/ruby/exercises/largest-series-product/.meta/generator/{largest_series_product_cases.rb → largest_series_product_case.rb} +0 -0
  420. data/tracks/ruby/exercises/largest-series-product/{example.rb → .meta/solutions/largest_series_product.rb} +0 -0
  421. data/tracks/ruby/exercises/leap/.meta/generator/{leap_cases.rb → leap_case.rb} +0 -0
  422. data/tracks/ruby/exercises/leap/.meta/generator/test_template.erb +2 -2
  423. data/tracks/ruby/exercises/leap/{example.rb → .meta/solutions/leap.rb} +0 -0
  424. data/tracks/ruby/exercises/linked-list/{example.rb → .meta/solutions/linked_list.rb} +0 -0
  425. data/tracks/ruby/exercises/list-ops/{example.rb → .meta/solutions/list_ops.rb} +0 -0
  426. data/tracks/ruby/exercises/luhn/.meta/generator/{luhn_cases.rb → luhn_case.rb} +0 -0
  427. data/tracks/ruby/exercises/luhn/{example.rb → .meta/solutions/luhn.rb} +0 -0
  428. data/tracks/ruby/exercises/matrix/{example.rb → .meta/solutions/matrix.rb} +0 -0
  429. data/tracks/ruby/exercises/meetup/{example.rb → .meta/solutions/meetup.rb} +0 -0
  430. data/tracks/ruby/exercises/minesweeper/{example.rb → .meta/solutions/minesweeper.rb} +0 -0
  431. data/tracks/ruby/exercises/nth-prime/.meta/generator/{nth_prime_cases.rb → nth_prime_case.rb} +0 -0
  432. data/tracks/ruby/exercises/nth-prime/{example.rb → .meta/solutions/nth_prime.rb} +0 -0
  433. data/tracks/ruby/exercises/nucleotide-count/{example.rb → .meta/solutions/nucleotide_count.rb} +0 -0
  434. data/tracks/ruby/exercises/ocr-numbers/.meta/generator/{ocr_numbers_cases.rb → ocr_numbers_case.rb} +0 -0
  435. data/tracks/ruby/exercises/ocr-numbers/{example.rb → .meta/solutions/ocr_numbers.rb} +0 -0
  436. data/tracks/ruby/exercises/octal/{example.rb → .meta/solutions/octal.rb} +0 -0
  437. data/tracks/ruby/exercises/palindrome-products/{example.rb → .meta/solutions/palindrome_products.rb} +0 -0
  438. data/tracks/ruby/exercises/pangram/.meta/generator/{pangram_cases.rb → pangram_case.rb} +0 -0
  439. data/tracks/ruby/exercises/pangram/{example.rb → .meta/solutions/pangram.rb} +0 -0
  440. data/tracks/ruby/exercises/pascals-triangle/{example.rb → .meta/solutions/pascals_triangle.rb} +0 -0
  441. data/tracks/ruby/exercises/perfect-numbers/{example.rb → .meta/solutions/perfect_numbers.rb} +0 -0
  442. data/tracks/ruby/exercises/phone-number/.meta/generator/{phone_number_cases.rb → phone_number_case.rb} +0 -0
  443. data/tracks/ruby/exercises/phone-number/{example.rb → .meta/solutions/phone_number.rb} +0 -0
  444. data/tracks/ruby/exercises/pig-latin/.meta/generator/{pig_latin_cases.rb → pig_latin_case.rb} +0 -0
  445. data/tracks/ruby/exercises/pig-latin/{example.rb → .meta/solutions/pig_latin.rb} +0 -0
  446. data/tracks/ruby/exercises/point-mutations/{example.rb → .meta/solutions/point_mutations.rb} +0 -0
  447. data/tracks/ruby/exercises/poker/{example.rb → .meta/solutions/poker.rb} +0 -0
  448. data/tracks/ruby/exercises/prime-factors/{example.rb → .meta/solutions/prime_factors.rb} +0 -0
  449. data/tracks/ruby/exercises/protein-translation/{example.rb → .meta/solutions/protein_translation.rb} +0 -0
  450. data/tracks/ruby/exercises/proverb/{example.rb → .meta/solutions/proverb.rb} +0 -0
  451. data/tracks/ruby/exercises/pythagorean-triplet/{example.rb → .meta/solutions/pythagorean_triplet.rb} +0 -0
  452. data/tracks/ruby/exercises/queen-attack/.meta/generator/{queen_attack_cases.rb → queen_attack_case.rb} +0 -0
  453. data/tracks/ruby/exercises/queen-attack/{example.rb → .meta/solutions/queen_attack.rb} +0 -0
  454. data/tracks/ruby/exercises/rail-fence-cipher/{example.rb → .meta/solutions/rail_fence_cipher.rb} +0 -0
  455. data/tracks/ruby/exercises/raindrops/.meta/generator/{raindrops_cases.rb → raindrops_case.rb} +0 -0
  456. data/tracks/ruby/exercises/raindrops/{example.rb → .meta/solutions/raindrops.rb} +0 -0
  457. data/tracks/ruby/exercises/rna-transcription/.meta/generator/{rna_transcription_cases.rb → rna_transcription_case.rb} +0 -0
  458. data/tracks/ruby/exercises/rna-transcription/{example.rb → .meta/solutions/rna_transcription.rb} +0 -0
  459. data/tracks/ruby/exercises/robot-name/.meta/solutions/robot_name.rb +21 -0
  460. data/tracks/ruby/exercises/robot-name/HINTS.md +7 -0
  461. data/tracks/ruby/exercises/robot-name/robot_name_test.rb +63 -27
  462. data/tracks/ruby/exercises/robot-simulator/{example.rb → .meta/solutions/robot_simulator.rb} +0 -0
  463. data/tracks/ruby/exercises/roman-numerals/.meta/generator/{roman_numerals_cases.rb → roman_numerals_case.rb} +0 -0
  464. data/tracks/ruby/exercises/roman-numerals/{example.rb → .meta/solutions/roman_numerals.rb} +0 -0
  465. data/tracks/ruby/exercises/run-length-encoding/.meta/generator/{run_length_encoding_cases.rb → run_length_encoding_case.rb} +0 -0
  466. data/tracks/ruby/exercises/run-length-encoding/{example.rb → .meta/solutions/run_length_encoding.rb} +0 -0
  467. data/tracks/ruby/exercises/saddle-points/{example.rb → .meta/solutions/saddle_points.rb} +0 -0
  468. data/tracks/ruby/exercises/say/.meta/generator/{say_cases.rb → say_case.rb} +0 -0
  469. data/tracks/ruby/exercises/say/{example.rb → .meta/solutions/say.rb} +0 -0
  470. data/tracks/ruby/exercises/scale-generator/{example.rb → .meta/solutions/scale_generator.rb} +0 -0
  471. data/tracks/ruby/exercises/scrabble-score/{example.rb → .meta/solutions/scrabble_score.rb} +0 -0
  472. data/tracks/ruby/exercises/secret-handshake/{example.rb → .meta/solutions/secret_handshake.rb} +0 -0
  473. data/tracks/ruby/exercises/series/{example.rb → .meta/solutions/series.rb} +0 -0
  474. data/tracks/ruby/exercises/sieve/.meta/generator/{sieve_cases.rb → sieve_case.rb} +0 -0
  475. data/tracks/ruby/exercises/sieve/{example.rb → .meta/solutions/sieve.rb} +0 -0
  476. data/tracks/ruby/exercises/simple-cipher/{example.rb → .meta/solutions/simple_cipher.rb} +0 -0
  477. data/tracks/ruby/exercises/simple-linked-list/{example.rb → .meta/solutions/simple_linked_list.rb} +0 -0
  478. data/tracks/ruby/exercises/space-age/{example.rb → .meta/solutions/space_age.rb} +0 -0
  479. data/tracks/ruby/exercises/strain/{example.rb → .meta/solutions/strain.rb} +0 -0
  480. data/tracks/ruby/exercises/sum-of-multiples/{example.rb → .meta/solutions/sum_of_multiples.rb} +0 -0
  481. data/tracks/ruby/exercises/tournament/.meta/generator/{tournament_cases.rb → tournament_case.rb} +0 -0
  482. data/tracks/ruby/exercises/tournament/{example.rb → .meta/solutions/tournament.rb} +0 -0
  483. data/tracks/ruby/exercises/transpose/.meta/generator/{transpose_cases.rb → transpose_case.rb} +0 -0
  484. data/tracks/ruby/exercises/transpose/{example.rb → .meta/solutions/transpose.rb} +0 -0
  485. data/tracks/ruby/exercises/triangle/.meta/generator/{triangle_cases.rb → triangle_case.rb} +0 -0
  486. data/tracks/ruby/exercises/triangle/{example.rb → .meta/solutions/triangle.rb} +0 -0
  487. data/tracks/ruby/exercises/trinary/{example.rb → .meta/solutions/trinary.rb} +0 -0
  488. data/tracks/ruby/exercises/twelve-days/{example.rb → .meta/solutions/twelve_days.rb} +0 -0
  489. data/tracks/ruby/exercises/two-bucket/.meta/generator/{two_bucket_cases.rb → two_bucket_case.rb} +0 -0
  490. data/tracks/ruby/exercises/two-bucket/{example.rb → .meta/solutions/two_bucket.rb} +0 -0
  491. data/tracks/ruby/exercises/word-count/.meta/generator/{word_count_cases.rb → word_count_case.rb} +0 -0
  492. data/tracks/ruby/exercises/word-count/{example.rb → .meta/solutions/word_count.rb} +0 -0
  493. data/tracks/ruby/exercises/wordy/.meta/generator/{wordy_cases.rb → wordy_case.rb} +0 -0
  494. data/tracks/ruby/exercises/wordy/{example.rb → .meta/solutions/wordy.rb} +0 -0
  495. data/tracks/ruby/lib/generator.rb +2 -2
  496. data/tracks/ruby/lib/generator/case_values.rb +2 -5
  497. data/tracks/ruby/lib/generator/command_line.rb +20 -86
  498. data/tracks/ruby/lib/generator/command_line/generator_optparser.rb +90 -0
  499. data/tracks/ruby/lib/generator/exercise_case.rb +2 -2
  500. data/tracks/ruby/lib/generator/files.rb +0 -12
  501. data/tracks/ruby/lib/generator/files/generator_cases.rb +28 -17
  502. data/tracks/ruby/lib/generator/files/metadata_files.rb +1 -3
  503. data/tracks/ruby/lib/generator/files/track_files.rb +22 -24
  504. data/tracks/ruby/lib/generator/{repository.rb → implementation.rb} +17 -13
  505. data/tracks/ruby/lib/generator/template_values.rb +9 -5
  506. data/tracks/ruby/lib/generator/test_template.erb +2 -2
  507. data/tracks/ruby/lib/tasks/exercise.rb +12 -20
  508. data/tracks/ruby/lib/tasks/exercise_tests_runner.rb +1 -1
  509. data/tracks/ruby/test/fixtures/xruby/exercises/{beta/example.tt → alpha-beta/.meta/generator/test_template.erb} +4 -6
  510. data/tracks/ruby/test/fixtures/xruby/exercises/alpha/.meta/generator/alpha_case.rb +9 -0
  511. data/tracks/ruby/test/fixtures/xruby/exercises/alpha/.meta/generator/test_template.erb +2 -2
  512. data/tracks/ruby/test/fixtures/xruby/exercises/alpha/.meta/solutions/alpha.rb +1 -1
  513. data/tracks/ruby/test/fixtures/xruby/exercises/beta/.meta/generator/{beta_cases.rb → beta_case.rb} +0 -0
  514. data/tracks/ruby/test/fixtures/xruby/lib/generator/test_template.erb +2 -2
  515. data/tracks/ruby/test/generator/case_values_test.rb +3 -3
  516. data/tracks/ruby/test/generator/command_line/generator_optparser_test.rb +122 -0
  517. data/tracks/ruby/test/generator/command_line_test.rb +13 -3
  518. data/tracks/ruby/test/generator/exercise_case_test.rb +2 -2
  519. data/tracks/ruby/test/generator/files/generate_cases_test.rb +18 -26
  520. data/tracks/ruby/test/generator/files/metadata_files_test.rb +2 -2
  521. data/tracks/ruby/test/generator/files/track_files_test.rb +8 -14
  522. data/tracks/ruby/test/generator/files_test.rb +0 -20
  523. data/tracks/ruby/test/generator/implementation_test.rb +145 -0
  524. data/tracks/ruby/test/generator/template_values_test.rb +5 -6
  525. data/tracks/ruby/test/generator_test.rb +10 -10
  526. data/tracks/ruby/test/tasks/exercise_test.rb +8 -12
  527. data/tracks/ruby/test/tasks/exercise_tests_runner_test.rb +2 -2
  528. data/tracks/ruby/test/test_helper.rb +13 -10
  529. data/tracks/ruby/test/wordy_cases_test.rb +1 -1
  530. data/tracks/rust/config.json +1 -0
  531. data/tracks/rust/exercises/bracket-push/Cargo.toml +1 -1
  532. data/tracks/rust/exercises/bracket-push/tests/bracket-push.rs +6 -0
  533. data/tracks/rust/exercises/dominoes/Cargo.toml +1 -1
  534. data/tracks/rust/exercises/dominoes/tests/dominoes.rs +1 -1
  535. data/tracks/rust/exercises/luhn-from/.meta/description.md +9 -0
  536. data/tracks/rust/exercises/luhn-from/.meta/metadata.yml +3 -0
  537. data/tracks/rust/exercises/luhn-trait/.meta/description.md +17 -0
  538. data/tracks/rust/exercises/luhn-trait/.meta/metadata.yml +3 -0
  539. data/tracks/rust/exercises/rectangles/Cargo.toml +1 -1
  540. data/tracks/rust/exercises/rectangles/tests/rectangles.rs +31 -0
  541. data/tracks/rust/exercises/tournament/Cargo.toml +1 -1
  542. data/tracks/rust/exercises/tournament/example.rs +6 -6
  543. data/tracks/rust/exercises/tournament/tests/tournament.rs +116 -30
  544. metadata +190 -140
  545. data/tracks/haskell/exercises/pythagorean-triplet/.meta/DONT-TEST-STUB +0 -2
  546. data/tracks/java/exercises/acronym/src/main/java/.keep +0 -0
  547. data/tracks/java/exercises/raindrops/src/main/java/.keep +0 -0
  548. data/tracks/java/exercises/scrabble-score/src/main/java/.keep +0 -0
  549. data/tracks/java/exercises/space-age/src/main/java/.keep +0 -0
  550. data/tracks/ruby/exercises/robot-name/example.rb +0 -43
  551. data/tracks/ruby/test/fixtures/xruby/exercises/alpha/.meta/generator/alpha_cases.rb +0 -20
  552. data/tracks/ruby/test/fixtures/xruby/exercises/beta/example.rb +0 -5
  553. data/tracks/ruby/test/generator/repository_test.rb +0 -90
  554. data/tracks/ruby/test/tasks/exercise_tests_runner_legacy_test.rb +0 -64
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: trackler
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.0.11
4
+ version: 2.1.0.12
5
5
  platform: ruby
6
6
  authors:
7
7
  - Katrina Owen
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-05-08 00:00:00.000000000 Z
11
+ date: 2017-05-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rubyzip
@@ -1168,6 +1168,18 @@ files:
1168
1168
  - tracks/coq/docs/RESOURCES.md
1169
1169
  - tracks/coq/docs/TESTS.md
1170
1170
  - tracks/coq/exercises/TRACK_HINTS.md
1171
+ - tracks/coq/exercises/hello-world/example.v
1172
+ - tracks/coq/exercises/hello-world/helloworld.v
1173
+ - tracks/coq/exercises/hello-world/metadata.yml
1174
+ - tracks/coq/exercises/hello-world/test.v
1175
+ - tracks/coq/exercises/rna-transcription/DNA.v
1176
+ - tracks/coq/exercises/rna-transcription/example.v
1177
+ - tracks/coq/exercises/rna-transcription/metadata.yml
1178
+ - tracks/coq/exercises/rna-transcription/rna-transcription.v
1179
+ - tracks/coq/exercises/tautology/description.md
1180
+ - tracks/coq/exercises/tautology/example.v
1181
+ - tracks/coq/exercises/tautology/metadata.yml
1182
+ - tracks/coq/exercises/tautology/tautology.v
1171
1183
  - tracks/coq/img/.keep
1172
1184
  - tracks/cpp/.editorconfig
1173
1185
  - tracks/cpp/.git
@@ -2309,6 +2321,7 @@ files:
2309
2321
  - tracks/ecmascript/exercises/wordy/wordy.spec.js
2310
2322
  - tracks/ecmascript/img/icon.png
2311
2323
  - tracks/ecmascript/package.json
2324
+ - tracks/ecmascript/yarn.lock
2312
2325
  - tracks/elisp/.git
2313
2326
  - tracks/elisp/.gitignore
2314
2327
  - tracks/elisp/.travis.yml
@@ -3362,7 +3375,9 @@ files:
3362
3375
  - tracks/go/exercises/bowling/bowling_test.go
3363
3376
  - tracks/go/exercises/bowling/cases_test.go
3364
3377
  - tracks/go/exercises/bowling/example.go
3378
+ - tracks/go/exercises/bracket-push/.meta/gen.go
3365
3379
  - tracks/go/exercises/bracket-push/bracket_push_test.go
3380
+ - tracks/go/exercises/bracket-push/cases_test.go
3366
3381
  - tracks/go/exercises/bracket-push/example.go
3367
3382
  - tracks/go/exercises/change/.meta/gen.go
3368
3383
  - tracks/go/exercises/change/cases_test.go
@@ -3998,7 +4013,6 @@ files:
3998
4013
  - tracks/haskell/exercises/prime-factors/src/PrimeFactors.hs
3999
4014
  - tracks/haskell/exercises/prime-factors/stack.yaml
4000
4015
  - tracks/haskell/exercises/prime-factors/test/Tests.hs
4001
- - tracks/haskell/exercises/pythagorean-triplet/.meta/DONT-TEST-STUB
4002
4016
  - tracks/haskell/exercises/pythagorean-triplet/examples/success-standard/package.yaml
4003
4017
  - tracks/haskell/exercises/pythagorean-triplet/examples/success-standard/src/Triplet.hs
4004
4018
  - tracks/haskell/exercises/pythagorean-triplet/package.yaml
@@ -4240,11 +4254,13 @@ files:
4240
4254
  - tracks/idris/img/icon.png
4241
4255
  - tracks/java/.Rhistory
4242
4256
  - tracks/java/.git
4257
+ - tracks/java/.github/PULL_REQUEST_TEMPLATE.md
4243
4258
  - tracks/java/.github/stale.yml
4244
4259
  - tracks/java/.gitignore
4245
4260
  - tracks/java/.keep
4246
4261
  - tracks/java/.travis.yml
4247
4262
  - tracks/java/LICENSE
4263
+ - tracks/java/POLICIES.md
4248
4264
  - tracks/java/README.md
4249
4265
  - tracks/java/SETUP.md
4250
4266
  - tracks/java/bin/build-jq.sh
@@ -4271,7 +4287,7 @@ files:
4271
4287
  - tracks/java/exercises/accumulate/src/test/java/AccumulateTest.java
4272
4288
  - tracks/java/exercises/acronym/build.gradle
4273
4289
  - tracks/java/exercises/acronym/src/example/java/Acronym.java
4274
- - tracks/java/exercises/acronym/src/main/java/.keep
4290
+ - tracks/java/exercises/acronym/src/main/java/Acronym.java
4275
4291
  - tracks/java/exercises/acronym/src/test/java/AcronymTest.java
4276
4292
  - tracks/java/exercises/all-your-base/build.gradle
4277
4293
  - tracks/java/exercises/all-your-base/src/example/java/BaseConverter.java
@@ -4470,7 +4486,7 @@ files:
4470
4486
  - tracks/java/exercises/queen-attack/src/test/java/QueenAttackCalculatorTest.java
4471
4487
  - tracks/java/exercises/raindrops/build.gradle
4472
4488
  - tracks/java/exercises/raindrops/src/example/java/RaindropConverter.java
4473
- - tracks/java/exercises/raindrops/src/main/java/.keep
4489
+ - tracks/java/exercises/raindrops/src/main/java/RaindropConverter.java
4474
4490
  - tracks/java/exercises/raindrops/src/test/java/RaindropConverterTest.java
4475
4491
  - tracks/java/exercises/rectangles/build.gradle
4476
4492
  - tracks/java/exercises/rectangles/src/example/java/RectangleCounter.java
@@ -4496,6 +4512,10 @@ files:
4496
4512
  - tracks/java/exercises/roman-numerals/src/example/java/RomanNumeral.java
4497
4513
  - tracks/java/exercises/roman-numerals/src/main/java/.keep
4498
4514
  - tracks/java/exercises/roman-numerals/src/test/java/RomanNumeralsTest.java
4515
+ - tracks/java/exercises/run-length-encoding/build.gradle
4516
+ - tracks/java/exercises/run-length-encoding/src/example/java/RunLengthEncoding.java
4517
+ - tracks/java/exercises/run-length-encoding/src/main/java/RunLengthEncoding.java
4518
+ - tracks/java/exercises/run-length-encoding/src/test/java/RunLengthEncodingTest.java
4499
4519
  - tracks/java/exercises/saddle-points/build.gradle
4500
4520
  - tracks/java/exercises/saddle-points/src/example/java/Matrix.java
4501
4521
  - tracks/java/exercises/saddle-points/src/example/java/MatrixCoordinate.java
@@ -4504,7 +4524,7 @@ files:
4504
4524
  - tracks/java/exercises/saddle-points/src/test/java/MatrixTest.java
4505
4525
  - tracks/java/exercises/scrabble-score/build.gradle
4506
4526
  - tracks/java/exercises/scrabble-score/src/example/java/Scrabble.java
4507
- - tracks/java/exercises/scrabble-score/src/main/java/.keep
4527
+ - tracks/java/exercises/scrabble-score/src/main/java/Scrabble.java
4508
4528
  - tracks/java/exercises/scrabble-score/src/test/java/ScrabbleScoreTest.java
4509
4529
  - tracks/java/exercises/secret-handshake/build.gradle
4510
4530
  - tracks/java/exercises/secret-handshake/src/example/java/HandshakeCalculator.java
@@ -4534,7 +4554,7 @@ files:
4534
4554
  - tracks/java/exercises/simple-linked-list/src/test/java/SimpleLinkedListTest.java
4535
4555
  - tracks/java/exercises/space-age/build.gradle
4536
4556
  - tracks/java/exercises/space-age/src/example/java/SpaceAge.java
4537
- - tracks/java/exercises/space-age/src/main/java/.keep
4557
+ - tracks/java/exercises/space-age/src/main/java/SpaceAge.java
4538
4558
  - tracks/java/exercises/space-age/src/test/java/SpaceAgeTest.java
4539
4559
  - tracks/java/exercises/strain/build.gradle
4540
4560
  - tracks/java/exercises/strain/src/example/java/Strain.java
@@ -4675,6 +4695,8 @@ files:
4675
4695
  - tracks/javascript/exercises/matrix/matrix.spec.js
4676
4696
  - tracks/javascript/exercises/meetup/example.js
4677
4697
  - tracks/javascript/exercises/meetup/meetup.spec.js
4698
+ - tracks/javascript/exercises/minesweeper/example.js
4699
+ - tracks/javascript/exercises/minesweeper/minesweeper.spec.js
4678
4700
  - tracks/javascript/exercises/nth-prime/example.js
4679
4701
  - tracks/javascript/exercises/nth-prime/nth-prime.spec.js
4680
4702
  - tracks/javascript/exercises/nucleotide-count/example.js
@@ -5806,6 +5828,11 @@ files:
5806
5828
  - tracks/ocaml/docs/LEARNING.md
5807
5829
  - tracks/ocaml/docs/RESOURCES.md
5808
5830
  - tracks/ocaml/docs/TESTS.md
5831
+ - tracks/ocaml/exercises/acronym/.merlin
5832
+ - tracks/ocaml/exercises/acronym/Makefile
5833
+ - tracks/ocaml/exercises/acronym/acronym.mli
5834
+ - tracks/ocaml/exercises/acronym/example.ml
5835
+ - tracks/ocaml/exercises/acronym/test.ml
5809
5836
  - tracks/ocaml/exercises/all-your-base/.merlin
5810
5837
  - tracks/ocaml/exercises/all-your-base/Makefile
5811
5838
  - tracks/ocaml/exercises/all-your-base/all_your_base.mli
@@ -6016,11 +6043,13 @@ files:
6016
6043
  - tracks/ocaml/tools/test-generator/src/template.ml
6017
6044
  - tracks/ocaml/tools/test-generator/src/test_gen.ml
6018
6045
  - tracks/ocaml/tools/test-generator/src/utils.ml
6046
+ - tracks/ocaml/tools/test-generator/templates/acronym/template.ml
6019
6047
  - tracks/ocaml/tools/test-generator/templates/all-your-base/template.ml
6020
6048
  - tracks/ocaml/tools/test-generator/templates/anagram/template.ml
6021
6049
  - tracks/ocaml/tools/test-generator/templates/atbash-cipher/template.ml
6022
6050
  - tracks/ocaml/tools/test-generator/templates/beer-song/template.ml
6023
6051
  - tracks/ocaml/tools/test-generator/templates/bob/template.ml
6052
+ - tracks/ocaml/tools/test-generator/templates/bowling/template.ml
6024
6053
  - tracks/ocaml/tools/test-generator/templates/bracket-push/template.ml
6025
6054
  - tracks/ocaml/tools/test-generator/templates/change/template.ml
6026
6055
  - tracks/ocaml/tools/test-generator/templates/connect/template.ml
@@ -6058,6 +6087,7 @@ files:
6058
6087
  - tracks/ocaml/tools/test-generator/test/utils_test.ml
6059
6088
  - tracks/ocaml/tools/test-generator/test/with-methods-key.json
6060
6089
  - tracks/perl5/.git
6090
+ - tracks/perl5/.github/stale.yml
6061
6091
  - tracks/perl5/.gitignore
6062
6092
  - tracks/perl5/.travis.yml
6063
6093
  - tracks/perl5/LICENSE
@@ -6235,6 +6265,7 @@ files:
6235
6265
  - tracks/perl6/exercises/accumulate/Accumulate.pm6
6236
6266
  - tracks/perl6/exercises/accumulate/Example.pm6
6237
6267
  - tracks/perl6/exercises/accumulate/accumulate.t
6268
+ - tracks/perl6/exercises/accumulate/example.yaml
6238
6269
  - tracks/perl6/exercises/all-your-base/AllYourBase.pm6
6239
6270
  - tracks/perl6/exercises/all-your-base/Example.pm6
6240
6271
  - tracks/perl6/exercises/all-your-base/all-your-base.t
@@ -6242,12 +6273,15 @@ files:
6242
6273
  - tracks/perl6/exercises/allergies/Allergies.pm6
6243
6274
  - tracks/perl6/exercises/allergies/Example.pm6
6244
6275
  - tracks/perl6/exercises/allergies/allergies.t
6276
+ - tracks/perl6/exercises/allergies/example.yaml
6245
6277
  - tracks/perl6/exercises/anagram/Anagram.pm6
6246
6278
  - tracks/perl6/exercises/anagram/Example.pm6
6247
6279
  - tracks/perl6/exercises/anagram/anagram.t
6280
+ - tracks/perl6/exercises/anagram/example.yaml
6248
6281
  - tracks/perl6/exercises/atbash-cipher/AtbashCipher.pm6
6249
6282
  - tracks/perl6/exercises/atbash-cipher/Example.pm6
6250
6283
  - tracks/perl6/exercises/atbash-cipher/atbash-cipher.t
6284
+ - tracks/perl6/exercises/atbash-cipher/example.yaml
6251
6285
  - tracks/perl6/exercises/binary/Example.pm6
6252
6286
  - tracks/perl6/exercises/binary/binary.t
6253
6287
  - tracks/perl6/exercises/bob/Bob.pm6
@@ -6264,6 +6298,7 @@ files:
6264
6298
  - tracks/perl6/exercises/grade-school/grade-school.t
6265
6299
  - tracks/perl6/exercises/grains/Example.pm6
6266
6300
  - tracks/perl6/exercises/grains/Grains.pm6
6301
+ - tracks/perl6/exercises/grains/example.yaml
6267
6302
  - tracks/perl6/exercises/grains/grains.t
6268
6303
  - tracks/perl6/exercises/hello-world/Example.pm6
6269
6304
  - tracks/perl6/exercises/hello-world/HelloWorld.pm6
@@ -6275,6 +6310,7 @@ files:
6275
6310
  - tracks/perl6/exercises/leap/leap.t
6276
6311
  - tracks/perl6/exercises/linked-list/Example.pm6
6277
6312
  - tracks/perl6/exercises/linked-list/LinkedList.pm6
6313
+ - tracks/perl6/exercises/linked-list/example.yaml
6278
6314
  - tracks/perl6/exercises/linked-list/linked-list.t
6279
6315
  - tracks/perl6/exercises/phone-number/Example.pm6
6280
6316
  - tracks/perl6/exercises/phone-number/PhoneNumber.pm6
@@ -6282,26 +6318,33 @@ files:
6282
6318
  - tracks/perl6/exercises/phone-number/phone-number.t
6283
6319
  - tracks/perl6/exercises/raindrops/Example.pm6
6284
6320
  - tracks/perl6/exercises/raindrops/Raindrops.pm6
6321
+ - tracks/perl6/exercises/raindrops/example.yaml
6285
6322
  - tracks/perl6/exercises/raindrops/raindrops.t
6286
6323
  - tracks/perl6/exercises/rna-transcription/Example.pm6
6287
6324
  - tracks/perl6/exercises/rna-transcription/RNA.pm6
6325
+ - tracks/perl6/exercises/rna-transcription/example.yaml
6288
6326
  - tracks/perl6/exercises/rna-transcription/rna-transcription.t
6289
6327
  - tracks/perl6/exercises/robot-name/Example.pm6
6290
6328
  - tracks/perl6/exercises/robot-name/Robot.pm6
6329
+ - tracks/perl6/exercises/robot-name/example.yaml
6291
6330
  - tracks/perl6/exercises/robot-name/robot-name.t
6292
6331
  - tracks/perl6/exercises/scrabble-score/Example.pm6
6293
6332
  - tracks/perl6/exercises/scrabble-score/Scrabble.pm6
6333
+ - tracks/perl6/exercises/scrabble-score/example.yaml
6294
6334
  - tracks/perl6/exercises/scrabble-score/scrabble-score.t
6295
6335
  - tracks/perl6/exercises/space-age/Example.pm6
6296
6336
  - tracks/perl6/exercises/space-age/SpaceAge.pm6
6337
+ - tracks/perl6/exercises/space-age/example.yaml
6297
6338
  - tracks/perl6/exercises/space-age/space-age.t
6298
6339
  - tracks/perl6/exercises/trinary/Example.pm6
6299
6340
  - tracks/perl6/exercises/trinary/trinary.t
6300
6341
  - tracks/perl6/exercises/word-count/Example.pm6
6301
6342
  - tracks/perl6/exercises/word-count/WordCount.pm6
6343
+ - tracks/perl6/exercises/word-count/example.yaml
6302
6344
  - tracks/perl6/exercises/word-count/word-count.t
6303
6345
  - tracks/perl6/exercises/wordy/Example.pm6
6304
6346
  - tracks/perl6/exercises/wordy/Wordy.pm6
6347
+ - tracks/perl6/exercises/wordy/example.yaml
6305
6348
  - tracks/perl6/exercises/wordy/wordy.t
6306
6349
  - tracks/perl6/img/icon.png
6307
6350
  - tracks/perl6/templates/test.mustache
@@ -6410,6 +6453,8 @@ files:
6410
6453
  - tracks/php/exercises/sieve/sieve_test.php
6411
6454
  - tracks/php/exercises/space-age/example.php
6412
6455
  - tracks/php/exercises/space-age/space-age_test.php
6456
+ - tracks/php/exercises/sum-of-multiples/example.php
6457
+ - tracks/php/exercises/sum-of-multiples/sum-of-multiples_test.php
6413
6458
  - tracks/php/exercises/triangle/example.php
6414
6459
  - tracks/php/exercises/triangle/triangle_test.php
6415
6460
  - tracks/php/exercises/trinary/example.php
@@ -7134,268 +7179,269 @@ files:
7134
7179
  - tracks/ruby/docs/RESOURCES.md
7135
7180
  - tracks/ruby/docs/TESTS.md
7136
7181
  - tracks/ruby/exercises/TRACK_HINTS.md
7182
+ - tracks/ruby/exercises/accumulate/.meta/solutions/accumulate.rb
7137
7183
  - tracks/ruby/exercises/accumulate/HINTS.md
7138
7184
  - tracks/ruby/exercises/accumulate/accumulate_test.rb
7139
- - tracks/ruby/exercises/accumulate/example.rb
7140
7185
  - tracks/ruby/exercises/acronym/.meta/.version
7141
- - tracks/ruby/exercises/acronym/.meta/generator/acronym_cases.rb
7186
+ - tracks/ruby/exercises/acronym/.meta/generator/acronym_case.rb
7187
+ - tracks/ruby/exercises/acronym/.meta/solutions/acronym.rb
7142
7188
  - tracks/ruby/exercises/acronym/acronym_test.rb
7143
- - tracks/ruby/exercises/acronym/example.rb
7144
7189
  - tracks/ruby/exercises/all-your-base/.meta/.version
7145
- - tracks/ruby/exercises/all-your-base/.meta/generator/all_your_base_cases.rb
7190
+ - tracks/ruby/exercises/all-your-base/.meta/generator/all_your_base_case.rb
7191
+ - tracks/ruby/exercises/all-your-base/.meta/solutions/all_your_base.rb
7146
7192
  - tracks/ruby/exercises/all-your-base/all_your_base_test.rb
7147
- - tracks/ruby/exercises/all-your-base/example.rb
7193
+ - tracks/ruby/exercises/allergies/.meta/solutions/allergies.rb
7148
7194
  - tracks/ruby/exercises/allergies/allergies_test.rb
7149
- - tracks/ruby/exercises/allergies/example.rb
7150
7195
  - tracks/ruby/exercises/alphametics/.meta/.version
7151
- - tracks/ruby/exercises/alphametics/.meta/generator/alphametics_cases.rb
7196
+ - tracks/ruby/exercises/alphametics/.meta/generator/alphametics_case.rb
7152
7197
  - tracks/ruby/exercises/alphametics/.meta/generator/test_template.erb
7198
+ - tracks/ruby/exercises/alphametics/.meta/solutions/alphametics.rb
7153
7199
  - tracks/ruby/exercises/alphametics/alphametics_test.rb
7154
- - tracks/ruby/exercises/alphametics/example.rb
7155
7200
  - tracks/ruby/exercises/anagram/.meta/.version
7156
- - tracks/ruby/exercises/anagram/.meta/generator/anagram_cases.rb
7201
+ - tracks/ruby/exercises/anagram/.meta/generator/anagram_case.rb
7202
+ - tracks/ruby/exercises/anagram/.meta/solutions/anagram.rb
7157
7203
  - tracks/ruby/exercises/anagram/anagram_test.rb
7158
- - tracks/ruby/exercises/anagram/example.rb
7204
+ - tracks/ruby/exercises/atbash-cipher/.meta/solutions/atbash_cipher.rb
7159
7205
  - tracks/ruby/exercises/atbash-cipher/atbash_cipher_test.rb
7160
- - tracks/ruby/exercises/atbash-cipher/example.rb
7161
7206
  - tracks/ruby/exercises/beer-song/.meta/.version
7162
- - tracks/ruby/exercises/beer-song/.meta/generator/beer_song_cases.rb
7207
+ - tracks/ruby/exercises/beer-song/.meta/generator/beer_song_case.rb
7208
+ - tracks/ruby/exercises/beer-song/.meta/solutions/beer_song.rb
7163
7209
  - tracks/ruby/exercises/beer-song/beer_song_test.rb
7164
- - tracks/ruby/exercises/beer-song/example.rb
7210
+ - tracks/ruby/exercises/binary-search-tree/.meta/solutions/binary_search_tree.rb
7165
7211
  - tracks/ruby/exercises/binary-search-tree/binary_search_tree_test.rb
7166
- - tracks/ruby/exercises/binary-search-tree/example.rb
7212
+ - tracks/ruby/exercises/binary-search/.meta/solutions/binary_search.rb
7167
7213
  - tracks/ruby/exercises/binary-search/binary_search_test.rb
7168
- - tracks/ruby/exercises/binary-search/example.rb
7169
7214
  - tracks/ruby/exercises/binary/.meta/.version
7170
- - tracks/ruby/exercises/binary/.meta/generator/binary_cases.rb
7215
+ - tracks/ruby/exercises/binary/.meta/generator/binary_case.rb
7216
+ - tracks/ruby/exercises/binary/.meta/solutions/binary.rb
7171
7217
  - tracks/ruby/exercises/binary/binary_test.rb
7172
- - tracks/ruby/exercises/binary/example.rb
7218
+ - tracks/ruby/exercises/bob/.meta/solutions/bob.rb
7173
7219
  - tracks/ruby/exercises/bob/bob_test.rb
7174
- - tracks/ruby/exercises/bob/example.rb
7175
7220
  - tracks/ruby/exercises/bowling/.meta/.version
7176
- - tracks/ruby/exercises/bowling/.meta/generator/bowling_cases.rb
7221
+ - tracks/ruby/exercises/bowling/.meta/generator/bowling_case.rb
7177
7222
  - tracks/ruby/exercises/bowling/.meta/generator/test_template.erb
7223
+ - tracks/ruby/exercises/bowling/.meta/solutions/bowling.rb
7178
7224
  - tracks/ruby/exercises/bowling/bowling_test.rb
7179
- - tracks/ruby/exercises/bowling/example.rb
7180
7225
  - tracks/ruby/exercises/bracket-push/.meta/.version
7181
- - tracks/ruby/exercises/bracket-push/.meta/generator/bracket_push_cases.rb
7226
+ - tracks/ruby/exercises/bracket-push/.meta/generator/bracket_push_case.rb
7227
+ - tracks/ruby/exercises/bracket-push/.meta/solutions/bracket_push.rb
7182
7228
  - tracks/ruby/exercises/bracket-push/bracket_push_test.rb
7183
- - tracks/ruby/exercises/bracket-push/example.rb
7229
+ - tracks/ruby/exercises/circular-buffer/.meta/solutions/circular_buffer.rb
7184
7230
  - tracks/ruby/exercises/circular-buffer/circular_buffer_test.rb
7185
- - tracks/ruby/exercises/circular-buffer/example.rb
7186
7231
  - tracks/ruby/exercises/clock/.meta/.version
7187
- - tracks/ruby/exercises/clock/.meta/generator/clock_cases.rb
7232
+ - tracks/ruby/exercises/clock/.meta/generator/clock_case.rb
7233
+ - tracks/ruby/exercises/clock/.meta/solutions/clock.rb
7188
7234
  - tracks/ruby/exercises/clock/clock_test.rb
7189
- - tracks/ruby/exercises/clock/example.rb
7190
7235
  - tracks/ruby/exercises/connect/.meta/.version
7191
- - tracks/ruby/exercises/connect/.meta/generator/connect_cases.rb
7236
+ - tracks/ruby/exercises/connect/.meta/generator/connect_case.rb
7192
7237
  - tracks/ruby/exercises/connect/.meta/generator/test_template.erb
7238
+ - tracks/ruby/exercises/connect/.meta/solutions/connect.rb
7193
7239
  - tracks/ruby/exercises/connect/connect_test.rb
7194
- - tracks/ruby/exercises/connect/example.rb
7240
+ - tracks/ruby/exercises/crypto-square/.meta/solutions/crypto_square.rb
7195
7241
  - tracks/ruby/exercises/crypto-square/crypto_square_test.rb
7196
- - tracks/ruby/exercises/crypto-square/example.rb
7197
7242
  - tracks/ruby/exercises/custom-set/.meta/.version
7198
- - tracks/ruby/exercises/custom-set/.meta/generator/custom_set_cases.rb
7243
+ - tracks/ruby/exercises/custom-set/.meta/generator/custom_set_case.rb
7244
+ - tracks/ruby/exercises/custom-set/.meta/solutions/custom_set.rb
7199
7245
  - tracks/ruby/exercises/custom-set/custom_set_test.rb
7200
- - tracks/ruby/exercises/custom-set/example.rb
7246
+ - tracks/ruby/exercises/diamond/.meta/solutions/diamond.rb
7201
7247
  - tracks/ruby/exercises/diamond/diamond_test.rb
7202
- - tracks/ruby/exercises/diamond/example.rb
7203
7248
  - tracks/ruby/exercises/difference-of-squares/.meta/.version
7204
- - tracks/ruby/exercises/difference-of-squares/.meta/generator/difference_of_squares_cases.rb
7249
+ - tracks/ruby/exercises/difference-of-squares/.meta/generator/difference_of_squares_case.rb
7250
+ - tracks/ruby/exercises/difference-of-squares/.meta/solutions/difference_of_squares.rb
7205
7251
  - tracks/ruby/exercises/difference-of-squares/difference_of_squares_test.rb
7206
- - tracks/ruby/exercises/difference-of-squares/example.rb
7207
7252
  - tracks/ruby/exercises/dominoes/.meta/.version
7208
- - tracks/ruby/exercises/dominoes/.meta/generator/dominoes_cases.rb
7253
+ - tracks/ruby/exercises/dominoes/.meta/generator/dominoes_case.rb
7209
7254
  - tracks/ruby/exercises/dominoes/.meta/generator/test_template.erb
7255
+ - tracks/ruby/exercises/dominoes/.meta/solutions/dominoes.rb
7210
7256
  - tracks/ruby/exercises/dominoes/dominoes_test.rb
7211
- - tracks/ruby/exercises/dominoes/example.rb
7212
7257
  - tracks/ruby/exercises/etl/.meta/.version
7213
- - tracks/ruby/exercises/etl/.meta/generator/etl_cases.rb
7258
+ - tracks/ruby/exercises/etl/.meta/generator/etl_case.rb
7259
+ - tracks/ruby/exercises/etl/.meta/solutions/etl.rb
7214
7260
  - tracks/ruby/exercises/etl/etl_test.rb
7215
- - tracks/ruby/exercises/etl/example.rb
7216
- - tracks/ruby/exercises/flatten-array/example.rb
7261
+ - tracks/ruby/exercises/flatten-array/.meta/solutions/flatten_array.rb
7217
7262
  - tracks/ruby/exercises/flatten-array/flatten_array_test.rb
7218
- - tracks/ruby/exercises/food-chain/example.rb
7263
+ - tracks/ruby/exercises/food-chain/.meta/solutions/food_chain.rb
7219
7264
  - tracks/ruby/exercises/food-chain/food_chain_test.rb
7220
7265
  - tracks/ruby/exercises/food-chain/song.txt
7221
7266
  - tracks/ruby/exercises/gigasecond/.meta/.version
7222
- - tracks/ruby/exercises/gigasecond/.meta/generator/gigasecond_cases.rb
7223
- - tracks/ruby/exercises/gigasecond/example.rb
7267
+ - tracks/ruby/exercises/gigasecond/.meta/generator/gigasecond_case.rb
7268
+ - tracks/ruby/exercises/gigasecond/.meta/solutions/gigasecond.rb
7224
7269
  - tracks/ruby/exercises/gigasecond/gigasecond_test.rb
7225
- - tracks/ruby/exercises/grade-school/example.rb
7270
+ - tracks/ruby/exercises/grade-school/.meta/solutions/grade_school.rb
7226
7271
  - tracks/ruby/exercises/grade-school/grade_school_test.rb
7227
7272
  - tracks/ruby/exercises/grains/.meta/.version
7228
- - tracks/ruby/exercises/grains/.meta/generator/grains_cases.rb
7229
- - tracks/ruby/exercises/grains/example.rb
7273
+ - tracks/ruby/exercises/grains/.meta/generator/grains_case.rb
7274
+ - tracks/ruby/exercises/grains/.meta/solutions/grains.rb
7230
7275
  - tracks/ruby/exercises/grains/grains_test.rb
7231
7276
  - tracks/ruby/exercises/hamming/.meta/.version
7232
- - tracks/ruby/exercises/hamming/.meta/generator/hamming_cases.rb
7233
- - tracks/ruby/exercises/hamming/example.rb
7277
+ - tracks/ruby/exercises/hamming/.meta/generator/hamming_case.rb
7278
+ - tracks/ruby/exercises/hamming/.meta/solutions/hamming.rb
7234
7279
  - tracks/ruby/exercises/hamming/hamming_test.rb
7235
7280
  - tracks/ruby/exercises/hello-world/.meta/.version
7236
- - tracks/ruby/exercises/hello-world/.meta/generator/hello_world_cases.rb
7281
+ - tracks/ruby/exercises/hello-world/.meta/generator/hello_world_case.rb
7237
7282
  - tracks/ruby/exercises/hello-world/.meta/generator/test_template.erb
7283
+ - tracks/ruby/exercises/hello-world/.meta/solutions/hello_world.rb
7238
7284
  - tracks/ruby/exercises/hello-world/GETTING_STARTED.md
7239
- - tracks/ruby/exercises/hello-world/example.rb
7240
7285
  - tracks/ruby/exercises/hello-world/hello_world_test.rb
7241
- - tracks/ruby/exercises/hexadecimal/example.rb
7286
+ - tracks/ruby/exercises/hexadecimal/.meta/solutions/hexadecimal.rb
7242
7287
  - tracks/ruby/exercises/hexadecimal/hexadecimal_test.rb
7243
- - tracks/ruby/exercises/house/example.rb
7288
+ - tracks/ruby/exercises/house/.meta/solutions/house.rb
7244
7289
  - tracks/ruby/exercises/house/house_test.rb
7245
7290
  - tracks/ruby/exercises/isogram/.meta/.version
7246
- - tracks/ruby/exercises/isogram/.meta/generator/isogram_cases.rb
7247
- - tracks/ruby/exercises/isogram/example.rb
7291
+ - tracks/ruby/exercises/isogram/.meta/generator/isogram_case.rb
7292
+ - tracks/ruby/exercises/isogram/.meta/solutions/isogram.rb
7248
7293
  - tracks/ruby/exercises/isogram/isogram_test.rb
7249
- - tracks/ruby/exercises/kindergarten-garden/example.rb
7294
+ - tracks/ruby/exercises/kindergarten-garden/.meta/solutions/kindergarten_garden.rb
7250
7295
  - tracks/ruby/exercises/kindergarten-garden/kindergarten_garden_test.rb
7251
7296
  - tracks/ruby/exercises/largest-series-product/.meta/.version
7252
- - tracks/ruby/exercises/largest-series-product/.meta/generator/largest_series_product_cases.rb
7253
- - tracks/ruby/exercises/largest-series-product/example.rb
7297
+ - tracks/ruby/exercises/largest-series-product/.meta/generator/largest_series_product_case.rb
7298
+ - tracks/ruby/exercises/largest-series-product/.meta/solutions/largest_series_product.rb
7254
7299
  - tracks/ruby/exercises/largest-series-product/largest_series_product_test.rb
7255
7300
  - tracks/ruby/exercises/leap/.meta/.version
7256
- - tracks/ruby/exercises/leap/.meta/generator/leap_cases.rb
7301
+ - tracks/ruby/exercises/leap/.meta/generator/leap_case.rb
7257
7302
  - tracks/ruby/exercises/leap/.meta/generator/test_template.erb
7258
- - tracks/ruby/exercises/leap/example.rb
7303
+ - tracks/ruby/exercises/leap/.meta/solutions/leap.rb
7259
7304
  - tracks/ruby/exercises/leap/leap_test.rb
7260
- - tracks/ruby/exercises/linked-list/example.rb
7305
+ - tracks/ruby/exercises/linked-list/.meta/solutions/linked_list.rb
7261
7306
  - tracks/ruby/exercises/linked-list/linked_list_test.rb
7262
- - tracks/ruby/exercises/list-ops/example.rb
7307
+ - tracks/ruby/exercises/list-ops/.meta/solutions/list_ops.rb
7263
7308
  - tracks/ruby/exercises/list-ops/list_ops_test.rb
7264
7309
  - tracks/ruby/exercises/luhn/.meta/.version
7265
- - tracks/ruby/exercises/luhn/.meta/generator/luhn_cases.rb
7266
- - tracks/ruby/exercises/luhn/example.rb
7310
+ - tracks/ruby/exercises/luhn/.meta/generator/luhn_case.rb
7311
+ - tracks/ruby/exercises/luhn/.meta/solutions/luhn.rb
7267
7312
  - tracks/ruby/exercises/luhn/luhn_test.rb
7268
- - tracks/ruby/exercises/matrix/example.rb
7313
+ - tracks/ruby/exercises/matrix/.meta/solutions/matrix.rb
7269
7314
  - tracks/ruby/exercises/matrix/matrix_test.rb
7270
- - tracks/ruby/exercises/meetup/example.rb
7315
+ - tracks/ruby/exercises/meetup/.meta/solutions/meetup.rb
7271
7316
  - tracks/ruby/exercises/meetup/meetup_test.rb
7272
- - tracks/ruby/exercises/minesweeper/example.rb
7317
+ - tracks/ruby/exercises/minesweeper/.meta/solutions/minesweeper.rb
7273
7318
  - tracks/ruby/exercises/minesweeper/minesweeper_test.rb
7274
7319
  - tracks/ruby/exercises/nth-prime/.meta/.version
7275
- - tracks/ruby/exercises/nth-prime/.meta/generator/nth_prime_cases.rb
7276
- - tracks/ruby/exercises/nth-prime/example.rb
7320
+ - tracks/ruby/exercises/nth-prime/.meta/generator/nth_prime_case.rb
7321
+ - tracks/ruby/exercises/nth-prime/.meta/solutions/nth_prime.rb
7277
7322
  - tracks/ruby/exercises/nth-prime/nth_prime_test.rb
7278
- - tracks/ruby/exercises/nucleotide-count/example.rb
7323
+ - tracks/ruby/exercises/nucleotide-count/.meta/solutions/nucleotide_count.rb
7279
7324
  - tracks/ruby/exercises/nucleotide-count/nucleotide_count_test.rb
7280
7325
  - tracks/ruby/exercises/ocr-numbers/.meta/.version
7281
- - tracks/ruby/exercises/ocr-numbers/.meta/generator/ocr_numbers_cases.rb
7282
- - tracks/ruby/exercises/ocr-numbers/example.rb
7326
+ - tracks/ruby/exercises/ocr-numbers/.meta/generator/ocr_numbers_case.rb
7327
+ - tracks/ruby/exercises/ocr-numbers/.meta/solutions/ocr_numbers.rb
7283
7328
  - tracks/ruby/exercises/ocr-numbers/ocr_numbers_test.rb
7284
- - tracks/ruby/exercises/octal/example.rb
7329
+ - tracks/ruby/exercises/octal/.meta/solutions/octal.rb
7285
7330
  - tracks/ruby/exercises/octal/octal_test.rb
7286
- - tracks/ruby/exercises/palindrome-products/example.rb
7331
+ - tracks/ruby/exercises/palindrome-products/.meta/solutions/palindrome_products.rb
7287
7332
  - tracks/ruby/exercises/palindrome-products/palindrome_products_test.rb
7288
7333
  - tracks/ruby/exercises/pangram/.meta/.version
7289
- - tracks/ruby/exercises/pangram/.meta/generator/pangram_cases.rb
7290
- - tracks/ruby/exercises/pangram/example.rb
7334
+ - tracks/ruby/exercises/pangram/.meta/generator/pangram_case.rb
7335
+ - tracks/ruby/exercises/pangram/.meta/solutions/pangram.rb
7291
7336
  - tracks/ruby/exercises/pangram/pangram_test.rb
7292
- - tracks/ruby/exercises/pascals-triangle/example.rb
7337
+ - tracks/ruby/exercises/pascals-triangle/.meta/solutions/pascals_triangle.rb
7293
7338
  - tracks/ruby/exercises/pascals-triangle/pascals_triangle_test.rb
7294
- - tracks/ruby/exercises/perfect-numbers/example.rb
7339
+ - tracks/ruby/exercises/perfect-numbers/.meta/solutions/perfect_numbers.rb
7295
7340
  - tracks/ruby/exercises/perfect-numbers/perfect_numbers_test.rb
7296
7341
  - tracks/ruby/exercises/phone-number/.meta/.version
7297
- - tracks/ruby/exercises/phone-number/.meta/generator/phone_number_cases.rb
7298
- - tracks/ruby/exercises/phone-number/example.rb
7342
+ - tracks/ruby/exercises/phone-number/.meta/generator/phone_number_case.rb
7343
+ - tracks/ruby/exercises/phone-number/.meta/solutions/phone_number.rb
7299
7344
  - tracks/ruby/exercises/phone-number/phone_number_test.rb
7300
7345
  - tracks/ruby/exercises/pig-latin/.meta/.version
7301
- - tracks/ruby/exercises/pig-latin/.meta/generator/pig_latin_cases.rb
7302
- - tracks/ruby/exercises/pig-latin/example.rb
7346
+ - tracks/ruby/exercises/pig-latin/.meta/generator/pig_latin_case.rb
7347
+ - tracks/ruby/exercises/pig-latin/.meta/solutions/pig_latin.rb
7303
7348
  - tracks/ruby/exercises/pig-latin/pig_latin_test.rb
7304
- - tracks/ruby/exercises/point-mutations/example.rb
7349
+ - tracks/ruby/exercises/point-mutations/.meta/solutions/point_mutations.rb
7305
7350
  - tracks/ruby/exercises/point-mutations/point_mutations_test.rb
7306
- - tracks/ruby/exercises/poker/example.rb
7351
+ - tracks/ruby/exercises/poker/.meta/solutions/poker.rb
7307
7352
  - tracks/ruby/exercises/poker/poker_test.rb
7308
- - tracks/ruby/exercises/prime-factors/example.rb
7353
+ - tracks/ruby/exercises/prime-factors/.meta/solutions/prime_factors.rb
7309
7354
  - tracks/ruby/exercises/prime-factors/prime_factors_test.rb
7310
- - tracks/ruby/exercises/protein-translation/example.rb
7355
+ - tracks/ruby/exercises/protein-translation/.meta/solutions/protein_translation.rb
7311
7356
  - tracks/ruby/exercises/protein-translation/protein_translation_test.rb
7312
- - tracks/ruby/exercises/proverb/example.rb
7357
+ - tracks/ruby/exercises/proverb/.meta/solutions/proverb.rb
7313
7358
  - tracks/ruby/exercises/proverb/proverb_test.rb
7314
- - tracks/ruby/exercises/pythagorean-triplet/example.rb
7359
+ - tracks/ruby/exercises/pythagorean-triplet/.meta/solutions/pythagorean_triplet.rb
7315
7360
  - tracks/ruby/exercises/pythagorean-triplet/pythagorean_triplet_test.rb
7316
7361
  - tracks/ruby/exercises/queen-attack/.meta/.version
7317
- - tracks/ruby/exercises/queen-attack/.meta/generator/queen_attack_cases.rb
7318
- - tracks/ruby/exercises/queen-attack/example.rb
7362
+ - tracks/ruby/exercises/queen-attack/.meta/generator/queen_attack_case.rb
7363
+ - tracks/ruby/exercises/queen-attack/.meta/solutions/queen_attack.rb
7319
7364
  - tracks/ruby/exercises/queen-attack/queen_attack_test.rb
7320
- - tracks/ruby/exercises/rail-fence-cipher/example.rb
7365
+ - tracks/ruby/exercises/rail-fence-cipher/.meta/solutions/rail_fence_cipher.rb
7321
7366
  - tracks/ruby/exercises/rail-fence-cipher/rail_fence_cipher_test.rb
7322
7367
  - tracks/ruby/exercises/raindrops/.meta/.version
7323
- - tracks/ruby/exercises/raindrops/.meta/generator/raindrops_cases.rb
7324
- - tracks/ruby/exercises/raindrops/example.rb
7368
+ - tracks/ruby/exercises/raindrops/.meta/generator/raindrops_case.rb
7369
+ - tracks/ruby/exercises/raindrops/.meta/solutions/raindrops.rb
7325
7370
  - tracks/ruby/exercises/raindrops/raindrops_test.rb
7326
7371
  - tracks/ruby/exercises/rna-transcription/.meta/.version
7327
- - tracks/ruby/exercises/rna-transcription/.meta/generator/rna_transcription_cases.rb
7328
- - tracks/ruby/exercises/rna-transcription/example.rb
7372
+ - tracks/ruby/exercises/rna-transcription/.meta/generator/rna_transcription_case.rb
7373
+ - tracks/ruby/exercises/rna-transcription/.meta/solutions/rna_transcription.rb
7329
7374
  - tracks/ruby/exercises/rna-transcription/rna_transcription_test.rb
7330
- - tracks/ruby/exercises/robot-name/example.rb
7375
+ - tracks/ruby/exercises/robot-name/.meta/solutions/robot_name.rb
7376
+ - tracks/ruby/exercises/robot-name/HINTS.md
7331
7377
  - tracks/ruby/exercises/robot-name/robot_name_test.rb
7332
- - tracks/ruby/exercises/robot-simulator/example.rb
7378
+ - tracks/ruby/exercises/robot-simulator/.meta/solutions/robot_simulator.rb
7333
7379
  - tracks/ruby/exercises/robot-simulator/robot_simulator_test.rb
7334
7380
  - tracks/ruby/exercises/roman-numerals/.meta/.version
7335
- - tracks/ruby/exercises/roman-numerals/.meta/generator/roman_numerals_cases.rb
7336
- - tracks/ruby/exercises/roman-numerals/example.rb
7381
+ - tracks/ruby/exercises/roman-numerals/.meta/generator/roman_numerals_case.rb
7382
+ - tracks/ruby/exercises/roman-numerals/.meta/solutions/roman_numerals.rb
7337
7383
  - tracks/ruby/exercises/roman-numerals/roman_numerals_test.rb
7338
7384
  - tracks/ruby/exercises/run-length-encoding/.meta/.version
7339
- - tracks/ruby/exercises/run-length-encoding/.meta/generator/run_length_encoding_cases.rb
7340
- - tracks/ruby/exercises/run-length-encoding/example.rb
7385
+ - tracks/ruby/exercises/run-length-encoding/.meta/generator/run_length_encoding_case.rb
7386
+ - tracks/ruby/exercises/run-length-encoding/.meta/solutions/run_length_encoding.rb
7341
7387
  - tracks/ruby/exercises/run-length-encoding/run_length_encoding_test.rb
7342
- - tracks/ruby/exercises/saddle-points/example.rb
7388
+ - tracks/ruby/exercises/saddle-points/.meta/solutions/saddle_points.rb
7343
7389
  - tracks/ruby/exercises/saddle-points/saddle_points_test.rb
7344
7390
  - tracks/ruby/exercises/say/.meta/.version
7345
- - tracks/ruby/exercises/say/.meta/generator/say_cases.rb
7346
- - tracks/ruby/exercises/say/example.rb
7391
+ - tracks/ruby/exercises/say/.meta/generator/say_case.rb
7392
+ - tracks/ruby/exercises/say/.meta/solutions/say.rb
7347
7393
  - tracks/ruby/exercises/say/say_test.rb
7348
- - tracks/ruby/exercises/scale-generator/example.rb
7394
+ - tracks/ruby/exercises/scale-generator/.meta/solutions/scale_generator.rb
7349
7395
  - tracks/ruby/exercises/scale-generator/scale_generator_test.rb
7350
- - tracks/ruby/exercises/scrabble-score/example.rb
7396
+ - tracks/ruby/exercises/scrabble-score/.meta/solutions/scrabble_score.rb
7351
7397
  - tracks/ruby/exercises/scrabble-score/scrabble_score_test.rb
7352
- - tracks/ruby/exercises/secret-handshake/example.rb
7398
+ - tracks/ruby/exercises/secret-handshake/.meta/solutions/secret_handshake.rb
7353
7399
  - tracks/ruby/exercises/secret-handshake/secret_handshake_test.rb
7354
- - tracks/ruby/exercises/series/example.rb
7400
+ - tracks/ruby/exercises/series/.meta/solutions/series.rb
7355
7401
  - tracks/ruby/exercises/series/series_test.rb
7356
7402
  - tracks/ruby/exercises/sieve/.meta/.version
7357
- - tracks/ruby/exercises/sieve/.meta/generator/sieve_cases.rb
7358
- - tracks/ruby/exercises/sieve/example.rb
7403
+ - tracks/ruby/exercises/sieve/.meta/generator/sieve_case.rb
7404
+ - tracks/ruby/exercises/sieve/.meta/solutions/sieve.rb
7359
7405
  - tracks/ruby/exercises/sieve/sieve_test.rb
7360
- - tracks/ruby/exercises/simple-cipher/example.rb
7406
+ - tracks/ruby/exercises/simple-cipher/.meta/solutions/simple_cipher.rb
7361
7407
  - tracks/ruby/exercises/simple-cipher/simple_cipher_test.rb
7362
7408
  - tracks/ruby/exercises/simple-linked-list/.meta/.version
7363
- - tracks/ruby/exercises/simple-linked-list/example.rb
7409
+ - tracks/ruby/exercises/simple-linked-list/.meta/solutions/simple_linked_list.rb
7364
7410
  - tracks/ruby/exercises/simple-linked-list/simple_linked_list_test.rb
7365
- - tracks/ruby/exercises/space-age/example.rb
7411
+ - tracks/ruby/exercises/space-age/.meta/solutions/space_age.rb
7366
7412
  - tracks/ruby/exercises/space-age/space_age_test.rb
7367
- - tracks/ruby/exercises/strain/example.rb
7413
+ - tracks/ruby/exercises/strain/.meta/solutions/strain.rb
7368
7414
  - tracks/ruby/exercises/strain/strain_test.rb
7369
- - tracks/ruby/exercises/sum-of-multiples/example.rb
7415
+ - tracks/ruby/exercises/sum-of-multiples/.meta/solutions/sum_of_multiples.rb
7370
7416
  - tracks/ruby/exercises/sum-of-multiples/sum_of_multiples_test.rb
7371
7417
  - tracks/ruby/exercises/tournament/.meta/.version
7372
- - tracks/ruby/exercises/tournament/.meta/generator/tournament_cases.rb
7373
- - tracks/ruby/exercises/tournament/example.rb
7418
+ - tracks/ruby/exercises/tournament/.meta/generator/tournament_case.rb
7419
+ - tracks/ruby/exercises/tournament/.meta/solutions/tournament.rb
7374
7420
  - tracks/ruby/exercises/tournament/tournament_test.rb
7375
7421
  - tracks/ruby/exercises/transpose/.meta/.version
7376
- - tracks/ruby/exercises/transpose/.meta/generator/transpose_cases.rb
7377
- - tracks/ruby/exercises/transpose/example.rb
7422
+ - tracks/ruby/exercises/transpose/.meta/generator/transpose_case.rb
7423
+ - tracks/ruby/exercises/transpose/.meta/solutions/transpose.rb
7378
7424
  - tracks/ruby/exercises/transpose/transpose_test.rb
7379
7425
  - tracks/ruby/exercises/triangle/.meta/.version
7380
- - tracks/ruby/exercises/triangle/.meta/generator/triangle_cases.rb
7381
- - tracks/ruby/exercises/triangle/example.rb
7426
+ - tracks/ruby/exercises/triangle/.meta/generator/triangle_case.rb
7427
+ - tracks/ruby/exercises/triangle/.meta/solutions/triangle.rb
7382
7428
  - tracks/ruby/exercises/triangle/triangle_test.rb
7383
- - tracks/ruby/exercises/trinary/example.rb
7429
+ - tracks/ruby/exercises/trinary/.meta/solutions/trinary.rb
7384
7430
  - tracks/ruby/exercises/trinary/trinary_test.rb
7385
- - tracks/ruby/exercises/twelve-days/example.rb
7431
+ - tracks/ruby/exercises/twelve-days/.meta/solutions/twelve_days.rb
7386
7432
  - tracks/ruby/exercises/twelve-days/song.txt
7387
7433
  - tracks/ruby/exercises/twelve-days/twelve_days_test.rb
7388
7434
  - tracks/ruby/exercises/two-bucket/.meta/.version
7389
- - tracks/ruby/exercises/two-bucket/.meta/generator/two_bucket_cases.rb
7390
- - tracks/ruby/exercises/two-bucket/example.rb
7435
+ - tracks/ruby/exercises/two-bucket/.meta/generator/two_bucket_case.rb
7436
+ - tracks/ruby/exercises/two-bucket/.meta/solutions/two_bucket.rb
7391
7437
  - tracks/ruby/exercises/two-bucket/two_bucket_test.rb
7392
7438
  - tracks/ruby/exercises/word-count/.meta/.version
7393
- - tracks/ruby/exercises/word-count/.meta/generator/word_count_cases.rb
7394
- - tracks/ruby/exercises/word-count/example.rb
7439
+ - tracks/ruby/exercises/word-count/.meta/generator/word_count_case.rb
7440
+ - tracks/ruby/exercises/word-count/.meta/solutions/word_count.rb
7395
7441
  - tracks/ruby/exercises/word-count/word_count_test.rb
7396
7442
  - tracks/ruby/exercises/wordy/.meta/.version
7397
- - tracks/ruby/exercises/wordy/.meta/generator/wordy_cases.rb
7398
- - tracks/ruby/exercises/wordy/example.rb
7443
+ - tracks/ruby/exercises/wordy/.meta/generator/wordy_case.rb
7444
+ - tracks/ruby/exercises/wordy/.meta/solutions/wordy.rb
7399
7445
  - tracks/ruby/exercises/wordy/wordy_test.rb
7400
7446
  - tracks/ruby/img/icon.png
7401
7447
  - tracks/ruby/lib/bookkeeping.md
@@ -7403,6 +7449,7 @@ files:
7403
7449
  - tracks/ruby/lib/generator.rb
7404
7450
  - tracks/ruby/lib/generator/case_values.rb
7405
7451
  - tracks/ruby/lib/generator/command_line.rb
7452
+ - tracks/ruby/lib/generator/command_line/generator_optparser.rb
7406
7453
  - tracks/ruby/lib/generator/exercise_case.rb
7407
7454
  - tracks/ruby/lib/generator/exercise_case/assertion.rb
7408
7455
  - tracks/ruby/lib/generator/files.rb
@@ -7410,7 +7457,7 @@ files:
7410
7457
  - tracks/ruby/lib/generator/files/metadata_files.rb
7411
7458
  - tracks/ruby/lib/generator/files/track_files.rb
7412
7459
  - tracks/ruby/lib/generator/git_command.rb
7413
- - tracks/ruby/lib/generator/repository.rb
7460
+ - tracks/ruby/lib/generator/implementation.rb
7414
7461
  - tracks/ruby/lib/generator/template_values.rb
7415
7462
  - tracks/ruby/lib/generator/test_template.erb
7416
7463
  - tracks/ruby/lib/generator/underscore.rb
@@ -7420,16 +7467,16 @@ files:
7420
7467
  - tracks/ruby/lib/tasks/exercise_tests_runner.rb
7421
7468
  - tracks/ruby/test/fixtures/metadata/exercises/alpha/canonical-data.json
7422
7469
  - tracks/ruby/test/fixtures/metadata/exercises/complex/canonical-data.json
7470
+ - tracks/ruby/test/fixtures/xruby/exercises/alpha-beta/.meta/generator/test_template.erb
7423
7471
  - tracks/ruby/test/fixtures/xruby/exercises/alpha/.meta/.version
7424
- - tracks/ruby/test/fixtures/xruby/exercises/alpha/.meta/generator/alpha_cases.rb
7472
+ - tracks/ruby/test/fixtures/xruby/exercises/alpha/.meta/generator/alpha_case.rb
7425
7473
  - tracks/ruby/test/fixtures/xruby/exercises/alpha/.meta/generator/test_template.erb
7426
7474
  - tracks/ruby/test/fixtures/xruby/exercises/alpha/.meta/solutions/alpha.rb
7427
7475
  - tracks/ruby/test/fixtures/xruby/exercises/beta/.meta/.version
7428
- - tracks/ruby/test/fixtures/xruby/exercises/beta/.meta/generator/beta_cases.rb
7429
- - tracks/ruby/test/fixtures/xruby/exercises/beta/example.rb
7430
- - tracks/ruby/test/fixtures/xruby/exercises/beta/example.tt
7476
+ - tracks/ruby/test/fixtures/xruby/exercises/beta/.meta/generator/beta_case.rb
7431
7477
  - tracks/ruby/test/fixtures/xruby/lib/generator/test_template.erb
7432
7478
  - tracks/ruby/test/generator/case_values_test.rb
7479
+ - tracks/ruby/test/generator/command_line/generator_optparser_test.rb
7433
7480
  - tracks/ruby/test/generator/command_line_test.rb
7434
7481
  - tracks/ruby/test/generator/exercise_case/assertion_test.rb
7435
7482
  - tracks/ruby/test/generator/exercise_case_test.rb
@@ -7438,13 +7485,12 @@ files:
7438
7485
  - tracks/ruby/test/generator/files/track_files_test.rb
7439
7486
  - tracks/ruby/test/generator/files_test.rb
7440
7487
  - tracks/ruby/test/generator/git_command_test.rb
7441
- - tracks/ruby/test/generator/repository_test.rb
7488
+ - tracks/ruby/test/generator/implementation_test.rb
7442
7489
  - tracks/ruby/test/generator/template_values_test.rb
7443
7490
  - tracks/ruby/test/generator/underscore_test.rb
7444
7491
  - tracks/ruby/test/generator_test.rb
7445
7492
  - tracks/ruby/test/tasks/exercise_test.rb
7446
7493
  - tracks/ruby/test/tasks/exercise_test_tasks_test.rb
7447
- - tracks/ruby/test/tasks/exercise_tests_runner_legacy_test.rb
7448
7494
  - tracks/ruby/test/tasks/exercise_tests_runner_test.rb
7449
7495
  - tracks/ruby/test/test_helper.rb
7450
7496
  - tracks/ruby/test/wordy_cases_test.rb
@@ -7608,6 +7654,8 @@ files:
7608
7654
  - tracks/rust/exercises/leap/src/lib.rs
7609
7655
  - tracks/rust/exercises/leap/tests/leap.rs
7610
7656
  - tracks/rust/exercises/luhn-from/.gitignore
7657
+ - tracks/rust/exercises/luhn-from/.meta/description.md
7658
+ - tracks/rust/exercises/luhn-from/.meta/metadata.yml
7611
7659
  - tracks/rust/exercises/luhn-from/Cargo.toml
7612
7660
  - tracks/rust/exercises/luhn-from/description.md
7613
7661
  - tracks/rust/exercises/luhn-from/example.rs
@@ -7615,6 +7663,8 @@ files:
7615
7663
  - tracks/rust/exercises/luhn-from/src/lib.rs
7616
7664
  - tracks/rust/exercises/luhn-from/tests/luhn-from.rs
7617
7665
  - tracks/rust/exercises/luhn-trait/.gitignore
7666
+ - tracks/rust/exercises/luhn-trait/.meta/description.md
7667
+ - tracks/rust/exercises/luhn-trait/.meta/metadata.yml
7618
7668
  - tracks/rust/exercises/luhn-trait/Cargo.toml
7619
7669
  - tracks/rust/exercises/luhn-trait/description.md
7620
7670
  - tracks/rust/exercises/luhn-trait/example.rs