trackler 2.2.1.40 → 2.2.1.41

Sign up to get free protection for your applications and to get access to all the features.
Files changed (376) hide show
  1. checksums.yaml +4 -4
  2. data/.gitmodules +3 -0
  3. data/lib/trackler/version.rb +1 -1
  4. data/problem-specifications/exercises/dot-dsl/metadata.yml +1 -0
  5. data/problem-specifications/exercises/etl/metadata.yml +1 -0
  6. data/problem-specifications/exercises/isogram/canonical-data.json +3 -3
  7. data/problem-specifications/exercises/ocr-numbers/metadata.yml +1 -0
  8. data/problem-specifications/exercises/pascals-triangle/metadata.yml +1 -0
  9. data/problem-specifications/exercises/pov/metadata.yml +1 -0
  10. data/problem-specifications/exercises/rna-transcription/metadata.yml +1 -0
  11. data/problem-specifications/exercises/sgf-parsing/metadata.yml +1 -0
  12. data/tracks/c/exercises/all-your-base/src/example.c +14 -14
  13. data/tracks/c/exercises/all-your-base/src/example.h +2 -2
  14. data/tracks/ceylon/exercises/hamming/source/hamming/HammingTest.ceylon +1 -1
  15. data/tracks/ceylon/exercises/rna-transcription/source/rnatranscription/{RNAtest.ceylon → RNATest.ceylon} +0 -0
  16. data/tracks/cfml/.git +1 -0
  17. data/tracks/cfml/.gitignore +5 -0
  18. data/tracks/cfml/.travis.yml +18 -0
  19. data/tracks/cfml/CONTRIBUTING.md +10 -0
  20. data/tracks/cfml/LICENSE +21 -0
  21. data/tracks/cfml/README.md +92 -0
  22. data/tracks/cfml/bin/fetch-configlet +32 -0
  23. data/tracks/cfml/config/exercise_readme.go.tmpl +16 -0
  24. data/tracks/cfml/config/maintainers.json +13 -0
  25. data/tracks/cfml/config.json +223 -0
  26. data/tracks/cfml/docs/ABOUT.md +10 -0
  27. data/tracks/cfml/docs/EXERCISE_README_INSERT.md +15 -0
  28. data/tracks/cfml/docs/INSTALLATION.md +35 -0
  29. data/tracks/cfml/docs/LEARNING.md +37 -0
  30. data/tracks/cfml/docs/RESOURCES.md +29 -0
  31. data/tracks/cfml/docs/SNIPPET.txt +8 -0
  32. data/tracks/cfml/docs/TESTS.md +13 -0
  33. data/tracks/cfml/exercises/acronym/.meta/HINTS.md +0 -0
  34. data/tracks/cfml/exercises/acronym/Acronym.cfc +13 -0
  35. data/tracks/cfml/exercises/acronym/AcronymTest.cfc +43 -0
  36. data/tracks/cfml/exercises/acronym/Solution.cfc +22 -0
  37. data/tracks/cfml/exercises/acronym/SolutionTest.cfc +7 -0
  38. data/tracks/cfml/exercises/acronym/TestRunner.cfc +103 -0
  39. data/tracks/cfml/exercises/acronym/box.json +8 -0
  40. data/tracks/cfml/exercises/acronym/index.cfm +37 -0
  41. data/tracks/cfml/exercises/atbash-cipher/.meta/HINTS.md +0 -0
  42. data/tracks/cfml/exercises/atbash-cipher/AtbashCipher.cfc +14 -0
  43. data/tracks/cfml/exercises/atbash-cipher/AtbashCipherTest.cfc +71 -0
  44. data/tracks/cfml/exercises/atbash-cipher/Solution.cfc +56 -0
  45. data/tracks/cfml/exercises/atbash-cipher/SolutionTest.cfc +7 -0
  46. data/tracks/cfml/exercises/atbash-cipher/TestRunner.cfc +103 -0
  47. data/tracks/cfml/exercises/atbash-cipher/box.json +8 -0
  48. data/tracks/cfml/exercises/atbash-cipher/index.cfm +37 -0
  49. data/tracks/cfml/exercises/bob/.meta/HINTS.md +0 -0
  50. data/tracks/cfml/exercises/bob/Bob.cfc +13 -0
  51. data/tracks/cfml/exercises/bob/BobTest.cfc +115 -0
  52. data/tracks/cfml/exercises/bob/Solution.cfc +27 -0
  53. data/tracks/cfml/exercises/bob/SolutionTest.cfc +7 -0
  54. data/tracks/cfml/exercises/bob/TestRunner.cfc +103 -0
  55. data/tracks/cfml/exercises/bob/box.json +8 -0
  56. data/tracks/cfml/exercises/bob/index.cfm +37 -0
  57. data/tracks/cfml/exercises/diamond/.meta/HINTS.md +0 -0
  58. data/tracks/cfml/exercises/diamond/Diamond.cfc +13 -0
  59. data/tracks/cfml/exercises/diamond/DiamondTest.cfc +35 -0
  60. data/tracks/cfml/exercises/diamond/Solution.cfc +35 -0
  61. data/tracks/cfml/exercises/diamond/SolutionTest.cfc +7 -0
  62. data/tracks/cfml/exercises/diamond/TestRunner.cfc +103 -0
  63. data/tracks/cfml/exercises/diamond/box.json +8 -0
  64. data/tracks/cfml/exercises/diamond/index.cfm +37 -0
  65. data/tracks/cfml/exercises/difference-of-squares/.meta/HINTS.md +0 -0
  66. data/tracks/cfml/exercises/difference-of-squares/DifferenceOfSquares.cfc +18 -0
  67. data/tracks/cfml/exercises/difference-of-squares/DifferenceOfSquaresTest.cfc +63 -0
  68. data/tracks/cfml/exercises/difference-of-squares/Solution.cfc +28 -0
  69. data/tracks/cfml/exercises/difference-of-squares/SolutionTest.cfc +7 -0
  70. data/tracks/cfml/exercises/difference-of-squares/TestRunner.cfc +103 -0
  71. data/tracks/cfml/exercises/difference-of-squares/box.json +8 -0
  72. data/tracks/cfml/exercises/difference-of-squares/index.cfm +37 -0
  73. data/tracks/cfml/exercises/flatten-array/.meta/HINTS.md +0 -0
  74. data/tracks/cfml/exercises/flatten-array/FlattenArray.cfc +13 -0
  75. data/tracks/cfml/exercises/flatten-array/FlattenArrayTest.cfc +42 -0
  76. data/tracks/cfml/exercises/flatten-array/Solution.cfc +26 -0
  77. data/tracks/cfml/exercises/flatten-array/SolutionTest.cfc +7 -0
  78. data/tracks/cfml/exercises/flatten-array/TestRunner.cfc +103 -0
  79. data/tracks/cfml/exercises/flatten-array/box.json +8 -0
  80. data/tracks/cfml/exercises/flatten-array/index.cfm +37 -0
  81. data/tracks/cfml/exercises/gigasecond/.meta/HINTS.md +0 -0
  82. data/tracks/cfml/exercises/gigasecond/Gigasecond.cfc +13 -0
  83. data/tracks/cfml/exercises/gigasecond/GigasecondTest.cfc +39 -0
  84. data/tracks/cfml/exercises/gigasecond/Solution.cfc +16 -0
  85. data/tracks/cfml/exercises/gigasecond/SolutionTest.cfc +7 -0
  86. data/tracks/cfml/exercises/gigasecond/TestRunner.cfc +103 -0
  87. data/tracks/cfml/exercises/gigasecond/box.json +8 -0
  88. data/tracks/cfml/exercises/gigasecond/index.cfm +37 -0
  89. data/tracks/cfml/exercises/grains/.meta/HINTS.md +0 -0
  90. data/tracks/cfml/exercises/grains/Grains.cfc +14 -0
  91. data/tracks/cfml/exercises/grains/GrainsTest.cfc +63 -0
  92. data/tracks/cfml/exercises/grains/Solution.cfc +22 -0
  93. data/tracks/cfml/exercises/grains/SolutionTest.cfc +7 -0
  94. data/tracks/cfml/exercises/grains/TestRunner.cfc +103 -0
  95. data/tracks/cfml/exercises/grains/box.json +8 -0
  96. data/tracks/cfml/exercises/grains/index.cfm +37 -0
  97. data/tracks/cfml/exercises/hamming/.meta/HINTS.md +0 -0
  98. data/tracks/cfml/exercises/hamming/Hamming.cfc +13 -0
  99. data/tracks/cfml/exercises/hamming/HammingTest.cfc +75 -0
  100. data/tracks/cfml/exercises/hamming/Solution.cfc +25 -0
  101. data/tracks/cfml/exercises/hamming/SolutionTest.cfc +7 -0
  102. data/tracks/cfml/exercises/hamming/TestRunner.cfc +103 -0
  103. data/tracks/cfml/exercises/hamming/box.json +8 -0
  104. data/tracks/cfml/exercises/hamming/index.cfm +37 -0
  105. data/tracks/cfml/exercises/hello-world/HelloWorld.cfc +13 -0
  106. data/tracks/cfml/exercises/hello-world/HelloWorldTest.cfc +18 -0
  107. data/tracks/cfml/exercises/hello-world/Solution.cfc +13 -0
  108. data/tracks/cfml/exercises/hello-world/SolutionTest.cfc +7 -0
  109. data/tracks/cfml/exercises/hello-world/TestRunner.cfc +103 -0
  110. data/tracks/cfml/exercises/hello-world/box.json +8 -0
  111. data/tracks/cfml/exercises/hello-world/index.cfm +37 -0
  112. data/tracks/cfml/exercises/isogram/.meta/HINTS.md +0 -0
  113. data/tracks/cfml/exercises/isogram/Isogram.cfc +13 -0
  114. data/tracks/cfml/exercises/isogram/IsogramTest.cfc +55 -0
  115. data/tracks/cfml/exercises/isogram/Solution.cfc +23 -0
  116. data/tracks/cfml/exercises/isogram/SolutionTest.cfc +7 -0
  117. data/tracks/cfml/exercises/isogram/TestRunner.cfc +103 -0
  118. data/tracks/cfml/exercises/isogram/box.json +8 -0
  119. data/tracks/cfml/exercises/isogram/index.cfm +37 -0
  120. data/tracks/cfml/exercises/largest-series-product/.meta/HINTS.md +0 -0
  121. data/tracks/cfml/exercises/largest-series-product/LargestSeriesProduct.cfc +13 -0
  122. data/tracks/cfml/exercises/largest-series-product/LargestSeriesProductTest.cfc +75 -0
  123. data/tracks/cfml/exercises/largest-series-product/Solution.cfc +41 -0
  124. data/tracks/cfml/exercises/largest-series-product/SolutionTest.cfc +7 -0
  125. data/tracks/cfml/exercises/largest-series-product/TestRunner.cfc +103 -0
  126. data/tracks/cfml/exercises/largest-series-product/box.json +8 -0
  127. data/tracks/cfml/exercises/largest-series-product/index.cfm +37 -0
  128. data/tracks/cfml/exercises/leap/Leap.cfc +15 -0
  129. data/tracks/cfml/exercises/leap/LeapTest.cfc +39 -0
  130. data/tracks/cfml/exercises/leap/README.md +33 -0
  131. data/tracks/cfml/exercises/leap/Solution.cfc +19 -0
  132. data/tracks/cfml/exercises/leap/SolutionTest.cfc +7 -0
  133. data/tracks/cfml/exercises/leap/TestRunner.cfc +103 -0
  134. data/tracks/cfml/exercises/leap/box.json +8 -0
  135. data/tracks/cfml/exercises/leap/index.cfm +37 -0
  136. data/tracks/cfml/exercises/luhn/.meta/HINTS.md +0 -0
  137. data/tracks/cfml/exercises/luhn/Luhn.cfc +13 -0
  138. data/tracks/cfml/exercises/luhn/LuhnTest.cfc +67 -0
  139. data/tracks/cfml/exercises/luhn/Solution.cfc +38 -0
  140. data/tracks/cfml/exercises/luhn/SolutionTest.cfc +7 -0
  141. data/tracks/cfml/exercises/luhn/TestRunner.cfc +103 -0
  142. data/tracks/cfml/exercises/luhn/box.json +8 -0
  143. data/tracks/cfml/exercises/luhn/index.cfm +37 -0
  144. data/tracks/cfml/exercises/nth-prime/.meta/HINTS.md +0 -0
  145. data/tracks/cfml/exercises/nth-prime/NthPrime.cfc +13 -0
  146. data/tracks/cfml/exercises/nth-prime/NthPrimeTest.cfc +35 -0
  147. data/tracks/cfml/exercises/nth-prime/Solution.cfc +33 -0
  148. data/tracks/cfml/exercises/nth-prime/SolutionTest.cfc +7 -0
  149. data/tracks/cfml/exercises/nth-prime/TestRunner.cfc +103 -0
  150. data/tracks/cfml/exercises/nth-prime/box.json +8 -0
  151. data/tracks/cfml/exercises/nth-prime/index.cfm +37 -0
  152. data/tracks/cfml/exercises/pangram/.meta/HINTS.md +0 -0
  153. data/tracks/cfml/exercises/pangram/Pangram.cfc +13 -0
  154. data/tracks/cfml/exercises/pangram/PangramTest.cfc +55 -0
  155. data/tracks/cfml/exercises/pangram/Solution.cfc +21 -0
  156. data/tracks/cfml/exercises/pangram/SolutionTest.cfc +7 -0
  157. data/tracks/cfml/exercises/pangram/TestRunner.cfc +103 -0
  158. data/tracks/cfml/exercises/pangram/box.json +8 -0
  159. data/tracks/cfml/exercises/pangram/index.cfm +37 -0
  160. data/tracks/cfml/exercises/pig-latin/.meta/HINTS.md +0 -0
  161. data/tracks/cfml/exercises/pig-latin/PigLatin.cfc +13 -0
  162. data/tracks/cfml/exercises/pig-latin/PigLatinTest.cfc +115 -0
  163. data/tracks/cfml/exercises/pig-latin/Solution.cfc +30 -0
  164. data/tracks/cfml/exercises/pig-latin/SolutionTest.cfc +7 -0
  165. data/tracks/cfml/exercises/pig-latin/TestRunner.cfc +103 -0
  166. data/tracks/cfml/exercises/pig-latin/box.json +8 -0
  167. data/tracks/cfml/exercises/pig-latin/index.cfm +37 -0
  168. data/tracks/cfml/exercises/raindrops/.meta/HINTS.md +0 -0
  169. data/tracks/cfml/exercises/raindrops/Raindrops.cfc +13 -0
  170. data/tracks/cfml/exercises/raindrops/RaindropsTest.cfc +87 -0
  171. data/tracks/cfml/exercises/raindrops/Solution.cfc +33 -0
  172. data/tracks/cfml/exercises/raindrops/SolutionTest.cfc +7 -0
  173. data/tracks/cfml/exercises/raindrops/TestRunner.cfc +103 -0
  174. data/tracks/cfml/exercises/raindrops/box.json +8 -0
  175. data/tracks/cfml/exercises/raindrops/index.cfm +37 -0
  176. data/tracks/cfml/exercises/rna-transcription/.meta/HINTS.md +0 -0
  177. data/tracks/cfml/exercises/rna-transcription/RnaTranscription.cfc +13 -0
  178. data/tracks/cfml/exercises/rna-transcription/RnaTranscriptionTest.cfc +47 -0
  179. data/tracks/cfml/exercises/rna-transcription/Solution.cfc +35 -0
  180. data/tracks/cfml/exercises/rna-transcription/SolutionTest.cfc +7 -0
  181. data/tracks/cfml/exercises/rna-transcription/TestRunner.cfc +103 -0
  182. data/tracks/cfml/exercises/rna-transcription/box.json +8 -0
  183. data/tracks/cfml/exercises/rna-transcription/index.cfm +37 -0
  184. data/tracks/cfml/exercises/saddle-points/.meta/HINTS.md +0 -0
  185. data/tracks/cfml/exercises/saddle-points/SaddlePoints.cfc +13 -0
  186. data/tracks/cfml/exercises/saddle-points/SaddlePointsTest.cfc +35 -0
  187. data/tracks/cfml/exercises/saddle-points/Solution.cfc +59 -0
  188. data/tracks/cfml/exercises/saddle-points/SolutionTest.cfc +7 -0
  189. data/tracks/cfml/exercises/saddle-points/TestRunner.cfc +103 -0
  190. data/tracks/cfml/exercises/saddle-points/box.json +8 -0
  191. data/tracks/cfml/exercises/saddle-points/index.cfm +37 -0
  192. data/tracks/cfml/exercises/scrabble-score/.meta/HINTS.md +0 -0
  193. data/tracks/cfml/exercises/scrabble-score/ScrabbleScore.cfc +13 -0
  194. data/tracks/cfml/exercises/scrabble-score/ScrabbleScoreTest.cfc +59 -0
  195. data/tracks/cfml/exercises/scrabble-score/Solution.cfc +50 -0
  196. data/tracks/cfml/exercises/scrabble-score/SolutionTest.cfc +7 -0
  197. data/tracks/cfml/exercises/scrabble-score/TestRunner.cfc +103 -0
  198. data/tracks/cfml/exercises/scrabble-score/box.json +8 -0
  199. data/tracks/cfml/exercises/scrabble-score/index.cfm +37 -0
  200. data/tracks/cfml/exercises/secret-handshake/.meta/HINTS.md +0 -0
  201. data/tracks/cfml/exercises/secret-handshake/SecretHandshake.cfc +13 -0
  202. data/tracks/cfml/exercises/secret-handshake/SecretHandshakeTest.cfc +63 -0
  203. data/tracks/cfml/exercises/secret-handshake/Solution.cfc +31 -0
  204. data/tracks/cfml/exercises/secret-handshake/SolutionTest.cfc +7 -0
  205. data/tracks/cfml/exercises/secret-handshake/TestRunner.cfc +103 -0
  206. data/tracks/cfml/exercises/secret-handshake/box.json +8 -0
  207. data/tracks/cfml/exercises/secret-handshake/index.cfm +37 -0
  208. data/tracks/cfml/exercises/space-age/.meta/HINTS.md +0 -0
  209. data/tracks/cfml/exercises/space-age/Solution.cfc +28 -0
  210. data/tracks/cfml/exercises/space-age/SolutionTest.cfc +7 -0
  211. data/tracks/cfml/exercises/space-age/SpaceAge.cfc +13 -0
  212. data/tracks/cfml/exercises/space-age/SpaceAgeTest.cfc +47 -0
  213. data/tracks/cfml/exercises/space-age/TestRunner.cfc +103 -0
  214. data/tracks/cfml/exercises/space-age/box.json +8 -0
  215. data/tracks/cfml/exercises/space-age/index.cfm +37 -0
  216. data/tracks/cfml/exercises/sum-of-multiples/.meta/HINTS.md +0 -0
  217. data/tracks/cfml/exercises/sum-of-multiples/Solution.cfc +27 -0
  218. data/tracks/cfml/exercises/sum-of-multiples/SolutionTest.cfc +7 -0
  219. data/tracks/cfml/exercises/sum-of-multiples/SumOfMultiples.cfc +13 -0
  220. data/tracks/cfml/exercises/sum-of-multiples/SumOfMultiplesTest.cfc +63 -0
  221. data/tracks/cfml/exercises/sum-of-multiples/TestRunner.cfc +103 -0
  222. data/tracks/cfml/exercises/sum-of-multiples/box.json +8 -0
  223. data/tracks/cfml/exercises/sum-of-multiples/index.cfm +37 -0
  224. data/tracks/cfml/exercises/triangle/.meta/HINTS.md +0 -0
  225. data/tracks/cfml/exercises/triangle/Solution.cfc +53 -0
  226. data/tracks/cfml/exercises/triangle/SolutionTest.cfc +7 -0
  227. data/tracks/cfml/exercises/triangle/TestRunner.cfc +103 -0
  228. data/tracks/cfml/exercises/triangle/Triangle.cfc +18 -0
  229. data/tracks/cfml/exercises/triangle/TriangleTest.cfc +95 -0
  230. data/tracks/cfml/exercises/triangle/box.json +8 -0
  231. data/tracks/cfml/exercises/triangle/index.cfm +37 -0
  232. data/tracks/cfml/exercises/word-count/.meta/HINTS.md +0 -0
  233. data/tracks/cfml/exercises/word-count/Solution.cfc +22 -0
  234. data/tracks/cfml/exercises/word-count/SolutionTest.cfc +7 -0
  235. data/tracks/cfml/exercises/word-count/TestRunner.cfc +103 -0
  236. data/tracks/cfml/exercises/word-count/WordCount.cfc +13 -0
  237. data/tracks/cfml/exercises/word-count/WordCountTest.cfc +55 -0
  238. data/tracks/cfml/exercises/word-count/box.json +8 -0
  239. data/tracks/cfml/exercises/word-count/index.cfm +37 -0
  240. data/tracks/cfml/img/icon.png +0 -0
  241. data/tracks/cfml/tasks/GenerateTests.cfc +179 -0
  242. data/tracks/cfml/tasks/ScaffoldExercise.cfc +85 -0
  243. data/tracks/cfml/tasks/TestAllSolutions.cfc +24 -0
  244. data/tracks/cfml/tasks/exercise_template/.meta/HINTS.md +0 -0
  245. data/tracks/cfml/tasks/exercise_template/@@name@@.cfc +13 -0
  246. data/tracks/cfml/tasks/exercise_template/@@name@@Test.cfc +15 -0
  247. data/tracks/cfml/tasks/exercise_template/Solution.cfc +6 -0
  248. data/tracks/cfml/tasks/exercise_template/SolutionTest.cfc +7 -0
  249. data/tracks/cfml/tasks/exercise_template/TestRunner.cfc +103 -0
  250. data/tracks/cfml/tasks/exercise_template/box.json +8 -0
  251. data/tracks/cfml/tasks/exercise_template/index.cfm +37 -0
  252. data/tracks/coldfusion/docs/ABOUT.md +8 -6
  253. data/tracks/csharp/docs/GENERATORS.md +7 -0
  254. data/tracks/csharp/exercises/clock/ClockTest.cs +15 -15
  255. data/tracks/csharp/exercises/nucleotide-count/Example.cs +10 -11
  256. data/tracks/csharp/exercises/nucleotide-count/NucleotideCount.cs +2 -7
  257. data/tracks/csharp/exercises/nucleotide-count/NucleotideCountTest.cs +37 -47
  258. data/tracks/csharp/exercises/pig-latin/Example.cs +1 -1
  259. data/tracks/csharp/exercises/pig-latin/PigLatinTest.cs +19 -7
  260. data/tracks/csharp/exercises/sum-of-multiples/SumOfMultiplesTest.cs +7 -1
  261. data/tracks/csharp/exercises/tournament/Example.cs +1 -1
  262. data/tracks/csharp/exercises/tournament/TournamentTest.cs +151 -68
  263. data/tracks/csharp/exercises/triangle/Example.cs +26 -8
  264. data/tracks/csharp/exercises/triangle/Triangle.cs +16 -1
  265. data/tracks/csharp/exercises/triangle/TriangleTest.cs +44 -30
  266. data/tracks/csharp/generators/Exercise.cs +6 -1
  267. data/tracks/csharp/generators/Exercises/Clock.cs +17 -1
  268. data/tracks/csharp/generators/Exercises/NucleotideCount.cs +61 -0
  269. data/tracks/csharp/generators/Exercises/Tournament.cs +66 -0
  270. data/tracks/csharp/generators/Exercises/Triangle.cs +36 -0
  271. data/tracks/dart/config.json +15 -2
  272. data/tracks/dart/exercises/raindrops/lib/example.dart +23 -0
  273. data/tracks/dart/exercises/raindrops/lib/raindrops.dart +3 -0
  274. data/tracks/dart/exercises/raindrops/pubspec.lock +281 -0
  275. data/tracks/dart/exercises/raindrops/pubspec.yaml +3 -0
  276. data/tracks/dart/exercises/raindrops/test/raindrops_test.dart +94 -0
  277. data/tracks/delphi/exercises/pig-latin/uPigLatinExample.pas +1 -25
  278. data/tracks/haskell/config.json +9 -0
  279. data/tracks/haskell/exercises/acronym/README.md +0 -1
  280. data/tracks/haskell/exercises/all-your-base/README.md +1 -1
  281. data/tracks/haskell/exercises/allergies/README.md +0 -1
  282. data/tracks/haskell/exercises/alphametics/README.md +2 -2
  283. data/tracks/haskell/exercises/atbash-cipher/README.md +2 -1
  284. data/tracks/haskell/exercises/beer-song/README.md +1 -1
  285. data/tracks/haskell/exercises/binary/README.md +2 -0
  286. data/tracks/haskell/exercises/bowling/README.md +20 -6
  287. data/tracks/haskell/exercises/collatz-conjecture/README.md +1 -1
  288. data/tracks/haskell/exercises/connect/README.md +1 -1
  289. data/tracks/haskell/exercises/crypto-square/README.md +4 -4
  290. data/tracks/haskell/exercises/diamond/README.md +113 -0
  291. data/tracks/haskell/exercises/diamond/examples/success-standard/package.yaml +16 -0
  292. data/tracks/haskell/exercises/diamond/examples/success-standard/src/Diamond.hs +16 -0
  293. data/tracks/haskell/exercises/diamond/package.yaml +20 -0
  294. data/tracks/haskell/exercises/diamond/src/Diamond.hs +4 -0
  295. data/tracks/haskell/exercises/diamond/stack.yaml +1 -0
  296. data/tracks/haskell/exercises/diamond/test/Tests.hs +109 -0
  297. data/tracks/haskell/exercises/etl/README.md +3 -1
  298. data/tracks/haskell/exercises/food-chain/README.md +1 -1
  299. data/tracks/haskell/exercises/go-counting/README.md +1 -1
  300. data/tracks/haskell/exercises/grade-school/README.md +0 -1
  301. data/tracks/haskell/exercises/grains/README.md +0 -1
  302. data/tracks/haskell/exercises/house/README.md +1 -2
  303. data/tracks/haskell/exercises/isogram/README.md +2 -1
  304. data/tracks/haskell/exercises/kindergarten-garden/README.md +3 -3
  305. data/tracks/haskell/exercises/leap/README.md +1 -1
  306. data/tracks/haskell/exercises/linked-list/README.md +10 -10
  307. data/tracks/haskell/exercises/luhn/README.md +7 -7
  308. data/tracks/haskell/exercises/matrix/README.md +6 -4
  309. data/tracks/haskell/exercises/meetup/README.md +1 -2
  310. data/tracks/haskell/exercises/nucleotide-count/README.md +8 -22
  311. data/tracks/haskell/exercises/ocr-numbers/README.md +6 -6
  312. data/tracks/haskell/exercises/octal/README.md +6 -2
  313. data/tracks/haskell/exercises/palindrome-products/README.md +12 -6
  314. data/tracks/haskell/exercises/pangram/README.md +1 -1
  315. data/tracks/haskell/exercises/pascals-triangle/README.md +2 -2
  316. data/tracks/haskell/exercises/phone-number/README.md +3 -2
  317. data/tracks/haskell/exercises/pov/README.md +3 -3
  318. data/tracks/haskell/exercises/pythagorean-triplet/README.md +3 -3
  319. data/tracks/haskell/exercises/queen-attack/README.md +1 -1
  320. data/tracks/haskell/exercises/rna-transcription/README.md +1 -1
  321. data/tracks/haskell/exercises/roman-numerals/README.md +1 -1
  322. data/tracks/haskell/exercises/run-length-encoding/README.md +4 -4
  323. data/tracks/haskell/exercises/saddle-points/README.md +1 -1
  324. data/tracks/haskell/exercises/scrabble-score/README.md +3 -1
  325. data/tracks/haskell/exercises/secret-handshake/README.md +1 -1
  326. data/tracks/haskell/exercises/sgf-parsing/README.md +4 -4
  327. data/tracks/haskell/exercises/simple-cipher/README.md +1 -1
  328. data/tracks/haskell/exercises/spiral-matrix/README.md +2 -2
  329. data/tracks/haskell/exercises/triangle/README.md +9 -6
  330. data/tracks/haskell/exercises/trinary/README.md +1 -1
  331. data/tracks/haskell/exercises/word-count/README.md +1 -2
  332. data/tracks/haskell/exercises/wordy/README.md +0 -5
  333. data/tracks/java/config.json +56 -9
  334. data/tracks/java/exercises/binary-search-tree/src/test/java/BSTTest.java +4 -4
  335. data/tracks/javascript/exercises/two-bucket/example.js +66 -69
  336. data/tracks/javascript/exercises/two-bucket/two-bucket.spec.js +18 -18
  337. data/tracks/julia/config.json +1 -0
  338. data/tracks/julia/docs/ABOUT.md +3 -8
  339. data/tracks/prolog/README.md +1 -1
  340. data/tracks/purescript/.travis.yml +1 -0
  341. data/tracks/purescript/README.md +9 -0
  342. data/tracks/purescript/bin/check-bower.sh +42 -0
  343. data/tracks/purescript/bin/test-separate.sh +46 -0
  344. data/tracks/python/README.md +2 -2
  345. data/tracks/python/exercises/all-your-base/all_your_base.py +2 -0
  346. data/tracks/python/exercises/atbash-cipher/atbash_cipher.py +2 -2
  347. data/tracks/python/exercises/complex-numbers/complex_numbers_test.py +2 -2
  348. data/tracks/python/exercises/complex-numbers/example.py +2 -2
  349. data/tracks/python/exercises/gigasecond/gigasecond.py +1 -1
  350. data/tracks/python/exercises/hamming/hamming.py +1 -1
  351. data/tracks/python/exercises/hexadecimal/hexadecimal.py +1 -1
  352. data/tracks/python/exercises/leap/leap.py +1 -1
  353. data/tracks/python/exercises/meetup/meetup.py +1 -1
  354. data/tracks/python/exercises/phone-number/example.py +4 -2
  355. data/tracks/python/exercises/phone-number/phone_number_test.py +47 -16
  356. data/tracks/python/exercises/pig-latin/pig_latin.py +1 -1
  357. data/tracks/python/exercises/scrabble-score/scrabble_score.py +1 -1
  358. data/tracks/python/exercises/wordy/wordy.py +1 -1
  359. data/tracks/scala/exercises/meetup/example.scala +29 -10
  360. data/tracks/scala/exercises/meetup/src/main/scala/Meetup.scala +23 -0
  361. data/tracks/scala/exercises/meetup/src/test/scala/MeetupTest.scala +273 -183
  362. data/tracks/sml/config.json +13 -0
  363. data/tracks/sml/exercises/anagram/README.md +21 -5
  364. data/tracks/sml/exercises/anagram/anagram.sml +2 -6
  365. data/tracks/sml/exercises/anagram/example.sml +29 -24
  366. data/tracks/sml/exercises/anagram/test.sml +56 -50
  367. data/tracks/sml/exercises/anagram/testlib.sml +159 -0
  368. data/tracks/sml/exercises/diamond/README.md +89 -0
  369. data/tracks/sml/exercises/diamond/diamond.sml +2 -0
  370. data/tracks/sml/exercises/diamond/example.sml +25 -0
  371. data/tracks/sml/exercises/diamond/test.sml +27 -0
  372. data/tracks/sml/exercises/diamond/testlib.sml +159 -0
  373. data/tracks/sml/exercises/raindrops/raindrops.sml +2 -2
  374. data/tracks/sml/exercises/raindrops/test.sml +66 -95
  375. data/tracks/sml/exercises/raindrops/testlib.sml +159 -0
  376. metadata +265 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f995ce4fe305766cbda5eabfcdfe5bfa4f7ebae2
