trackler 2.2.1.159 → 2.2.1.160

Sign up to get free protection for your applications and to get access to all the features.
Files changed (293) hide show
  1. checksums.yaml +4 -4
  2. data/lib/trackler/version.rb +1 -1
  3. data/tracks/bash/config/maintainers.json +16 -15
  4. data/tracks/bash/config.json +111 -103
  5. data/tracks/c/config/maintainers.json +14 -14
  6. data/tracks/c/config.json +263 -242
  7. data/tracks/ceylon/config/maintainers.json +8 -8
  8. data/tracks/ceylon/config.json +30 -32
  9. data/tracks/cfml/config/maintainers.json +6 -4
  10. data/tracks/cfml/config.json +145 -92
  11. data/tracks/common-lisp/config/maintainers.json +26 -26
  12. data/tracks/common-lisp/config.json +152 -149
  13. data/tracks/cpp/config/maintainers.json +11 -11
  14. data/tracks/cpp/config.json +162 -161
  15. data/tracks/dart/config/maintainers.json +21 -17
  16. data/tracks/dart/config.json +57 -57
  17. data/tracks/delphi/config.json +1 -0
  18. data/tracks/delphi/docs/ABOUT.md +9 -6
  19. data/tracks/ecmascript/config/maintainers.json +11 -11
  20. data/tracks/ecmascript/config.json +563 -544
  21. data/tracks/ecmascript/exercises/accumulate/package.json +1 -1
  22. data/tracks/ecmascript/exercises/acronym/package.json +1 -1
  23. data/tracks/ecmascript/exercises/all-your-base/package.json +1 -1
  24. data/tracks/ecmascript/exercises/allergies/package.json +1 -1
  25. data/tracks/ecmascript/exercises/alphametics/package.json +1 -1
  26. data/tracks/ecmascript/exercises/anagram/package.json +1 -1
  27. data/tracks/ecmascript/exercises/armstrong-numbers/package.json +1 -1
  28. data/tracks/ecmascript/exercises/atbash-cipher/package.json +1 -1
  29. data/tracks/ecmascript/exercises/beer-song/package.json +1 -1
  30. data/tracks/ecmascript/exercises/binary/package.json +1 -1
  31. data/tracks/ecmascript/exercises/binary-search/package.json +1 -1
  32. data/tracks/ecmascript/exercises/binary-search-tree/package.json +1 -1
  33. data/tracks/ecmascript/exercises/bob/package.json +1 -1
  34. data/tracks/ecmascript/exercises/bowling/package.json +1 -1
  35. data/tracks/ecmascript/exercises/bracket-push/package.json +1 -1
  36. data/tracks/ecmascript/exercises/change/package.json +1 -1
  37. data/tracks/ecmascript/exercises/circular-buffer/package.json +1 -1
  38. data/tracks/ecmascript/exercises/clock/package.json +1 -1
  39. data/tracks/ecmascript/exercises/collatz-conjecture/package.json +1 -1
  40. data/tracks/ecmascript/exercises/complex-numbers/package.json +1 -1
  41. data/tracks/ecmascript/exercises/connect/package.json +1 -1
  42. data/tracks/ecmascript/exercises/crypto-square/package.json +1 -1
  43. data/tracks/ecmascript/exercises/custom-set/package.json +1 -1
  44. data/tracks/ecmascript/exercises/diamond/package.json +1 -1
  45. data/tracks/ecmascript/exercises/difference-of-squares/package.json +1 -1
  46. data/tracks/ecmascript/exercises/diffie-hellman/package.json +1 -1
  47. data/tracks/ecmascript/exercises/etl/package.json +1 -1
  48. data/tracks/ecmascript/exercises/flatten-array/package.json +1 -1
  49. data/tracks/ecmascript/exercises/food-chain/package.json +1 -1
  50. data/tracks/ecmascript/exercises/gigasecond/package.json +1 -1
  51. data/tracks/ecmascript/exercises/grade-school/package.json +1 -1
  52. data/tracks/ecmascript/exercises/grains/package.json +1 -1
  53. data/tracks/ecmascript/exercises/hamming/package.json +1 -1
  54. data/tracks/ecmascript/exercises/hello-world/package.json +1 -1
  55. data/tracks/ecmascript/exercises/hexadecimal/package.json +1 -1
  56. data/tracks/ecmascript/exercises/house/package.json +1 -1
  57. data/tracks/ecmascript/exercises/isbn-verifier/package.json +1 -1
  58. data/tracks/ecmascript/exercises/isogram/package.json +1 -1
  59. data/tracks/ecmascript/exercises/kindergarten-garden/package.json +1 -1
  60. data/tracks/ecmascript/exercises/largest-series-product/package.json +1 -1
  61. data/tracks/ecmascript/exercises/leap/package.json +1 -1
  62. data/tracks/ecmascript/exercises/linked-list/package.json +1 -1
  63. data/tracks/ecmascript/exercises/list-ops/package.json +1 -1
  64. data/tracks/ecmascript/exercises/luhn/package.json +1 -1
  65. data/tracks/ecmascript/exercises/matrix/package.json +1 -1
  66. data/tracks/ecmascript/exercises/meetup/package.json +1 -1
  67. data/tracks/ecmascript/exercises/minesweeper/package.json +1 -1
  68. data/tracks/ecmascript/exercises/nth-prime/package.json +1 -1
  69. data/tracks/ecmascript/exercises/nucleotide-count/package.json +1 -1
  70. data/tracks/ecmascript/exercises/ocr-numbers/package.json +1 -1
  71. data/tracks/ecmascript/exercises/octal/package.json +1 -1
  72. data/tracks/ecmascript/exercises/palindrome-products/package.json +1 -1
  73. data/tracks/ecmascript/exercises/pangram/package.json +1 -1
  74. data/tracks/ecmascript/exercises/pascals-triangle/package.json +1 -1
  75. data/tracks/ecmascript/exercises/perfect-numbers/package.json +1 -1
  76. data/tracks/ecmascript/exercises/phone-number/package.json +1 -1
  77. data/tracks/ecmascript/exercises/pig-latin/package.json +1 -1
  78. data/tracks/ecmascript/exercises/prime-factors/package.json +1 -1
  79. data/tracks/ecmascript/exercises/protein-translation/package.json +1 -1
  80. data/tracks/ecmascript/exercises/proverb/package.json +1 -1
  81. data/tracks/ecmascript/exercises/pythagorean-triplet/package.json +1 -1
  82. data/tracks/ecmascript/exercises/queen-attack/example.js +2 -2
  83. data/tracks/ecmascript/exercises/queen-attack/package.json +1 -1
  84. data/tracks/ecmascript/exercises/raindrops/package.json +1 -1
  85. data/tracks/ecmascript/exercises/react/package.json +1 -1
  86. data/tracks/ecmascript/exercises/rectangles/package.json +1 -1
  87. data/tracks/ecmascript/exercises/rna-transcription/package.json +1 -1
  88. data/tracks/ecmascript/exercises/robot-name/package.json +1 -1
  89. data/tracks/ecmascript/exercises/robot-simulator/package.json +1 -1
  90. data/tracks/ecmascript/exercises/roman-numerals/package.json +1 -1
  91. data/tracks/ecmascript/exercises/rotational-cipher/package.json +1 -1
  92. data/tracks/ecmascript/exercises/run-length-encoding/package.json +1 -1
  93. data/tracks/ecmascript/exercises/saddle-points/package.json +1 -1
  94. data/tracks/ecmascript/exercises/say/package.json +1 -1
  95. data/tracks/ecmascript/exercises/scrabble-score/package.json +1 -1
  96. data/tracks/ecmascript/exercises/secret-handshake/package.json +1 -1
  97. data/tracks/ecmascript/exercises/series/package.json +1 -1
  98. data/tracks/ecmascript/exercises/sieve/package.json +1 -1
  99. data/tracks/ecmascript/exercises/simple-cipher/package.json +1 -1
  100. data/tracks/ecmascript/exercises/simple-linked-list/package.json +1 -1
  101. data/tracks/ecmascript/exercises/space-age/package.json +1 -1
  102. data/tracks/ecmascript/exercises/spiral-matrix/package.json +1 -1
  103. data/tracks/ecmascript/exercises/strain/package.json +1 -1
  104. data/tracks/ecmascript/exercises/sublist/package.json +1 -1
  105. data/tracks/ecmascript/exercises/sum-of-multiples/package.json +1 -1
  106. data/tracks/ecmascript/exercises/transpose/package.json +1 -1
  107. data/tracks/ecmascript/exercises/triangle/package.json +1 -1
  108. data/tracks/ecmascript/exercises/trinary/package.json +1 -1
  109. data/tracks/ecmascript/exercises/twelve-days/package.json +1 -1
  110. data/tracks/ecmascript/exercises/two-bucket/package.json +1 -1
  111. data/tracks/ecmascript/exercises/two-fer/package.json +1 -1
  112. data/tracks/ecmascript/exercises/word-count/package.json +1 -1
  113. data/tracks/ecmascript/exercises/word-search/package.json +1 -1
  114. data/tracks/ecmascript/exercises/wordy/example.js +16 -4
  115. data/tracks/ecmascript/exercises/wordy/package.json +1 -1
  116. data/tracks/ecmascript/package.json +1 -1
  117. data/tracks/elisp/config/maintainers.json +6 -6
  118. data/tracks/elisp/config.json +103 -103
  119. data/tracks/elisp/exercises/two-fer/two-fer.el +3 -3
  120. data/tracks/elm/config/maintainers.json +11 -11
  121. data/tracks/elm/config.json +171 -171
  122. data/tracks/erlang/README.md +31 -28
  123. data/tracks/erlang/config/maintainers.json +13 -7
  124. data/tracks/erlang/config.json +99 -190
  125. data/tracks/factor/config/maintainers.json +5 -5
  126. data/tracks/factor/config.json +17 -19
  127. data/tracks/fsharp/config/maintainers.json +16 -16
  128. data/tracks/fsharp/config.json +485 -469
  129. data/tracks/gnu-apl/config/maintainers.json +6 -5
  130. data/tracks/gnu-apl/config.json +46 -20
  131. data/tracks/go/config/maintainers.json +43 -32
  132. data/tracks/go/config.json +475 -457
  133. data/tracks/haskell/config/maintainers.json +26 -15
  134. data/tracks/haskell/config.json +22 -2
  135. data/tracks/idris/config/maintainers.json +6 -6
  136. data/tracks/idris/config.json +24 -35
  137. data/tracks/java/config/maintainers.json +39 -29
  138. data/tracks/java/config.json +458 -433
  139. data/tracks/javascript/config/maintainers.json +40 -40
  140. data/tracks/javascript/config.json +577 -551
  141. data/tracks/javascript/docs/LEARNING.md +1 -1
  142. data/tracks/javascript/exercises/pangram/pangram.spec.js +15 -10
  143. data/tracks/julia/REQUIRE +1 -0
  144. data/tracks/julia/config/maintainers.json +5 -5
  145. data/tracks/julia/config.json +106 -108
  146. data/tracks/kotlin/config/maintainers.json +15 -15
  147. data/tracks/kotlin/config.json +273 -257
  148. data/tracks/kotlin/exercises/accumulate/build.gradle +1 -1
  149. data/tracks/kotlin/exercises/acronym/build.gradle +1 -1
  150. data/tracks/kotlin/exercises/all-your-base/build.gradle +1 -1
  151. data/tracks/kotlin/exercises/allergies/.meta/version +1 -1
  152. data/tracks/kotlin/exercises/allergies/build.gradle +1 -1
  153. data/tracks/kotlin/exercises/anagram/build.gradle +1 -1
  154. data/tracks/kotlin/exercises/atbash-cipher/build.gradle +1 -1
  155. data/tracks/kotlin/exercises/bank-account/build.gradle +17 -17
  156. data/tracks/kotlin/exercises/beer-song/.meta/version +1 -1
  157. data/tracks/kotlin/exercises/beer-song/build.gradle +1 -1
  158. data/tracks/kotlin/exercises/binary/build.gradle +1 -1
  159. data/tracks/kotlin/exercises/binary-search/build.gradle +1 -2
  160. data/tracks/kotlin/exercises/bob/build.gradle +1 -1
  161. data/tracks/kotlin/exercises/bracket-push/build.gradle +1 -1
  162. data/tracks/kotlin/exercises/change/.meta/version +1 -1
  163. data/tracks/kotlin/exercises/change/build.gradle +1 -2
  164. data/tracks/kotlin/exercises/clock/build.gradle +1 -1
  165. data/tracks/kotlin/exercises/collatz-conjecture/build.gradle +1 -1
  166. data/tracks/kotlin/exercises/complex-numbers/build.gradle +1 -1
  167. data/tracks/kotlin/exercises/diamond/build.gradle +1 -1
  168. data/tracks/kotlin/exercises/difference-of-squares/build.gradle +1 -1
  169. data/tracks/kotlin/exercises/etl/build.gradle +1 -1
  170. data/tracks/kotlin/exercises/flatten-array/build.gradle +1 -1
  171. data/tracks/kotlin/exercises/forth/build.gradle +1 -1
  172. data/tracks/kotlin/exercises/gigasecond/build.gradle +1 -1
  173. data/tracks/kotlin/exercises/grade-school/build.gradle +1 -1
  174. data/tracks/kotlin/exercises/grains/build.gradle +1 -1
  175. data/tracks/kotlin/exercises/hamming/build.gradle +1 -1
  176. data/tracks/kotlin/exercises/hello-world/build.gradle +1 -1
  177. data/tracks/kotlin/exercises/hexadecimal/build.gradle +1 -1
  178. data/tracks/kotlin/exercises/isogram/build.gradle +1 -1
  179. data/tracks/kotlin/exercises/largest-series-product/build.gradle +1 -1
  180. data/tracks/kotlin/exercises/leap/.meta/version +1 -1
  181. data/tracks/kotlin/exercises/leap/build.gradle +1 -1
  182. data/tracks/kotlin/exercises/linked-list/build.gradle +1 -1
  183. data/tracks/kotlin/exercises/list-ops/build.gradle +1 -1
  184. data/tracks/kotlin/exercises/luhn/build.gradle +1 -1
  185. data/tracks/kotlin/exercises/meetup/.meta/version +1 -1
  186. data/tracks/kotlin/exercises/meetup/build.gradle +1 -1
  187. data/tracks/kotlin/exercises/minesweeper/build.gradle +1 -1
  188. data/tracks/kotlin/exercises/nth-prime/build.gradle +1 -1
  189. data/tracks/kotlin/exercises/nucleotide-count/build.gradle +1 -1
  190. data/tracks/kotlin/exercises/pangram/build.gradle +1 -1
  191. data/tracks/kotlin/exercises/pascals-triangle/.meta/version +1 -1
  192. data/tracks/kotlin/exercises/pascals-triangle/build.gradle +1 -1
  193. data/tracks/kotlin/exercises/perfect-numbers/build.gradle +1 -1
  194. data/tracks/kotlin/exercises/phone-number/build.gradle +1 -1
  195. data/tracks/kotlin/exercises/pig-latin/build.gradle +1 -1
  196. data/tracks/kotlin/exercises/prime-factors/build.gradle +1 -1
  197. data/tracks/kotlin/exercises/raindrops/build.gradle +1 -1
  198. data/tracks/kotlin/exercises/react/build.gradle +1 -1
  199. data/tracks/kotlin/exercises/rna-transcription/build.gradle +1 -1
  200. data/tracks/kotlin/exercises/robot-name/build.gradle +1 -1
  201. data/tracks/kotlin/exercises/robot-simulator/build.gradle +1 -1
  202. data/tracks/kotlin/exercises/roman-numerals/build.gradle +1 -1
  203. data/tracks/kotlin/exercises/rotational-cipher/.meta/version +1 -1
  204. data/tracks/kotlin/exercises/rotational-cipher/build.gradle +1 -1
  205. data/tracks/kotlin/exercises/saddle-points/build.gradle +1 -1
  206. data/tracks/kotlin/exercises/say/.meta/version +1 -1
  207. data/tracks/kotlin/exercises/say/build.gradle +1 -1
  208. data/tracks/kotlin/exercises/scrabble-score/build.gradle +1 -1
  209. data/tracks/kotlin/exercises/secret-handshake/build.gradle +1 -1
  210. data/tracks/kotlin/exercises/series/build.gradle +1 -1
  211. data/tracks/kotlin/exercises/sieve/build.gradle +1 -1
  212. data/tracks/kotlin/exercises/simple-cipher/build.gradle +1 -1
  213. data/tracks/kotlin/exercises/space-age/build.gradle +1 -1
  214. data/tracks/kotlin/exercises/spiral-matrix/build.gradle +1 -1
  215. data/tracks/kotlin/exercises/strain/build.gradle +1 -1
  216. data/tracks/kotlin/exercises/sublist/.meta/version +1 -1
  217. data/tracks/kotlin/exercises/sublist/build.gradle +1 -1
  218. data/tracks/kotlin/exercises/sum-of-multiples/build.gradle +15 -16
  219. data/tracks/kotlin/exercises/triangle/build.gradle +15 -16
  220. data/tracks/kotlin/exercises/two-fer/build.gradle +1 -1
  221. data/tracks/kotlin/exercises/word-count/build.gradle +1 -1
  222. data/tracks/lfe/config/maintainers.json +6 -6
  223. data/tracks/lfe/config.json +128 -125
  224. data/tracks/lfe/docs/LEARNING.md +1 -1
  225. data/tracks/lua/config/maintainers.json +16 -16
  226. data/tracks/lua/config.json +331 -327
  227. data/tracks/mips/config/maintainers.json +5 -5
  228. data/tracks/mips/config.json +29 -59
  229. data/tracks/nim/config/maintainers.json +8 -8
  230. data/tracks/nim/config.json +185 -127
  231. data/tracks/nim/exercises/allergies/allergies_test.nim +7 -7
  232. data/tracks/nim/exercises/allergies/example.nim +2 -2
  233. data/tracks/nim/exercises/difference-of-squares/difference_of_squares_test.nim +4 -4
  234. data/tracks/nim/exercises/difference-of-squares/example.nim +3 -3
  235. data/tracks/nim/exercises/gigasecond/example.nim +1 -1
  236. data/tracks/nim/exercises/gigasecond/gigasecond_test.nim +5 -5
  237. data/tracks/nim/exercises/nucleotide-count/example.nim +1 -1
  238. data/tracks/nim/exercises/nucleotide-count/nucleotide_count_test.nim +6 -6
  239. data/tracks/nim/exercises/pangram/example.nim +1 -1
  240. data/tracks/nim/exercises/pangram/pangram_test.nim +11 -11
  241. data/tracks/nim/exercises/triangle/example.nim +4 -4
  242. data/tracks/nim/exercises/triangle/triangle_test.nim +14 -14
  243. data/tracks/nim/exercises/word-count/HINT.md +8 -0
  244. data/tracks/nim/exercises/word-count/example.nim +8 -15
  245. data/tracks/nim/exercises/word-count/word_count_test.nim +63 -55
  246. data/tracks/perl6/Dockerfile +1 -1
  247. data/tracks/perl6/config/maintainers.json +8 -8
  248. data/tracks/perl6/config.json +72 -127
  249. data/tracks/powershell/.gitignore +2 -1
  250. data/tracks/powershell/config/maintainers.json +8 -8
  251. data/tracks/powershell/config.json +54 -37
  252. data/tracks/powershell/exercises/reverse-string/.version +1 -0
  253. data/tracks/powershell/exercises/reverse-string/README.md +13 -0
  254. data/tracks/powershell/exercises/reverse-string/ReverseString.example.ps1 +21 -0
  255. data/tracks/powershell/exercises/reverse-string/ReverseString.ps1 +9 -0
  256. data/tracks/powershell/exercises/reverse-string/ReverseString.tests.ps1 +21 -0
  257. data/tracks/powershell/exercises/sum-of-multiples/.version +1 -0
  258. data/tracks/powershell/exercises/sum-of-multiples/README.md +15 -0
  259. data/tracks/powershell/exercises/sum-of-multiples/SumOfMultiples.example.ps1 +20 -0
  260. data/tracks/powershell/exercises/sum-of-multiples/SumOfMultiples.ps1 +9 -0
  261. data/tracks/powershell/exercises/sum-of-multiples/SumOfMultiples.tests.ps1 +29 -0
  262. data/tracks/python/config/maintainers.json +17 -17
  263. data/tracks/python/config.json +331 -283
  264. data/tracks/python/exercises/diffie-hellman/diffie_hellman_test.py +16 -47
  265. data/tracks/r/config/maintainers.json +16 -16
  266. data/tracks/r/config.json +128 -117
  267. data/tracks/racket/config/maintainers.json +16 -16
  268. data/tracks/racket/config.json +106 -102
  269. data/tracks/reasonml/config/maintainers.json +1 -1
  270. data/tracks/reasonml/config.json +37 -23
  271. data/tracks/reasonml/exercises/bob/README.md +29 -0
  272. data/tracks/reasonml/exercises/bob/__tests__/Bob_test.re +103 -0
  273. data/tracks/reasonml/exercises/bob/bsconfig.json +30 -0
  274. data/tracks/reasonml/exercises/bob/package-lock.json +5855 -0
  275. data/tracks/reasonml/exercises/bob/package.json +20 -0
  276. data/tracks/reasonml/exercises/bob/src/Example.re +41 -0
  277. data/tracks/reasonml/exercises/hello-world/src/{HelloWorld.re → Example.re} +0 -0
  278. data/tracks/reasonml/exercises/leap/src/{Leap.re → Example.re} +0 -0
  279. data/tracks/reasonml/exercises/rna-transcription/__tests__/RnaTranscription_test.re +24 -0
  280. data/tracks/reasonml/exercises/rna-transcription/bsconfig.json +30 -0
  281. data/tracks/reasonml/exercises/rna-transcription/package.json +20 -0
  282. data/tracks/reasonml/exercises/rna-transcription/src/Example.re +14 -0
  283. data/tracks/reasonml/exercises/space-age/src/{Space_age.re → Example.re} +0 -0
  284. data/tracks/scala/config/maintainers.json +22 -10
  285. data/tracks/scala/config.json +362 -350
  286. data/tracks/scala/docs/ABOUT.md +7 -2
  287. data/tracks/scheme/config/maintainers.json +11 -11
  288. data/tracks/scheme/config.json +72 -72
  289. data/tracks/typescript/config/maintainers.json +15 -15
  290. data/tracks/typescript/config.json +382 -362
  291. data/tracks/vimscript/config/maintainers.json +11 -11
  292. data/tracks/vimscript/config.json +41 -89
  293. metadata +27 -5