4
- data.tar.gz: ad03d5401c9a44c5408605405381817715d40c3c
3
+ metadata.gz: 0214b3b6d688d73c6a1c977f15b470b9d2b6d4af
4
+ data.tar.gz: 197fa90c855996ffbe2d6f1028002d30188e7305
5
5
  SHA512:
6
- metadata.gz: fb20fd7f8fc0e98bfe1030abb8c828485695ce43ebb9508183c3fc96d289bc5e8cd332dacf8fbab81698f98b647788497e83c2d81d45d21f6874ad23e7488e12
7
- data.tar.gz: 1f2a1bda85e248d8e3fa93446ef13c9fb6a30585af1c028a74cff23f3f4d0199306ba6dcf5cbfcc7f2378df2d7cde1e22305e6c3efaa2c652cd9e5372e691e59
6
+ metadata.gz: 699433c2c931da44c019a44a7179ace1057dbfdf3196258ec7cbcec31c7763c7e9c2b7ed38576efc4bc6d282257cd2c871eb8a227c98204b3c3625ffbaf971a6
7
+ data.tar.gz: c71601428e95797353e643ae32faaf86ce949e463fae541675f9d0e5e9d713a38cbd35966c0eb66309a4eeb5e1fa2950175d244ceaaa325d4b0084482bee12d4
data/.gitmodules CHANGED
@@ -175,3 +175,6 @@
175
175
  [submodule "tracks/common-lisp"]
176
176
  path = tracks/common-lisp
177
177
  url = https://github.com/exercism/common-lisp
178
+ [submodule "tracks/cfml"]
179
+ path = tracks/cfml
180
+ url = https://github.com/exercism/cfml
@@ -1,3 +1,3 @@
1
1
  module Trackler
2
- VERSION = "2.2.1.40"
2
+ VERSION = "2.2.1.41"
3
3
  end
@@ -1,2 +1,3 @@
1
1
  ---
2
+ title: "DOT DSL"
2
3
  blurb: "Write a Domain Specific Language similar to the Graphviz dot language"
@@ -1,4 +1,5 @@
1
1
  ---
2
+ title: "ETL"
2
3
  blurb: "We are going to do the `Transform` step of an Extract-Transform-Load."
3
4
  source: "The Jumpstart Lab team"
4
5
  source_url: "http://jumpstartlab.com"
@@ -3,7 +3,7 @@
3
3
  "comments": [
4
4
  "An isogram is a word or phrase without a repeating letter."
5
5
  ],
6
- "version": "1.1.0",
6
+ "version": "1.2.0",
7
7
  "cases": [
8
8
  {
9
9
  "description": "Check if the given string is an isogram",
@@ -48,9 +48,9 @@
48
48
  "expected": true
49
49
  },
50
50
  {
51
- "description": "isogram with duplicated non letter character",
51
+ "description": "isogram with duplicated hyphen",
52
52
  "property": "isIsogram",
53
- "input": "Hjelmqvist-Gryb-Zock-Pfund-Wax",
53
+ "input": "six-year-old",
54
54
  "expected": true
55
55
  },
56
56
  {
@@ -1,4 +1,5 @@
1
1
  ---
2
+ title: "OCR Numbers"
2
3
  blurb: "Given a 3 x 4 grid of pipes, underscores, and spaces, determine which number is represented, or whether it is garbled."
3
4
  source: "Inspired by the Bank OCR kata"
4
5
  source_url: "http://codingdojo.org/cgi-bin/wiki.pl?KataBankOCR"
@@ -1,4 +1,5 @@
1
1
  ---
2
+ title: "Pascal's Triangle"
2
3
  blurb: "Compute Pascal's triangle up to a given number of rows."
3
4
  source: "Pascal's Triangle at Wolfram Math World"
4
5
  source_url: "http://mathworld.wolfram.com/PascalsTriangle.html"
@@ -1,4 +1,5 @@
1
1
  ---
2
+ title: "POV"
2
3
  blurb: "Reparent a graph on a selected node"
3
4
  source: "Adaptation of exercise from 4clojure"
4
5
  source_url: "https://www.4clojure.com/"
@@ -1,4 +1,5 @@
1
1
  ---
2
+ title: "RNA Transcription"
2
3
  blurb: "Given a DNA strand, return its RNA complement (per RNA transcription)."
3
4
  source: "Rosalind"
4
5
  source_url: "http://rosalind.info/problems/rna"
@@ -1,2 +1,3 @@
1
1
  ---
2
+ title: "SGF Parsing"
2
3
  blurb: "Parsing a Smart Game Format string."
@@ -2,40 +2,40 @@
2
2
  #include <math.h>
3
3
  #include <string.h>
4
4
 
5
- size_t rebase(int8_t digits[DIGITS_ARRAY_SIZE], int16_t fromBase,
6
- int16_t toBase, size_t numDigits)
5
+ size_t rebase(int8_t digits[DIGITS_ARRAY_SIZE], int16_t from_base,
6
+ int16_t to_base, size_t num_digits)
7
7
  {
8
8
  uint16_t denary = 0;
9
- size_t newNumDigits = 0;
9
+ size_t new_num_digits = 0;
10
10
 
11
- if ((fromBase <= 1) || (toBase <= 1) || (numDigits <= 0))
11
+ if ((from_base <= 1) || (to_base <= 1) || (num_digits <= 0))
12
12
  return 0; /* invalid bases or length */
13
13
  if (digits[0] == 0)
14
14
  return 0; /* leading zeros */
15
15
 
16
16
  /* convert to denary */
17
- for (size_t i = 0; i < numDigits; ++i) {
17
+ for (size_t i = 0; i < num_digits; ++i) {
18
18
  if (digits[i] < 0)
19
19
  return 0; /* negative digits */
20
- if (digits[i] >= fromBase)
20
+ if (digits[i] >= from_base)
21
21
  return 0; /* invaid positive digit */
22
- denary += digits[i] * pow(fromBase, (numDigits - i - 1));
22
+ denary += digits[i] * pow(from_base, (num_digits - i - 1));
23
23
  }
24
24
 
25
25
  /* calculate number of new digits */
26
26
  for (uint16_t j = denary; j > 0;) {
27
- j /= toBase;
28
- ++newNumDigits;
27
+ j /= to_base;
28
+ ++new_num_digits;
29
29
  }
30
30
 
31
31
  /* calculate and store new digits */
32
- for (size_t i = newNumDigits - 1; denary > 0; --i) {
33
- digits[i] = denary % toBase;
34
- denary /= toBase;
32
+ for (size_t i = new_num_digits - 1; denary > 0; --i) {
33
+ digits[i] = denary % to_base;
34
+ denary /= to_base;
35
35
  }
36
36
 
37
37
  /* ensure rest of array is zero */
38
- memset(&digits[newNumDigits], 0, DIGITS_ARRAY_SIZE - newNumDigits);
38
+ memset(&digits[new_num_digits], 0, DIGITS_ARRAY_SIZE - new_num_digits);
39
39
 
40
- return newNumDigits;
40
+ return new_num_digits;
41
41
  }
@@ -6,7 +6,7 @@
6
6
 
7
7
  #define DIGITS_ARRAY_SIZE 64
8
8
 
9
- size_t rebase(int8_t digits[DIGITS_ARRAY_SIZE], int16_t fromBase,
10
- int16_t toBase, size_t numDigits);
9
+ size_t rebase(int8_t digits[DIGITS_ARRAY_SIZE], int16_t from_base,
10
+ int16_t to_base, size_t num_digits);
11
11
 
12
12
  #endif
@@ -1,6 +1,6 @@
1
1
  import ceylon.test { ... }
2
2
 
3
- // Tests adapted from problem-specifications version 1.0.0
3
+ // Tests adapted from problem-specifications version 2.0.0
4
4
  {[String, String, Integer?]*} cases => {
5
5
  // identical strands
6
6
  ["A", "A", 0],
data/tracks/cfml/.git ADDED
@@ -0,0 +1 @@
1
+ gitdir: ../../.git/modules/tracks/cfml
@@ -0,0 +1,5 @@
1
+ *.swp
2
+ .DS_Store
3
+ bin/configlet
4
+ bin/configlet.exe
5
+ testbox
@@ -0,0 +1,18 @@
1
+ ---
2
+ language: java
3
+ sudo: required
4
+ jdk:
5
+ - oraclejdk8
6
+ cache:
7
+ directories:
8
+ - $HOME/.CommandBox
9
+ before_install:
10
+ - sudo apt-key adv --keyserver keys.gnupg.net --recv 6DA70622
11
+ - sudo echo "deb http://downloads.ortussolutions.com/debs/noarch /" | sudo tee -a /etc/apt/sources.list.d/commandbox.list
12
+ install:
13
+ - sudo apt-get update && sudo apt-get --assume-yes install commandbox
14
+ script:
15
+ - bin/fetch-configlet
16
+ - bin/configlet lint .
17
+ - box task run tasks/TestAllSolutions
18
+
@@ -0,0 +1,10 @@
1
+ ## Contributing to the ColdFusion Exercism Track
2
+
3
+ Welcome to the ColdFusion Exercism track! We are happy you want to help out and would love to have your contributions. Here's some basic steps to get you going:
4
+
5
+ 1. Familiarize yourself with Exercism by completing a few exercises.
6
+ 2. Check out the `README.md` file in this repo for additional information on our exercises are built.
7
+ 3. Read the Style Guide in the readme and ensure your exercises follow it.
8
+ 3. Fork this repo, or `git rebase` your existing fork
9
+ 4. Create a new branch for all changes
10
+ 5. Please ask if you have any questions and happy contributing!
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2017 Exercism, Inc
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,92 @@
1
+ # Exercism ColdFusion Track
2
+
3
+ [![Build Status](https://travis-ci.org/exercism/coldfusion.svg?branch=master)](https://travis-ci.org/exercism/coldfusion)
4
+
5
+ Exercism problems in ColdFusion. There are two major CFML engines in existence:
6
+
7
+ * **[Lucee Server](http://lucee.org/)** - A free open source CFML engine
8
+ * **[Adobe ColdFusion](http://www.adobe.com/products/coldfusion-family.html)** - A commercially supported Enterprise CF engine
9
+
10
+ These exercises should teach the basics of CFML in a way that can be transferred to either engine. The CommandBox CLI will run your tests against Lucee Server by default.
11
+
12
+ ## Setup
13
+
14
+ The only thing you will need to run these exercises is [CommandBox CLI](https://ortus.gitbooks.io/commandbox-documentation/content/getting_started_guide.html) and [Java 7+](https://java.com/en/download/) installed. CommandBox CLI is supported on Mac, Linux, and Windows, and the installation guide can be found here:
15
+
16
+ [https://ortus.gitbooks.io/commandbox-documentation/content/setup/installation.html](https://ortus.gitbooks.io/commandbox-documentation/content/setup/installation.html)
17
+
18
+ An example of getting CommandBox CLI setup if you're a Homebrew user on Mac would be:
19
+
20
+ ```bash
21
+ brew install commandbox
22
+ ```
23
+
24
+ ## Anatomy of an Exercise
25
+
26
+ The files for an exercise live in `/exercises/<slug>`. The slug for an exercise is a unique nickname composed of a-z (lowercase) and -, e.g. `leap` or `hello-world`. Inside its directory, each exercise has:
27
+
28
+ * `<exercise_name>Test.cfc` - The test suite
29
+ * `<exercise_name>.cfc` - Implementation stub, omitted for the later exercises
30
+ * `SolutionTest.cfc` - A test suite that runs the Solution
31
+ * `Solution.cfc` - An example solution
32
+ * `TestRunner.cfc` - A CLI task runner to run the unit test with
33
+ * `box.json` - A package descriptor that lists dependencies
34
+ * `index.cfm` - A web-based test runner for students wishing to start a web server
35
+
36
+ ## Running the Tests
37
+
38
+ To run the test for a given exercise, `cd` into the folder and run the following:
39
+
40
+ ```bash
41
+ box task run TestRunner
42
+ # Or start up a test watcher that will rerun when files change
43
+ box task run TestRunner --:watcher
44
+ ```
45
+
46
+ If you want to run the test suite against the solution:
47
+
48
+ ```bash
49
+ box task run TestRunner --:solution
50
+ ```
51
+
52
+ The tests leverage a library called TestBox which supports xUnit and BDD style of testing. All test suites will be written in the [BDD style](https://testbox.ortusbooks.com/content/primers/bdd/specs.html) which uses closures to define test specs. You won't need to worry about installing TestBox. The CLI test runner will take care of that for you. You just need to be connected to the internet the first time you run it. You can read more about it here:
53
+
54
+ [https://testbox.ortusbooks.com/content/](https://testbox.ortusbooks.com/content/)
55
+
56
+ ## Pull Requests
57
+
58
+ We welcome pull requests that provide fixes to existing test suites (missing tests, interesting edge cases, improved APIs), as well as new problems.
59
+
60
+ If you're unsure, then go ahead and open a GitHub issue, and we'll discuss the change.
61
+
62
+ Please submit changes to a single problem per pull request unless you're submitting a general change across many of the problems (e.g. formatting).
63
+
64
+ ## Style Guide
65
+ The exercise tests, solutions, and filenames will follow this ColdFusion style guide.
66
+
67
+ [ColdFusion (CFML) Standards & Best Practices](https://github.com/Ortus-Solutions/coding-standards/blob/master/coldfusion.md)
68
+
69
+
70
+ Here's the TL;DR; version.
71
+
72
+ * Component names are camel-cased ( `LeapTest.cfc` )
73
+ * Variable names are headless camel-cased ( `greetingService` )
74
+ * Variable names should avoid abbreviations and be descriptive ( `maximumAccountBalance` )
75
+ * Indentation uses a tab character
76
+ * Remove trailing whitespace from lines
77
+ * Block statements will use the [`1TBS`](https://en.wikipedia.org/wiki/Indent_style#Variant:_1TBS_.28OTBS.29) with space padding all parens and brackets as follows:
78
+
79
+ ```js
80
+ if( condition || otherCondition ) {
81
+ myStruct[ key ] = doSomething( param1, param2, true, 'Tuesday' );
82
+ } else {
83
+ return false;
84
+ }
85
+ ```
86
+
87
+ TODO: Configure task runner to lint exercises and clean trailing whitespace and tabs/spaces. Allow this to be run on all exercises or a single one.
88
+
89
+
90
+ ## Contributing Guide
91
+
92
+ Please see the [contributing guide](https://github.com/exercism/docs/blob/master/contributing-to-language-tracks/README.md)
@@ -0,0 +1,32 @@
1
+ #!/bin/bash
2
+
3
+ LATEST=https://github.com/exercism/configlet/releases/latest
4
+
5
+ OS=$(
6
+ case $(uname) in
7
+ (Darwin*)
8
+ echo "mac";;
9
+ (Linux*)
10
+ echo "linux";;
11
+ (Windows*)
12
+ echo "windows";;
13
+ (*)
14
+ echo "linux";;
15
+ esac)
16
+
17
+ ARCH=$(
18
+ case $(uname -m) in
19
+ (*64*)
20
+ echo 64bit;;
21
+ (*686*)
22
+ echo 32bit;;
23
+ (*386*)
24
+ echo 32bit;;
25
+ (*)
26
+ echo 64bit;;
27
+ esac)
28
+
29
+ VERSION="$(curl --head --silent $LATEST | awk -v FS=/ '/Location:/{print $NF}' | tr -d '\r')"
30
+ URL=https://github.com/exercism/configlet/releases/download/$VERSION/configlet-$OS-${ARCH}.tgz
31
+
32
+ curl -s --location $URL | tar xz -C bin/
@@ -0,0 +1,16 @@
1
+ # {{ .Spec.Name }}
2
+
3
+ {{ .Spec.Description -}}
4
+ {{- with .Hints }}
5
+ {{ . }}
6
+ {{ end }}
7
+ {{- with .TrackInsert }}
8
+ {{ . }}
9
+ {{ end }}
10
+ {{- with .Spec.Credits -}}
11
+ ## Source
12
+
13
+ {{ . }}
14
+ {{ end }}
15
+ ## Submitting Incomplete Solutions
16
+ It's possible to submit an incomplete solution so you can see how others have completed the exercise.
@@ -0,0 +1,13 @@
1
+ {
2
+ "maintainers": [
3
+ {
4
+ "github_username": "bdw429s",
5
+ "show_on_website": true,
6
+ "name": "Brad Wood",
7
+ "bio": "ColdBox/CommandBox Developer Advocate. Lucee Member. System Architect. CFML dev. DBA. Dad. Handyman. Ready for a revolution.",
8
+ "link_text": "Tech Blog",
9
+ "link_url": "http://www.codersrevolution.com/"
10
+ }
11
+ ],
12
+ "docs_url": "https://github.com/exercism/docs/blob/master/maintaining-a-track/maintainer-configuration.md"
13
+ }
@@ -0,0 +1,223 @@
1
+ {
2
+ "language":"ColdFusion",
3
+ "blurb":"ColdFusion (CFML) is an open source and commercial (JIT) compiled dynamic and loosely typed JVM scripting language that embodies classic OO, and functional programming, making it easy to learn, fun to use. CFML brings the power and scalability of the J2EE ecosystem but without the boilerplate of Java.",
4
+ "active":true,
5
+ "test_pattern":"Test.cfc",
6
+ "solution_pattern":"Solution.cfc",
7
+ "ignore_pattern":"Solution",
8
+ "foregone":[
9
+
10
+ ],
11
+ "exercises":[
12
+ {
13
+ "uuid":"ab04a390-0969-4a17-8081-c852b23ed88c",
14
+ "difficulty":1,
15
+ "slug":"hello-world",
16
+ "topics":[
17
+
18
+ ]
19
+ },
20
+ {
21
+ "uuid":"03a98e5b-03b7-45e5-a580-611ef5dab4e5",
22
+ "slug":"leap",
23
+ "core":false,
24
+ "unlocked_by":null,
25
+ "difficulty":1,
26
+ "topics":[
27
+
28
+ ]
29
+ },
30
+ {
31
+ "difficulty":1,
32
+ "slug":"raindrops",
33
+ "uuid":"9273C0A7-CB7E-4F3F-8993-F1621CE1F700",
34
+ "topics":[
35
+
36
+ ]
37
+ },
38
+ {
39
+ "difficulty":1,
40
+ "slug":"scrabble-score",
41
+ "uuid":"1065F8DF-E6C6-4473-A633-4FA4B49A5314",
42
+ "topics":[
43
+
44
+ ]
45
+ },
46
+ {
47
+ "difficulty":1,
48
+ "slug":"difference-of-squares",
49
+ "uuid":"4E91AD44-8F3D-40DC-899E-253C91B134F6",
50
+ "topics":[
51
+
52
+ ]
53
+ },
54
+ {
55
+ "difficulty":1,
56
+ "slug":"secret-handshake",
57
+ "uuid":"0AC79782-B370-4954-8455-6300A734E1B8",
58
+ "topics":[
59
+
60
+ ]
61
+ },
62
+ {
63
+ "difficulty":1,
64
+ "slug":"space-age",
65
+ "uuid":"0B14F23A-DAD4-4965-8ABD-8A107DFD6C00",
66
+ "topics":[
67
+
68
+ ]
69
+ },
70
+ {
71
+ "difficulty":1,
72
+ "slug":"acronym",
73
+ "uuid":"9894F2F7-2DBE-4001-885B-FD2C029C6731",
74
+ "topics":[
75
+
76
+ ]
77
+ },
78
+ {
79
+ "difficulty":1,
80
+ "slug":"rna-transcription",
81
+ "uuid":"11C48AFF-4A54-4B3C-AF5E-53048D4BA98B",
82
+ "topics":[
83
+
84
+ ]
85
+ },
86
+ {
87
+ "difficulty":1,
88
+ "slug":"pangram",
89
+ "uuid":"113A2FF7-E72E-49DD-A2CF-0EB25894707D",
90
+ "topics":[
91
+
92
+ ]
93
+ },
94
+ {
95
+ "difficulty":1,
96
+ "slug":"hamming",
97
+ "uuid":"4063A554-424C-4173-81EE-FEAC7CC51E8A",
98
+ "topics":[
99
+
100
+ ]
101
+ },
102
+ {
103
+ "difficulty":1,
104
+ "slug":"gigasecond",
105
+ "uuid":"00B82E7F-804C-4401-BB7F-0565DEA02567",
106
+ "topics":[
107
+
108
+ ]
109
+ },
110
+ {
111
+ "difficulty":1,
112
+ "slug":"sum-of-multiples",
113
+ "uuid":"C6F38ACB-A6BD-41EE-A2F8-A9680B3F61D2",
114
+ "topics":[
115
+
116
+ ]
117
+ },
118
+ {
119
+ "difficulty":1,
120
+ "slug":"luhn",
121
+ "uuid":"685ADB7B-1DC9-4409-993D-51034DF6F744",
122
+ "topics":[
123
+
124
+ ]
125
+ },
126
+ {
127
+ "difficulty":1,
128
+ "slug":"triangle",
129
+ "uuid":"8D0FA71A-3314-432E-BF1F-E6A5F823FC36",
130
+ "topics":[
131
+
132
+ ]
133
+ },
134
+ {
135
+ "difficulty":1,
136
+ "slug":"largest-series-product",
137
+ "uuid":"A35C9BE1-F26A-40C8-8C05-99C33C552E6F",
138
+ "topics":[
139
+
140
+ ]
141
+ },
142
+ {
143
+ "difficulty":1,
144
+ "slug":"grains",
145
+ "uuid":"E25686EE-B888-4533-86C2-5A5D96F5270E",
146
+ "topics":[
147
+
148
+ ]
149
+ },
150
+ {
151
+ "difficulty":1,
152
+ "slug":"atbash-cipher",
153
+ "uuid":"C35391BD-900F-4756-8DFE-A96EA04250F8",
154
+ "topics":[
155
+
156
+ ]
157
+ },
158
+ {
159
+ "difficulty":1,
160
+ "slug":"nth-prime",
161
+ "uuid":"15151E41-195C-40DD-B296-C2C19B38CAEA",
162
+ "topics":[
163
+
164
+ ]
165
+ },
166
+ {
167
+ "difficulty":1,
168
+ "slug":"pig-latin",
169
+ "uuid":"3FDDA0E3-AE90-4834-B6DC-A5E367A5A029",
170
+ "topics":[
171
+
172
+ ]
173
+ },
174
+ {
175
+ "difficulty":1,
176
+ "slug":"flatten-array",
177
+ "uuid":"B0E72A09-49E2-4973-BFF4-88C678F4BE55",
178
+ "topics":[
179
+
180
+ ]
181
+ },
182
+ {
183
+ "difficulty":1,
184
+ "slug":"saddle-points",
185
+ "uuid":"063C4BB9-3280-4C69-B164-237732AE00EF",
186
+ "topics":[
187
+
188
+ ]
189
+ },
190
+ {
191
+ "difficulty":1,
192
+ "slug":"diamond",
193
+ "uuid":"DECA4C79-DA5D-43A8-90B8-3A5BE73EAFF5",
194
+ "topics":[
195
+
196
+ ]
197
+ },
198
+ {
199
+ "difficulty":1,
200
+ "slug":"isogram",
201
+ "uuid":"FC8922A3-E29D-451D-9947-A2781C0FF787",
202
+ "topics":[
203
+
204
+ ]
205
+ },
206
+ {
207
+ "difficulty":1,
208
+ "slug":"bob",
209
+ "uuid":"12BBECF4-93EB-40F2-AC13-8CF28B550F0A",
210
+ "topics":[
211
+
212
+ ]
213
+ },
214
+ {
215
+ "difficulty":1,
216
+ "slug":"word-count",
217
+ "uuid":"C61E97BE-6C66-4F1F-87ED-D21C4ED2A8E2",
218
+ "topics":[
219
+
220
+ ]
221
+ }
222
+ ]
223
+ }
@@ -0,0 +1,10 @@
1
+ ColdFusion (CFML) is a JVM scripting language whose syntax is similar to C or JavaScript.
2
+ It JIT compiles to byte code that runs on the JVM but is dynamic and loosely typed, making it fast and easy to develop in.
3
+ CF is a multi-paradigmed language, supporting classical OO and functional programming.
4
+
5
+ CFML also has a built-in tag-based templating language that makes it ideal for web apps.
6
+ It runs in a J2EE container with many bundled libraries that make it very productive without the need to install many packages.
7
+ CFML has native support for zip files, PDF and Excel generation, E-mails, FTP, HTTP, S3 file systems, ESAPI security libraries, JDBC drivers, JSON and REST APIs.
8
+
9
+ CFML can also leverage any Java project by dropping the jars in project and directly instantiating Java objects in your code.
10
+ You can learn more about basic syntax and first class data types in this guide: [Modern ColdFusion (CFML) in 100 Minutes](https://www.gitbook.com/book/ortus/modern-coldfusion-cfml-in-100-minutes/details)
@@ -0,0 +1,15 @@
1
+ * * * *
2
+
3
+ To run the code in this exercise, you will only need to have [CommandBox CLI installed](https://ortus.gitbooks.io/commandbox-documentation/content/setup/installation.html). This binary runs CFML code from the command line.
4
+
5
+ To run the tests, `cd` into the exercise folder and run the following:
6
+
7
+ ```bash
8
+ box task run TestRunner
9
+ # Or start up a test watcher that will rerun when files change
10
+ box task run TestRunner --:watcher
11
+ ```
12
+
13
+ The tests leverage a library called TestBox which supports xUnit and BDD style of testing. All test suites will be written in the [BDD style](https://testbox.ortusbooks.com/content/primers/bdd/specs.html) which uses closures to define test specs. You won't need to worry about installing TestBox. The CLI test runner will take care of that for you. You just need to be connected to the internet the first time you run it. You can read more about it here:
14
+
15
+ [https://testbox.ortusbooks.com/content/](https://testbox.ortusbooks.com/content/)