@@ -1,322 +1,267 @@
1
1
  {
2
2
  "language": "Perl 6",
3
- "checklist_issue": 30,
4
3
  "active": true,
5
4
  "blurb": "Forget everything you know or think you know about Perl. Perl 6 is a production ready new emerging language that is highly expressive, feature-packed and optimized for fun.",
6
- "test_pattern": ".*\\.t$",
5
+ "checklist_issue": 30,
7
6
  "solution_pattern": "\\.meta/solutions/.+\\.pm6$",
8
- "foregone": [
9
-
10
- ],
7
+ "test_pattern": ".*\\.t$",
11
8
  "exercises": [
12
9
  {
13
- "uuid": "2803dd22-3a92-4fa9-ae7c-4354e80fe423",
14
10
  "slug": "hello-world",
11
+ "uuid": "2803dd22-3a92-4fa9-ae7c-4354e80fe423",
15
12
  "core": false,
16
13
  "unlocked_by": null,
17
14
  "difficulty": 1,
18
- "topics": [
19
-
20
- ]
15
+ "topics": []
21
16
  },
22
17
  {
23
- "uuid": "455dd1c8-bf10-4912-a69b-4ffada20d661",
24
18
  "slug": "two-fer",
19
+ "uuid": "455dd1c8-bf10-4912-a69b-4ffada20d661",
25
20
  "core": false,
26
21
  "unlocked_by": null,
27
22
  "difficulty": 1,
28
- "topics": [
29
-
30
- ]
23
+ "topics": []
31
24
  },
32
25
  {
33
- "uuid": "ace2a251-58f5-4128-bc48-f1661463974d",
34
26
  "slug": "leap",
27
+ "uuid": "ace2a251-58f5-4128-bc48-f1661463974d",
35
28
  "core": false,
36
29
  "unlocked_by": null,
37
30
  "difficulty": 2,
38
- "topics": [
39
-
40
- ]
31
+ "topics": []
41
32
  },
42
33
  {
43
- "uuid": "2bd18a17-b9f3-4146-a38a-7d940ad16801",
44
34
  "slug": "bob",
35
+ "uuid": "2bd18a17-b9f3-4146-a38a-7d940ad16801",
45
36
  "core": false,
46
37
  "unlocked_by": null,
47
38
  "difficulty": 3,
48
- "topics": [
49
-
50
- ]
39
+ "topics": []
51
40
  },
52
41
  {
53
- "uuid": "eddd942e-cb67-4ae2-b763-a11ee3640aee",
54
42
  "slug": "pangram",
43
+ "uuid": "eddd942e-cb67-4ae2-b763-a11ee3640aee",
55
44
  "core": false,
56
45
  "unlocked_by": null,
57
46
  "difficulty": 2,
58
- "topics": [
59
-
60
- ]
47
+ "topics": []
61
48
  },
62
49
  {
63
- "uuid": "e2d8034d-9e7e-4b1c-a8be-b1b333d7b3f0",
64
50
  "slug": "phone-number",
51
+ "uuid": "e2d8034d-9e7e-4b1c-a8be-b1b333d7b3f0",
65
52
  "core": false,
66
53
  "unlocked_by": null,
67
54
  "difficulty": 4,
68
- "topics": [
69
-
70
- ]
55
+ "topics": []
71
56
  },
72
57
  {
73
- "uuid": "c18b5d07-ac1b-4411-9bd4-c6882614e8ee",
74
58
  "slug": "hamming",
59
+ "uuid": "c18b5d07-ac1b-4411-9bd4-c6882614e8ee",
75
60
  "core": false,
76
61
  "unlocked_by": null,
77
62
  "difficulty": 3,
78
- "topics": [
79
-
80
- ]
63
+ "topics": []
81
64
  },
82
65
  {
83
- "uuid": "378da8ed-c955-4a27-87b4-078b36479d77",
84
66
  "slug": "rna-transcription",
67
+ "uuid": "378da8ed-c955-4a27-87b4-078b36479d77",
85
68
  "core": false,
86
69
  "unlocked_by": null,
87
70
  "difficulty": 2,
88
- "topics": [
89
-
90
- ]
71
+ "topics": []
91
72
  },
92
73
  {
93
- "uuid": "3bee4dc2-d747-4b4e-ac10-d7815666bbc0",
94
74
  "slug": "etl",
75
+ "uuid": "3bee4dc2-d747-4b4e-ac10-d7815666bbc0",
95
76
  "core": false,
96
77
  "unlocked_by": null,
97
78
  "difficulty": 3,
98
- "topics": [
99
-
100
- ]
79
+ "topics": []
101
80
  },
102
81
  {
103
- "uuid": "30732526-f790-4182-bcc7-7713b685d90a",
104
82
  "slug": "nucleotide-count",
83
+ "uuid": "30732526-f790-4182-bcc7-7713b685d90a",
105
84
  "core": false,
106
85
  "unlocked_by": null,
107
86
  "difficulty": 3,
108
- "topics": [
109
-
110
- ]
87
+ "topics": []
111
88
  },
112
89
  {
113
- "uuid": "9fc9b102-185d-4f34-98d0-e3084399610a",
114
90
  "slug": "clock",
91
+ "uuid": "9fc9b102-185d-4f34-98d0-e3084399610a",
115
92
  "core": false,
116
93
  "unlocked_by": null,
117
94
  "difficulty": 3,
118
- "topics": [
119
-
120
- ]
95
+ "topics": []
121
96
  },
122
97
  {
123
- "uuid": "a8a54ad8-0ac7-4434-aa61-5740da857293",
124
98
  "slug": "wordy",
99
+ "uuid": "a8a54ad8-0ac7-4434-aa61-5740da857293",
125
100
  "core": false,
126
101
  "unlocked_by": null,
127
102
  "difficulty": 6,
128
- "topics": [
129
-
130
- ]
103
+ "topics": []
131
104
  },
132
105
  {
133
- "uuid": "9cb1a358-93af-4242-98fe-def7538f9190",
134
106
  "slug": "raindrops",
107
+ "uuid": "9cb1a358-93af-4242-98fe-def7538f9190",
135
108
  "core": false,
136
109
  "unlocked_by": null,
137
110
  "difficulty": 3,
138
- "topics": [
139
-
140
- ]
111
+ "topics": []
141
112
  },
142
113
  {
143
- "uuid": "8760e564-e3af-45fb-9d30-0cf537dc60eb",
144
114
  "slug": "scrabble-score",
115
+ "uuid": "8760e564-e3af-45fb-9d30-0cf537dc60eb",
145
116
  "core": false,
146
117
  "unlocked_by": null,
147
118
  "difficulty": 5,
148
- "topics": [
149
-
150
- ]
119
+ "topics": []
151
120
  },
152
121
  {
153
- "uuid": "2d0c4351-3d23-4023-942a-77fbb3a90d82",
154
122
  "slug": "luhn",
123
+ "uuid": "2d0c4351-3d23-4023-942a-77fbb3a90d82",
155
124
  "core": false,
156
125
  "unlocked_by": null,
157
126
  "difficulty": 5,
158
- "topics": [
159
-
160
- ]
127
+ "topics": []
161
128
  },
162
129
  {
163
- "uuid": "b8ae569f-d0b3-44d0-a4d6-a800b20b398a",
164
130
  "slug": "meetup",
131
+ "uuid": "b8ae569f-d0b3-44d0-a4d6-a800b20b398a",
165
132
  "core": false,
166
133
  "unlocked_by": null,
167
134
  "difficulty": 5,
168
- "topics": [
169
-
170
- ]
135
+ "topics": []
171
136
  },
172
137
  {
173
- "uuid": "23aa0f8c-e098-4d4e-8556-7c1be40726a9",
174
138
  "slug": "word-count",
139
+ "uuid": "23aa0f8c-e098-4d4e-8556-7c1be40726a9",
175
140
  "core": false,
176
141
  "unlocked_by": null,
177
142
  "difficulty": 4,
178
- "topics": [
179
-
180
- ]
143
+ "topics": []
181
144
  },
182
145
  {
183
- "uuid": "f5f83c92-9a37-4601-82e0-c4430855cfc3",
184
146
  "slug": "flatten-array",
147
+ "uuid": "f5f83c92-9a37-4601-82e0-c4430855cfc3",
185
148
  "core": false,
186
149
  "unlocked_by": null,
187
150
  "difficulty": 4,
188
- "topics": [
189
-
190
- ]
151
+ "topics": []
191
152
  },
192
153
  {
193
- "uuid": "cb04dab7-4907-41ff-9bb2-596e8d04e087",
194
154
  "slug": "grade-school",
155
+ "uuid": "cb04dab7-4907-41ff-9bb2-596e8d04e087",
195
156
  "core": false,
196
157
  "unlocked_by": null,
197
158
  "difficulty": 4,
198
- "topics": [
199
-
200
- ]
159
+ "topics": []
201
160
  },
202
161
  {
203
- "uuid": "c4ecc2f5-849f-44fe-9151-a51e6188b4f0",
204
162
  "slug": "accumulate",
163
+ "uuid": "c4ecc2f5-849f-44fe-9151-a51e6188b4f0",
205
164
  "core": false,
206
165
  "unlocked_by": null,
207
166
  "difficulty": 2,
208
- "topics": [
209
-
210
- ]
167
+ "topics": []
211
168
  },
212
169
  {
213
- "uuid": "85f171b0-4394-4f30-bbe5-9c2a96931630",
214
170
  "slug": "grains",
171
+ "uuid": "85f171b0-4394-4f30-bbe5-9c2a96931630",
215
172
  "core": false,
216
173
  "unlocked_by": null,
217
174
  "difficulty": 3,
218
- "topics": [
219
-
220
- ]
175
+ "topics": []
221
176
  },
222
177
  {
223
- "uuid": "fed2a81d-724d-4ccd-bf65-c6155a2dfbea",
224
178
  "slug": "all-your-base",
179
+ "uuid": "fed2a81d-724d-4ccd-bf65-c6155a2dfbea",
225
180
  "core": false,
226
181
  "unlocked_by": null,
227
182
  "difficulty": 6,
228
- "topics": [
229
-
230
- ]
183
+ "topics": []
231
184
  },
232
185
  {
233
- "uuid": "1e99ac1f-853d-446f-a567-dd2d70dce9c1",
234
186
  "slug": "anagram",
187
+ "uuid": "1e99ac1f-853d-446f-a567-dd2d70dce9c1",
235
188
  "core": false,
236
189
  "unlocked_by": null,
237
190
  "difficulty": 4,
238
- "topics": [
239
-
240
- ]
191
+ "topics": []
241
192
  },
242
193
  {
243
- "uuid": "d5f7756e-9b82-4576-9f21-dff39293e015",
244
194
  "slug": "robot-name",
195
+ "uuid": "d5f7756e-9b82-4576-9f21-dff39293e015",
245
196
  "core": false,
246
197
  "unlocked_by": null,
247
198
  "difficulty": 6,
248
- "topics": [
249
-
250
- ]
199
+ "topics": []
251
200
  },
252
201
  {
253
- "uuid": "be32cfd0-1653-4320-98ad-1fddb728f29b",
254
202
  "slug": "atbash-cipher",
203
+ "uuid": "be32cfd0-1653-4320-98ad-1fddb728f29b",
255
204
  "core": false,
256
205
  "unlocked_by": null,
257
206
  "difficulty": 5,
258
- "topics": [
259
-
260
- ]
207
+ "topics": []
261
208
  },
262
209
  {
263
- "uuid": "5510f44a-f484-4df4-9b07-1f23f42df4d1",
264
210
  "slug": "space-age",
211
+ "uuid": "5510f44a-f484-4df4-9b07-1f23f42df4d1",
265
212
  "core": false,
266
213
  "unlocked_by": null,
267
214
  "difficulty": 4,
268
- "topics": [
269
-
270
- ]
215
+ "topics": []
271
216
  },
272
217
  {
273
- "uuid": "8db9c6f1-b086-4b20-a0d2-657d5fdb2c1e",
274
218
  "slug": "allergies",
219
+ "uuid": "8db9c6f1-b086-4b20-a0d2-657d5fdb2c1e",
275
220
  "core": false,
276
221
  "unlocked_by": null,
277
222
  "difficulty": 5,
278
- "topics": [
279
-
280
- ]
223
+ "topics": []
281
224
  },
282
225
  {
283
- "uuid": "1f21e5b0-e4fd-48e5-81ee-eccfb93bc349",
284
226
  "slug": "linked-list",
227
+ "uuid": "1f21e5b0-e4fd-48e5-81ee-eccfb93bc349",
285
228
  "core": false,
286
229
  "unlocked_by": null,
287
230
  "difficulty": 6,
288
- "topics": [
289
-
290
- ]
231
+ "topics": []
291
232
  },
292
233
  {
293
- "uuid": "a5d0488e-1a95-4896-8196-541d59dbcea1",
294
234
  "slug": "acronym",
235
+ "uuid": "a5d0488e-1a95-4896-8196-541d59dbcea1",
295
236
  "core": false,
296
237
  "unlocked_by": null,
297
238
  "difficulty": 3,
298
- "topics": [
299
-
300
- ]
239
+ "topics": []
301
240
  },
302
241
  {
303
- "uuid": "00219cdb-939f-434c-bfb4-e3d62a8542c0",
304
242
  "slug": "roman-numerals",
243
+ "uuid": "00219cdb-939f-434c-bfb4-e3d62a8542c0",
305
244
  "core": false,
306
245
  "unlocked_by": null,
307
246
  "difficulty": 5,
308
- "topics": [
309
-
310
- ]
247
+ "topics": []
311
248
  },
312
249
  {
313
- "uuid": "1d36c4df-a1c8-454c-b4ec-7bec3c1cbca3",
314
250
  "slug": "binary",
251
+ "uuid": "1d36c4df-a1c8-454c-b4ec-7bec3c1cbca3",
252
+ "core": false,
253
+ "unlocked_by": null,
254
+ "difficulty": 0,
255
+ "topics": null,
315
256
  "deprecated": true
316
257
  },
317
258
  {
318
- "uuid": "eb5415a2-1342-4dcb-ac86-34240e5dead8",
319
259
  "slug": "trinary",
260
+ "uuid": "eb5415a2-1342-4dcb-ac86-34240e5dead8",
261
+ "core": false,
262
+ "unlocked_by": null,
263
+ "difficulty": 0,
264
+ "topics": null,
320
265
  "deprecated": true
321
266
  }
322
267
  ]
@@ -2,9 +2,10 @@ bin/configlet
2
2
  bin/configlet.exe
3
3
  exercises/hamming/hamming.ps1
4
4
  *.sqlite-journal
5
+ .vs/*
5
6
  .vs/ProjectSettings.json
6
7
  .vs/slnx.sqlite
7
8
  .vs/VSWorkspaceState.json
8
9
  .vs/powershell/v15/.suo
9
10
  .vs/config/applicationhost.config
10
- .vs/*
11
+ *.sqlite-journal
@@ -1,25 +1,25 @@
1
1
  {
2
+ "docs_url": "https://github.com/exercism/docs/blob/master/maintaining-a-track/maintainer-configuration.md",
2
3
  "maintainers": [
3
4
  {
4
5
  "github_username": "spuder",
5
- "show_on_website": false,
6
6
  "alumnus": false,
7
+ "show_on_website": false,
7
8
  "name": null,
8
- "bio": null,
9
9
  "link_text": null,
10
10
  "link_url": null,
11
- "avatar_url": null
11
+ "avatar_url": null,
12
+ "bio": null
12
13
  },
13
14
  {
14
15
  "github_username": "LegalizeAdulthood",
15
- "show_on_website": false,
16
16
  "alumnus": false,
17
+ "show_on_website": false,
17
18
  "name": null,
18
- "bio": null,
19
19
  "link_text": null,
20
20
  "link_url": null,
21
- "avatar_url": null
21
+ "avatar_url": null,
22
+ "bio": null
22
23
  }
23
- ],
24
- "docs_url": "https://github.com/exercism/docs/blob/master/maintaining-a-track/maintainer-configuration.md"
24
+ ]
25
25
  }
@@ -1,87 +1,104 @@
1
1
  {
2
- "slug": "powershell",
3
2
  "language": "Windows PowerShell",
4
- "repository": "https://github.com/exercism/powershell",
5
- "checklist_issue": "4",
6
3
  "active": false,
7
- "foregone": [
8
-
9
- ],
4
+ "blurb": "",
5
+ "checklist_issue": "4",
10
6
  "exercises": [
11
7
  {
12
- "uuid": "83c215e6-4a4e-4302-8d68-47f367478d2c",
13
8
  "slug": "hello-world",
9
+ "uuid": "83c215e6-4a4e-4302-8d68-47f367478d2c",
14
10
  "core": false,
15
11
  "unlocked_by": null,
16
12
  "difficulty": 1,
17
13
  "topics": [
18
14
  "strings"
19
15
  ]
20
- }
21
- ,{
22
- "uuid": "e62edbd6-861b-4cd6-bb03-6c9bcaa742a4",
16
+ },
17
+ {
18
+ "slug": "reverse-string",
19
+ "uuid": "925e73f0-28a9-4e33-937b-5f328ac50163",
20
+ "core": false,
21
+ "unlocked_by": null,
22
+ "difficulty": 1,
23
+ "topics": [
24
+ "strings"
25
+ ]
26
+ },
27
+ {
23
28
  "slug": "leap",
29
+ "uuid": "e62edbd6-861b-4cd6-bb03-6c9bcaa742a4",
24
30
  "core": false,
25
31
  "unlocked_by": null,
26
32
  "difficulty": 1,
27
33
  "topics": [
28
- "control_flow_if_else_statements"
29
- ,"integers"
34
+ "control_flow_if_else_statements",
35
+ "integers"
30
36
  ]
31
- }
32
- ,{
33
- "uuid": "e80b254a-0dd8-4efb-83e4-cee1cfc9431e",
37
+ },
38
+ {
34
39
  "slug": "bob",
40
+ "uuid": "e80b254a-0dd8-4efb-83e4-cee1cfc9431e",
35
41
  "core": true,
36
42
  "unlocked_by": null,
37
43
  "difficulty": 1,
38
44
  "topics": [
39
- "control_flow_if_else_statements"
40
- ,"strings"
45
+ "control_flow_if_else_statements",
46
+ "strings"
41
47
  ]
42
- }
43
- ,{
44
- "uuid": "90a12652-946c-4771-83bd-741f884cd426",
48
+ },
49
+ {
50
+ "slug": "sum-of-multiples",
51
+ "uuid": "df4403d1-3fb2-4c2c-a228-2bdb442d0680",
52
+ "core": true,
53
+ "unlocked_by": null,
54
+ "difficulty": 1,
55
+ "topics": [
56
+ "arrays",
57
+ "transforming"
58
+ ]
59
+ },
60
+ {
45
61
  "slug": "raindrops",
62
+ "uuid": "90a12652-946c-4771-83bd-741f884cd426",
46
63
  "core": true,
47
64
  "unlocked_by": null,
48
65
  "difficulty": 2,
49
66
  "topics": [
50
- "filtering"
51
- ,"strings"
67
+ "filtering",
68
+ "strings"
52
69
  ]
53
- }
54
- ,{
55
- "uuid": "45f285c2-9358-451d-a931-1dee54df7b67",
70
+ },
71
+ {
56
72
  "slug": "two-fer",
73
+ "uuid": "45f285c2-9358-451d-a931-1dee54df7b67",
57
74
  "core": false,
58
75
  "unlocked_by": null,
59
76
  "difficulty": 1,
60
77
  "topics": [
61
- "optional_values"
62
- ,"strings"
78
+ "optional_values",
79
+ "strings"
63
80
  ]
64
- }
65
- ,{
66
- "uuid": "68b0b096-c6c0-493f-9f7f-081a413d7078",
81
+ },
82
+ {
67
83
  "slug": "nucleotide-count",
84
+ "uuid": "68b0b096-c6c0-493f-9f7f-081a413d7078",
68
85
  "core": true,
69
86
  "unlocked_by": null,
70
87
  "difficulty": 2,
71
88
  "topics": [
72
- "dictionaries"
73
- ,"strings"
89
+ "dictionaries",
90
+ "strings"
74
91
  ]
75
- }
76
- ,{
77
- "uuid": "f55b2158-a8f0-4593-b44a-6e750ebac0a5",
92
+ },
93
+ {
78
94
  "slug": "hamming",
95
+ "uuid": "f55b2158-a8f0-4593-b44a-6e750ebac0a5",
79
96
  "core": false,
80
97
  "unlocked_by": null,
81
98
  "difficulty": 1,
82
99
  "topics": [
83
- "filtering"
84
- ,"strings"
100
+ "filtering",
101
+ "strings"
85
102
  ]
86
103
  }
87
104
  ]
@@ -0,0 +1,13 @@
1
+ # Reverse String
2
+
3
+ Reverse a string
4
+
5
+ For example:
6
+ input: "cool"
7
+ output: "looc"
8
+ ## Source
9
+
10
+ Introductory challenge to reverse an input string [https://medium.freecodecamp.org/how-to-reverse-a-string-in-javascript-in-3-different-ways-75e4763c68cb](https://medium.freecodecamp.org/how-to-reverse-a-string-in-javascript-in-3-different-ways-75e4763c68cb)
11
+
12
+ ## Submitting Incomplete Solutions
13
+ It's possible to submit an incomplete solution so you can see how others have completed the exercise.
@@ -0,0 +1,21 @@
1
+ Function Get-ReverseString {
2
+ [CmdletBinding()]
3
+ Param(
4
+ [Parameter(Position=1, ValueFromPipeline=$true)]
5
+ [string]$Forward
6
+ )
7
+
8
+ # We could use:
9
+ # $charArry = $Forward.ToCharArray()
10
+ # [array]::Reverse($charArray)
11
+ # Return -join($charArry)
12
+
13
+ # Doing this ourselves (and this is probably easier to understand):
14
+ $reversed = ""
15
+
16
+ for($i = $Forward.Length; $i -gt 0; $i--){
17
+ $reversed += $Forward[$i - 1] # Use -1 as arrays are 0 based so $Forward.Length is 1 more than the last element index of the array
18
+ }
19
+
20
+ return $reversed
21
+ }
@@ -0,0 +1,9 @@
1
+ Function Get-ReverseString {
2
+ [CmdletBinding()]
3
+ Param(
4
+ [Parameter(Position=1, ValueFromPipeline=$true)]
5
+ [string]$Forward
6
+ )
7
+
8
+ Throw "Function not implemented"
9
+ }
@@ -0,0 +1,21 @@
1
+ $here = Split-Path -Parent $MyInvocation.MyCommand.Path
2
+ $sut = (Split-Path -Leaf $MyInvocation.MyCommand.Path) -replace '\.tests\.', '.'
3
+ . "$here\$sut"
4
+
5
+ Describe "Get-ReverseString Tests" {
6
+ It "Given <Forward> it outputs <Reverse>" -TestCases @(
7
+ @{ Forward = ""; Reverse = "" },
8
+ @{ Forward = "PowerShell"; Reverse = "llehSrewoP" },
9
+ @{ Forward = "robot"; Reverse = "tobor" },
10
+ @{ Forward = "Ramen"; Reverse = "nemaR" },
11
+ @{ Forward = "I'm hungry!"; Reverse = "!yrgnuh m'I" },
12
+ @{ Forward = "racecar"; Reverse = "racecar" }
13
+ ) {
14
+ Param(
15
+ [string]$Forward,
16
+ [string]$Reverse
17
+ )
18
+
19
+ Get-ReverseString -Forward $Forward | Should -BeExactly $Reverse
20
+ }
21
+ }
@@ -0,0 +1,15 @@
1
+ # Sum Of Multiples
2
+
3
+ Given a number, find the sum of all the unique multiples of particular numbers up to
4
+ but not including that number.
5
+
6
+ If we list all the natural numbers below 20 that are multiples of 3 or 5,
7
+ we get 3, 5, 6, 9, 10, 12, 15, and 18.
8
+
9
+ The sum of these multiples is 78.
10
+ ## Source
11
+
12
+ A variation on Problem 1 at Project Euler [http://projecteuler.net/problem=1](http://projecteuler.net/problem=1)
13
+
14
+ ## Submitting Incomplete Solutions
15
+ It's possible to submit an incomplete solution so you can see how others have completed the exercise.