trackler 2.2.1.103 → 2.2.1.104

Sign up to get free protection for your applications and to get access to all the features.
Files changed (432) hide show
  1. checksums.yaml +4 -4
  2. data/lib/trackler/version.rb +1 -1
  3. data/problem-specifications/exercises/all-your-base/canonical-data.json +43 -43
  4. data/tracks/bash/.github/PULL_REQUEST_TEMPLATE.md +10 -0
  5. data/tracks/cfml/tasks/exercise_template/.meta/hints.md +1 -0
  6. data/tracks/csharp/config/exercise_readme.go.tmpl +4 -4
  7. data/tracks/csharp/exercises/accumulate/README.md +1 -5
  8. data/tracks/csharp/exercises/acronym/README.md +1 -3
  9. data/tracks/csharp/exercises/all-your-base/README.md +2 -4
  10. data/tracks/csharp/exercises/allergies/README.md +1 -3
  11. data/tracks/csharp/exercises/alphametics/README.md +3 -5
  12. data/tracks/csharp/exercises/anagram/README.md +1 -2
  13. data/tracks/csharp/exercises/armstrong-numbers/README.md +14 -1
  14. data/tracks/csharp/exercises/atbash-cipher/README.md +3 -3
  15. data/tracks/csharp/exercises/bank-account/README.md +1 -3
  16. data/tracks/csharp/exercises/beer-song/README.md +3 -4
  17. data/tracks/csharp/exercises/binary-search-tree/README.md +1 -2
  18. data/tracks/csharp/exercises/binary-search/README.md +1 -2
  19. data/tracks/csharp/exercises/binary/README.md +3 -2
  20. data/tracks/csharp/exercises/bob/README.md +3 -3
  21. data/tracks/csharp/exercises/book-store/README.md +6 -7
  22. data/tracks/csharp/exercises/bowling/README.md +21 -8
  23. data/tracks/csharp/exercises/bracket-push/README.md +1 -2
  24. data/tracks/csharp/exercises/change/README.md +2 -3
  25. data/tracks/csharp/exercises/circular-buffer/README.md +14 -8
  26. data/tracks/csharp/exercises/clock/README.md +1 -2
  27. data/tracks/csharp/exercises/collatz-conjecture/README.md +4 -4
  28. data/tracks/csharp/exercises/complex-numbers/README.md +1 -2
  29. data/tracks/csharp/exercises/connect/README.md +2 -4
  30. data/tracks/csharp/exercises/crypto-square/README.md +11 -10
  31. data/tracks/csharp/exercises/custom-set/README.md +1 -3
  32. data/tracks/csharp/exercises/diamond/README.md +10 -9
  33. data/tracks/csharp/exercises/difference-of-squares/README.md +1 -2
  34. data/tracks/csharp/exercises/diffie-hellman/README.md +1 -2
  35. data/tracks/csharp/exercises/dominoes/README.md +10 -3
  36. data/tracks/csharp/exercises/dot-dsl/README.md +2 -4
  37. data/tracks/csharp/exercises/error-handling/README.md +1 -3
  38. data/tracks/csharp/exercises/etl/README.md +4 -3
  39. data/tracks/csharp/exercises/flatten-array/README.md +2 -4
  40. data/tracks/csharp/exercises/food-chain/README.md +2 -3
  41. data/tracks/csharp/exercises/forth/README.md +1 -3
  42. data/tracks/csharp/exercises/gigasecond/README.md +1 -2
  43. data/tracks/csharp/exercises/go-counting/README.md +2 -4
  44. data/tracks/csharp/exercises/grade-school/README.md +1 -3
  45. data/tracks/csharp/exercises/grains/README.md +1 -3
  46. data/tracks/csharp/exercises/grep/README.md +13 -14
  47. data/tracks/csharp/exercises/hamming/README.md +1 -2
  48. data/tracks/csharp/exercises/hangman/README.md +1 -3
  49. data/tracks/csharp/exercises/hello-world/README.md +1 -2
  50. data/tracks/csharp/exercises/hexadecimal/README.md +1 -2
  51. data/tracks/csharp/exercises/house/README.md +3 -5
  52. data/tracks/csharp/exercises/isbn-verifier/README.md +34 -22
  53. data/tracks/csharp/exercises/isogram/README.md +3 -3
  54. data/tracks/csharp/exercises/kindergarten-garden/README.md +14 -15
  55. data/tracks/csharp/exercises/largest-series-product/README.md +1 -2
  56. data/tracks/csharp/exercises/leap/README.md +2 -3
  57. data/tracks/csharp/exercises/ledger/README.md +1 -3
  58. data/tracks/csharp/exercises/linked-list/README.md +11 -12
  59. data/tracks/csharp/exercises/list-ops/README.md +1 -3
  60. data/tracks/csharp/exercises/luhn/README.md +8 -9
  61. data/tracks/csharp/exercises/markdown/README.md +1 -3
  62. data/tracks/csharp/exercises/matrix/README.md +7 -6
  63. data/tracks/csharp/exercises/meetup/README.md +17 -15
  64. data/tracks/csharp/exercises/minesweeper/README.md +1 -3
  65. data/tracks/csharp/exercises/nth-prime/README.md +1 -2
  66. data/tracks/csharp/exercises/nucleotide-count/README.md +9 -24
  67. data/tracks/csharp/exercises/ocr-numbers/README.md +7 -8
  68. data/tracks/csharp/exercises/octal/README.md +7 -4
  69. data/tracks/csharp/exercises/palindrome-products/README.md +16 -18
  70. data/tracks/csharp/exercises/pangram/README.md +2 -3
  71. data/tracks/csharp/exercises/parallel-letter-frequency/README.md +1 -3
  72. data/tracks/csharp/exercises/pascals-triangle/README.md +3 -4
  73. data/tracks/csharp/exercises/perfect-numbers/README.md +3 -4
  74. data/tracks/csharp/exercises/phone-number/README.md +5 -5
  75. data/tracks/csharp/exercises/pig-latin/README.md +1 -2
  76. data/tracks/csharp/exercises/poker/README.md +1 -2
  77. data/tracks/csharp/exercises/pov/README.md +4 -7
  78. data/tracks/csharp/exercises/prime-factors/README.md +1 -2
  79. data/tracks/csharp/exercises/protein-translation/README.md +6 -8
  80. data/tracks/csharp/exercises/proverb/README.md +15 -11
  81. data/tracks/csharp/exercises/pythagorean-triplet/README.md +4 -5
  82. data/tracks/csharp/exercises/queen-attack/README.md +2 -3
  83. data/tracks/csharp/exercises/rail-fence-cipher/README.md +13 -9
  84. data/tracks/csharp/exercises/raindrops/README.md +1 -2
  85. data/tracks/csharp/exercises/react/README.md +1 -3
  86. data/tracks/csharp/exercises/rectangles/README.md +17 -19
  87. data/tracks/csharp/exercises/reverse-string/README.md +16 -1
  88. data/tracks/csharp/exercises/rna-transcription/README.md +3 -4
  89. data/tracks/csharp/exercises/robot-name/README.md +1 -2
  90. data/tracks/csharp/exercises/robot-simulator/README.md +1 -2
  91. data/tracks/csharp/exercises/roman-numerals/README.md +2 -3
  92. data/tracks/csharp/exercises/rotational-cipher/README.md +3 -3
  93. data/tracks/csharp/exercises/run-length-encoding/README.md +5 -6
  94. data/tracks/csharp/exercises/saddle-points/README.md +3 -4
  95. data/tracks/csharp/exercises/say/README.md +1 -2
  96. data/tracks/csharp/exercises/scale-generator/README.md +1 -4
  97. data/tracks/csharp/exercises/scrabble-score/README.md +4 -3
  98. data/tracks/csharp/exercises/secret-handshake/README.md +2 -3
  99. data/tracks/csharp/exercises/series/README.md +1 -2
  100. data/tracks/csharp/exercises/sgf-parsing/README.md +5 -7
  101. data/tracks/csharp/exercises/sieve/README.md +1 -2
  102. data/tracks/csharp/exercises/simple-cipher/README.md +6 -9
  103. data/tracks/csharp/exercises/simple-linked-list/README.md +1 -2
  104. data/tracks/csharp/exercises/space-age/README.md +2 -3
  105. data/tracks/csharp/exercises/spiral-matrix/README.md +7 -8
  106. data/tracks/csharp/exercises/strain/README.md +1 -2
  107. data/tracks/csharp/exercises/sublist/README.md +1 -3
  108. data/tracks/csharp/exercises/sum-of-multiples/README.md +4 -8
  109. data/tracks/csharp/exercises/tournament/README.md +6 -8
  110. data/tracks/csharp/exercises/transpose/README.md +8 -9
  111. data/tracks/csharp/exercises/tree-building/README.md +4 -6
  112. data/tracks/csharp/exercises/triangle/README.md +10 -8
  113. data/tracks/csharp/exercises/trinary/README.md +2 -3
  114. data/tracks/csharp/exercises/twelve-days/README.md +2 -3
  115. data/tracks/csharp/exercises/two-bucket/README.md +11 -12
  116. data/tracks/csharp/exercises/two-fer/README.md +8 -9
  117. data/tracks/csharp/exercises/variable-length-quantity/README.md +7 -9
  118. data/tracks/csharp/exercises/word-count/README.md +2 -4
  119. data/tracks/csharp/exercises/word-search/README.md +2 -4
  120. data/tracks/csharp/exercises/wordy/README.md +1 -7
  121. data/tracks/csharp/exercises/zebra-puzzle/README.md +1 -2
  122. data/tracks/csharp/exercises/zipper/README.md +2 -4
  123. data/tracks/dart/config.json +2 -2
  124. data/tracks/go/config/exercise_readme.go.tmpl +17 -4
  125. data/tracks/go/exercises/acronym/README.md +0 -1
  126. data/tracks/go/exercises/all-your-base/README.md +0 -1
  127. data/tracks/go/exercises/allergies/README.md +0 -1
  128. data/tracks/go/exercises/alphametics/README.md +0 -1
  129. data/tracks/go/exercises/atbash-cipher/README.md +2 -1
  130. data/tracks/go/exercises/bank-account/README.md +0 -1
  131. data/tracks/go/exercises/beer-song/README.md +2 -2
  132. data/tracks/go/exercises/binary/README.md +2 -0
  133. data/tracks/go/exercises/bowling/README.md +20 -6
  134. data/tracks/go/exercises/change/README.md +1 -1
  135. data/tracks/go/exercises/circular-buffer/README.md +13 -6
  136. data/tracks/go/exercises/collatz-conjecture/README.md +1 -1
  137. data/tracks/go/exercises/connect/README.md +1 -2
  138. data/tracks/go/exercises/counter/README.md +0 -1
  139. data/tracks/go/exercises/crypto-square/README.md +10 -8
  140. data/tracks/go/exercises/custom-set/README.md +0 -1
  141. data/tracks/go/exercises/diamond/README.md +6 -6
  142. data/tracks/go/exercises/dominoes/README.md +0 -1
  143. data/tracks/go/exercises/error-handling/README.md +0 -1
  144. data/tracks/go/exercises/etl/README.md +3 -1
  145. data/tracks/go/exercises/food-chain/README.md +1 -1
  146. data/tracks/go/exercises/forth/README.md +0 -1
  147. data/tracks/go/exercises/grade-school/README.md +0 -1
  148. data/tracks/go/exercises/grains/README.md +0 -1
  149. data/tracks/go/exercises/house/README.md +2 -3
  150. data/tracks/go/exercises/isbn-verifier/README.md +26 -21
  151. data/tracks/go/exercises/isogram/README.md +2 -1
  152. data/tracks/go/exercises/kindergarten-garden/README.md +13 -13
  153. data/tracks/go/exercises/leap/README.md +1 -1
  154. data/tracks/go/exercises/ledger/README.md +0 -1
  155. data/tracks/go/exercises/luhn/README.md +7 -7
  156. data/tracks/go/exercises/matrix/README.md +6 -4
  157. data/tracks/go/exercises/meetup/README.md +16 -13
  158. data/tracks/go/exercises/minesweeper/README.md +0 -1
  159. data/tracks/go/exercises/nucleotide-count/README.md +25 -17
  160. data/tracks/go/exercises/ocr-numbers/README.md +6 -6
  161. data/tracks/go/exercises/octal/README.md +6 -2
  162. data/tracks/go/exercises/palindrome-products/README.md +15 -16
  163. data/tracks/go/exercises/pangram/README.md +1 -1
  164. data/tracks/go/exercises/parallel-letter-frequency/README.md +0 -1
  165. data/tracks/go/exercises/pascals-triangle/README.md +2 -2
  166. data/tracks/go/exercises/pov/README.md +3 -5
  167. data/tracks/go/exercises/protein-translation/README.md +5 -6
  168. data/tracks/go/exercises/pythagorean-triplet/README.md +3 -3
  169. data/tracks/go/exercises/queen-attack/README.md +1 -1
  170. data/tracks/go/exercises/react/README.md +0 -1
  171. data/tracks/go/exercises/reverse-string/README.md +1 -1
  172. data/tracks/go/exercises/rna-transcription/README.md +2 -2
  173. data/tracks/go/exercises/robot-name/README.md +15 -0
  174. data/tracks/go/exercises/roman-numerals/README.md +1 -1
  175. data/tracks/go/exercises/rotational-cipher/README.md +0 -1
  176. data/tracks/go/exercises/run-length-encoding/README.md +21 -4
  177. data/tracks/go/exercises/saddle-points/README.md +2 -2
  178. data/tracks/go/exercises/scrabble-score/README.md +3 -1
  179. data/tracks/go/exercises/secret-handshake/README.md +1 -1
  180. data/tracks/go/exercises/simple-linked-list/README.md +1 -2
  181. data/tracks/go/exercises/space-age/README.md +1 -2
  182. data/tracks/go/exercises/spiral-matrix/README.md +1 -1
  183. data/tracks/go/exercises/sublist/README.md +0 -1
  184. data/tracks/go/exercises/sum-of-multiples/README.md +3 -6
  185. data/tracks/go/exercises/tournament/README.md +5 -6
  186. data/tracks/go/exercises/transpose/README.md +7 -7
  187. data/tracks/go/exercises/tree-building/README.md +3 -4
  188. data/tracks/go/exercises/triangle/README.md +21 -6
  189. data/tracks/go/exercises/trinary/README.md +1 -1
  190. data/tracks/go/exercises/twelve-days/README.md +2 -3
  191. data/tracks/go/exercises/two-fer/README.md +2 -31
  192. data/tracks/go/exercises/variable-length-quantity/README.md +6 -7
  193. data/tracks/go/exercises/word-count/README.md +1 -2
  194. data/tracks/go/exercises/word-search/README.md +1 -2
  195. data/tracks/go/exercises/wordy/README.md +0 -5
  196. data/tracks/groovy/config.json +11 -0
  197. data/tracks/groovy/exercises/rotational-cipher/Example.groovy +38 -0
  198. data/tracks/groovy/exercises/rotational-cipher/README.md +49 -0
  199. data/tracks/groovy/exercises/rotational-cipher/RotationalCipher.groovy +11 -0
  200. data/tracks/groovy/exercises/rotational-cipher/RotationalCipherSpec.groovy +68 -0
  201. data/tracks/haskell/exercises/acronym/package.yaml +1 -1
  202. data/tracks/haskell/exercises/acronym/test/Tests.hs +2 -6
  203. data/tracks/haskell/exercises/anagram/package.yaml +1 -1
  204. data/tracks/haskell/exercises/anagram/test/Tests.hs +0 -20
  205. data/tracks/haskell/exercises/clock/package.yaml +1 -1
  206. data/tracks/haskell/exercises/clock/test/Tests.hs +16 -9
  207. data/tracks/haskell/exercises/complex-numbers/package.yaml +1 -1
  208. data/tracks/haskell/exercises/custom-set/package.yaml +1 -1
  209. data/tracks/haskell/exercises/hamming/package.yaml +1 -1
  210. data/tracks/haskell/exercises/kindergarten-garden/package.yaml +1 -1
  211. data/tracks/haskell/exercises/matrix/package.yaml +1 -1
  212. data/tracks/haskell/exercises/matrix/test/Tests.hs +25 -13
  213. data/tracks/haskell/exercises/ocr-numbers/package.yaml +1 -1
  214. data/tracks/haskell/exercises/prime-factors/package.yaml +1 -1
  215. data/tracks/haskell/exercises/queen-attack/package.yaml +1 -1
  216. data/tracks/haskell/exercises/rail-fence-cipher/package.yaml +1 -1
  217. data/tracks/haskell/exercises/raindrops/package.yaml +1 -1
  218. data/tracks/haskell/exercises/robot-simulator/package.yaml +1 -1
  219. data/tracks/haskell/exercises/roman-numerals/package.yaml +1 -1
  220. data/tracks/haskell/exercises/roman-numerals/test/Tests.hs +4 -0
  221. data/tracks/haskell/exercises/run-length-encoding/package.yaml +1 -1
  222. data/tracks/haskell/exercises/word-count/package.yaml +1 -1
  223. data/tracks/java/config.json +0 -1
  224. data/tracks/java/exercises/forth/README.md +1 -1
  225. data/tracks/objective-c/config/exercise_readme.go.tmpl +22 -4
  226. data/tracks/objective-c/exercises/acronym/README.md +8 -3
  227. data/tracks/objective-c/exercises/all-your-base/README.md +8 -3
  228. data/tracks/objective-c/exercises/allergies/README.md +8 -3
  229. data/tracks/objective-c/exercises/anagram/README.md +8 -2
  230. data/tracks/objective-c/exercises/atbash-cipher/README.md +10 -3
  231. data/tracks/objective-c/exercises/beer-song/README.md +10 -4
  232. data/tracks/objective-c/exercises/binary-search/README.md +8 -2
  233. data/tracks/objective-c/exercises/bob/.meta/description.md +10 -0
  234. data/tracks/objective-c/exercises/bob/README.md +8 -2
  235. data/tracks/objective-c/exercises/bracket-push/README.md +8 -2
  236. data/tracks/objective-c/exercises/clock/README.md +8 -2
  237. data/tracks/objective-c/exercises/collatz-conjecture/README.md +8 -2
  238. data/tracks/objective-c/exercises/crypto-square/README.md +18 -10
  239. data/tracks/objective-c/exercises/difference-of-squares/README.md +8 -2
  240. data/tracks/objective-c/exercises/etl/README.md +11 -3
  241. data/tracks/objective-c/exercises/flatten-array/README.md +9 -4
  242. data/tracks/objective-c/exercises/gigasecond/README.md +8 -2
  243. data/tracks/objective-c/exercises/grade-school/README.md +8 -3
  244. data/tracks/objective-c/exercises/grains/README.md +8 -2
  245. data/tracks/objective-c/exercises/hamming/README.md +8 -2
  246. data/tracks/objective-c/exercises/hello-world/README.md +8 -2
  247. data/tracks/objective-c/exercises/isogram/README.md +10 -3
  248. data/tracks/objective-c/exercises/largest-series-product/README.md +8 -2
  249. data/tracks/objective-c/exercises/leap/README.md +9 -3
  250. data/tracks/objective-c/exercises/luhn/README.md +15 -9
  251. data/tracks/objective-c/exercises/meetup/README.md +24 -15
  252. data/tracks/objective-c/exercises/nth-prime/README.md +8 -2
  253. data/tracks/objective-c/exercises/nucleotide-count/README.md +16 -24
  254. data/tracks/objective-c/exercises/pangram/README.md +9 -3
  255. data/tracks/objective-c/exercises/pascals-triangle/README.md +10 -4
  256. data/tracks/objective-c/exercises/perfect-numbers/README.md +10 -4
  257. data/tracks/objective-c/exercises/phone-number/README.md +12 -5
  258. data/tracks/objective-c/exercises/raindrops/README.md +8 -2
  259. data/tracks/objective-c/exercises/rna-transcription/README.md +10 -4
  260. data/tracks/objective-c/exercises/robot-name/README.md +8 -2
  261. data/tracks/objective-c/exercises/roman-numerals/README.md +9 -3
  262. data/tracks/objective-c/exercises/run-length-encoding/README.md +12 -6
  263. data/tracks/objective-c/exercises/say/README.md +8 -2
  264. data/tracks/objective-c/exercises/scrabble-score/README.md +11 -3
  265. data/tracks/objective-c/exercises/secret-handshake/README.md +10 -4
  266. data/tracks/objective-c/exercises/sieve/README.md +8 -2
  267. data/tracks/objective-c/exercises/space-age/README.md +9 -3
  268. data/tracks/objective-c/exercises/sublist/README.md +7 -2
  269. data/tracks/objective-c/exercises/sum-of-multiples/README.md +11 -8
  270. data/tracks/objective-c/exercises/transpose/README.md +15 -9
  271. data/tracks/objective-c/exercises/triangle/README.md +17 -8
  272. data/tracks/objective-c/exercises/two-fer/README.md +8 -2
  273. data/tracks/objective-c/exercises/word-count/README.md +9 -4
  274. data/tracks/php/.travis.yml +1 -1
  275. data/tracks/php/config/exercise_readme.go.tmpl +20 -4
  276. data/tracks/php/exercises/accumulate/README.md +9 -6
  277. data/tracks/php/exercises/acronym/README.md +9 -4
  278. data/tracks/php/exercises/all-your-base/README.md +35 -11
  279. data/tracks/php/exercises/allergies/README.md +9 -4
  280. data/tracks/php/exercises/anagram/README.md +10 -4
  281. data/tracks/php/exercises/atbash-cipher/README.md +12 -5
  282. data/tracks/php/exercises/beer-song/README.md +12 -6
  283. data/tracks/php/exercises/binary-search/README.md +10 -4
  284. data/tracks/php/exercises/binary/README.md +12 -4
  285. data/tracks/php/exercises/bob/.meta/description.md +10 -0
  286. data/tracks/php/exercises/bob/README.md +10 -4
  287. data/tracks/php/exercises/book-store/README.md +15 -9
  288. data/tracks/php/exercises/bowling/README.md +30 -10
  289. data/tracks/php/exercises/bracket-push/README.md +10 -4
  290. data/tracks/php/exercises/change/README.md +11 -5
  291. data/tracks/php/exercises/clock/README.md +10 -4
  292. data/tracks/php/exercises/collatz-conjecture/README.md +10 -4
  293. data/tracks/php/exercises/connect/README.md +11 -6
  294. data/tracks/php/exercises/crypto-square/README.md +10 -4
  295. data/tracks/php/exercises/difference-of-squares/README.md +10 -4
  296. data/tracks/php/exercises/etl/README.md +13 -5
  297. data/tracks/php/exercises/flatten-array/README.md +10 -4
  298. data/tracks/php/exercises/gigasecond/README.md +10 -4
  299. data/tracks/php/exercises/grade-school/README.md +10 -5
  300. data/tracks/php/exercises/grains/README.md +10 -5
  301. data/tracks/php/exercises/hamming/README.md +10 -4
  302. data/tracks/php/exercises/hello-world/README.md +10 -4
  303. data/tracks/php/exercises/isogram/README.md +12 -5
  304. data/tracks/php/exercises/largest-series-product/README.md +10 -4
  305. data/tracks/php/exercises/leap/README.md +11 -5
  306. data/tracks/php/exercises/luhn/README.md +17 -11
  307. data/tracks/php/exercises/markdown/README.md +10 -5
  308. data/tracks/php/exercises/meetup/README.md +45 -12
  309. data/tracks/php/exercises/meetup/example.php +0 -2
  310. data/tracks/php/exercises/meetup/meetup_test.php +0 -2
  311. data/tracks/php/exercises/minesweeper/README.md +10 -5
  312. data/tracks/php/exercises/nth-prime/README.md +10 -4
  313. data/tracks/php/exercises/nucleotide-count/README.md +15 -23
  314. data/tracks/php/exercises/ocr-numbers/README.md +16 -10
  315. data/tracks/php/exercises/pangram/README.md +11 -5
  316. data/tracks/php/exercises/pascals-triangle/README.md +12 -6
  317. data/tracks/php/exercises/perfect-numbers/README.md +12 -6
  318. data/tracks/php/exercises/phone-number/README.md +14 -7
  319. data/tracks/php/exercises/pig-latin/README.md +10 -4
  320. data/tracks/php/exercises/prime-factors/README.md +10 -4
  321. data/tracks/php/exercises/queen-attack/README.md +11 -5
  322. data/tracks/php/exercises/rail-fence-cipher/README.md +10 -4
  323. data/tracks/php/exercises/raindrops/README.md +10 -4
  324. data/tracks/php/exercises/rna-transcription/README.md +11 -5
  325. data/tracks/php/exercises/robot-name/README.md +10 -4
  326. data/tracks/php/exercises/robot-simulator/README.md +10 -4
  327. data/tracks/php/exercises/roman-numerals/README.md +11 -5
  328. data/tracks/php/exercises/run-length-encoding/README.md +13 -4
  329. data/tracks/php/exercises/scrabble-score/README.md +13 -5
  330. data/tracks/php/exercises/series/README.md +27 -0
  331. data/tracks/php/exercises/series/example.php +0 -2
  332. data/tracks/php/exercises/series/series_test.php +0 -1
  333. data/tracks/php/exercises/sieve/README.md +10 -4
  334. data/tracks/php/exercises/space-age/README.md +11 -5
  335. data/tracks/php/exercises/sum-of-multiples/README.md +12 -9
  336. data/tracks/php/exercises/transpose/README.md +10 -4
  337. data/tracks/php/exercises/triangle/README.md +19 -10
  338. data/tracks/php/exercises/trinary/README.md +11 -5
  339. data/tracks/php/exercises/variable-length-quantity/README.md +16 -11
  340. data/tracks/php/exercises/word-count/README.md +10 -5
  341. data/tracks/php/exercises/wordy/README.md +9 -8
  342. data/tracks/rust/config/exercise_readme.go.tmpl +32 -4
  343. data/tracks/rust/exercises/all-your-base/README.md +0 -1
  344. data/tracks/rust/exercises/alphametics/README.md +0 -1
  345. data/tracks/rust/exercises/custom-set/README.md +0 -1
  346. data/tracks/rust/exercises/dominoes/README.md +0 -1
  347. data/tracks/rust/exercises/forth/README.md +0 -1
  348. data/tracks/rust/exercises/isbn-verifier/README.md +1 -1
  349. data/tracks/rust/exercises/minesweeper/README.md +0 -1
  350. data/tracks/rust/exercises/nucleotide-codons/README.md +0 -1
  351. data/tracks/rust/exercises/parallel-letter-frequency/README.md +0 -1
  352. data/tracks/rust/exercises/protein-translation/README.md +2 -2
  353. data/tracks/rust/exercises/react/README.md +0 -1
  354. data/tracks/rust/exercises/rectangles/README.md +0 -1
  355. data/tracks/rust/exercises/reverse-string/README.md +1 -1
  356. data/tracks/rust/exercises/rna-transcription/.meta/hints.md +9 -0
  357. data/tracks/rust/exercises/rna-transcription/README.md +12 -1
  358. data/tracks/rust/exercises/rna-transcription/example.rs +66 -27
  359. data/tracks/rust/exercises/rna-transcription/tests/rna-transcription.rs +52 -19
  360. data/tracks/rust/exercises/sublist/README.md +0 -1
  361. data/tracks/rust/exercises/tournament/README.md +0 -1
  362. data/tracks/swift/config/exercise_readme.go.tmpl +7 -4
  363. data/tracks/swift/exercises/accumulate/README.md +0 -3
  364. data/tracks/swift/exercises/acronym/README.md +0 -1
  365. data/tracks/swift/exercises/all-your-base/README.md +1 -2
  366. data/tracks/swift/exercises/allergies/README.md +0 -1
  367. data/tracks/swift/exercises/atbash-cipher/README.md +2 -1
  368. data/tracks/swift/exercises/beer-song/README.md +2 -2
  369. data/tracks/swift/exercises/binary/README.md +2 -0
  370. data/tracks/swift/exercises/bob/.meta/description.md +10 -0
  371. data/tracks/swift/exercises/bowling/README.md +20 -6
  372. data/tracks/swift/exercises/circular-buffer/README.md +21 -13
  373. data/tracks/swift/exercises/collatz-conjecture/README.md +1 -1
  374. data/tracks/swift/exercises/crypto-square/README.md +10 -8
  375. data/tracks/swift/exercises/custom-set/README.md +0 -1
  376. data/tracks/swift/exercises/diamond/README.md +3 -0
  377. data/tracks/swift/exercises/dominoes/README.md +3 -4
  378. data/tracks/swift/exercises/etl/README.md +3 -1
  379. data/tracks/swift/exercises/flatten-array/README.md +1 -2
  380. data/tracks/swift/exercises/food-chain/README.md +1 -1
  381. data/tracks/swift/exercises/grade-school/README.md +0 -1
  382. data/tracks/swift/exercises/grains/README.md +0 -1
  383. data/tracks/swift/exercises/house/README.md +2 -3
  384. data/tracks/swift/exercises/isbn-verifier/README.md +32 -16
  385. data/tracks/swift/exercises/isogram/README.md +2 -1
  386. data/tracks/swift/exercises/kindergarten-garden/README.md +13 -13
  387. data/tracks/swift/exercises/leap/README.md +1 -1
  388. data/tracks/swift/exercises/linked-list/README.md +10 -10
  389. data/tracks/swift/exercises/list-ops/README.md +1 -0
  390. data/tracks/swift/exercises/luhn/README.md +7 -7
  391. data/tracks/swift/exercises/matrix/README.md +6 -4
  392. data/tracks/swift/exercises/meetup/README.md +16 -13
  393. data/tracks/swift/exercises/minesweeper/README.md +0 -1
  394. data/tracks/swift/exercises/nucleotide-count/README.md +8 -22
  395. data/tracks/swift/exercises/ocr-numbers/README.md +6 -6
  396. data/tracks/swift/exercises/octal/README.md +6 -2
  397. data/tracks/swift/exercises/palindrome-products/README.md +15 -16
  398. data/tracks/swift/exercises/pangram/README.md +1 -1
  399. data/tracks/swift/exercises/pascals-triangle/README.md +2 -2
  400. data/tracks/swift/exercises/perfect-numbers/README.md +2 -2
  401. data/tracks/swift/exercises/phone-number/README.md +4 -3
  402. data/tracks/swift/exercises/protein-translation/README.md +4 -4
  403. data/tracks/swift/exercises/pythagorean-triplet/README.md +3 -3
  404. data/tracks/swift/exercises/queen-attack/README.md +1 -1
  405. data/tracks/swift/exercises/rna-transcription/README.md +2 -2
  406. data/tracks/swift/exercises/roman-numerals/README.md +1 -1
  407. data/tracks/swift/exercises/run-length-encoding/README.md +4 -4
  408. data/tracks/swift/exercises/saddle-points/README.md +2 -2
  409. data/tracks/swift/exercises/say/README.md +1 -1
  410. data/tracks/swift/exercises/scrabble-score/README.md +3 -1
  411. data/tracks/swift/exercises/secret-handshake/README.md +2 -2
  412. data/tracks/swift/exercises/simple-cipher/README.md +5 -7
  413. data/tracks/swift/exercises/space-age/README.md +1 -1
  414. data/tracks/swift/exercises/sublist/README.md +0 -1
  415. data/tracks/swift/exercises/sum-of-multiples/README.md +3 -6
  416. data/tracks/swift/exercises/tournament/README.md +5 -6
  417. data/tracks/swift/exercises/transpose/README.md +7 -7
  418. data/tracks/swift/exercises/triangle/README.md +9 -6
  419. data/tracks/swift/exercises/trinary/README.md +1 -1
  420. data/tracks/swift/exercises/twelve-days/README.md +1 -1
  421. data/tracks/swift/exercises/two-fer/README.md +2 -29
  422. data/tracks/swift/exercises/word-count/README.md +1 -2
  423. data/tracks/swift/exercises/wordy/README.md +0 -5
  424. metadata +12 -10
  425. data/tracks/cfml/tasks/exercise_template/.meta/HINTS.md +0 -0
  426. data/tracks/csharp/docs/EXERCISE_README_INSERT.md +0 -5
  427. data/tracks/go/docs/EXERCISE_README_INSERT.md +0 -16
  428. data/tracks/java/exercises/forth/.meta/readme.go.tmpl +0 -17
  429. data/tracks/objective-c/docs/EXERCISE_README_INSERT.md +0 -15
  430. data/tracks/php/docs/EXERCISE_README_INSERT.md +0 -13
  431. data/tracks/rust/config/exercise-readme-insert.md +0 -31
  432. data/tracks/swift/docs/EXERCISE_README_INSERT.md +0 -6
@@ -1,5 +1,5 @@
1
1
  name: acronym
2
- version: 1.2.0.4
2
+ version: 1.3.0.5
3
3
 
4
4
  dependencies:
5
5
  - base
@@ -39,15 +39,11 @@ cases = [ Case { description = "basic"
39
39
  , input = "First In, First Out"
40
40
  , expected = "FIFO"
41
41
  }
42
- , Case { description = "all caps words"
43
- , input = "PHP: Hypertext Preprocessor"
44
- , expected = "PHP"
45
- }
46
- , Case { description = "non-acronym all caps word"
42
+ , Case { description = "all caps word"
47
43
  , input = "GNU Image Manipulation Program"
48
44
  , expected = "GIMP"
49
45
  }
50
- , Case { description = "hyphenated"
46
+ , Case { description = "punctuation without whitespace"
51
47
  , input = "Complementary metal-oxide semiconductor"
52
48
  , expected = "CMOS"
53
49
  }
@@ -1,5 +1,5 @@
1
1
  name: anagram
2
- version: 1.1.0.5
2
+ version: 1.2.0.6
3
3
 
4
4
  dependencies:
5
5
  - base
@@ -35,16 +35,6 @@ cases = [ Case { description = "no matches"
35
35
  , candidates = [ "hello", "world", "zombies", "pants"]
36
36
  , expected = []
37
37
  }
38
- , Case { description = "detects simple anagram"
39
- , subject = "ant"
40
- , candidates = ["tan", "stand", "at"]
41
- , expected = ["tan"]
42
- }
43
- , Case { description = "does not detect false positives"
44
- , subject = "galea"
45
- , candidates = ["eagle"]
46
- , expected = []
47
- }
48
38
  , Case { description = "detects two anagrams"
49
39
  , subject = "master"
50
40
  , candidates = ["stream", "pigeon", "maters"]
@@ -65,11 +55,6 @@ cases = [ Case { description = "no matches"
65
55
  , candidates = ["gallery", "ballerina", "regally", "clergy", "largely", "leading"]
66
56
  , expected = ["gallery", "regally", "largely"]
67
57
  }
68
- , Case { description = "does not detect identical words"
69
- , subject = "corn"
70
- , candidates = ["corn", "dark", "Corn", "rank", "CORN", "cron", "park"]
71
- , expected = ["cron"]
72
- }
73
58
  , Case { description = "does not detect non-anagrams with identical checksum"
74
59
  , subject = "mass"
75
60
  , candidates = ["last"]
@@ -90,11 +75,6 @@ cases = [ Case { description = "no matches"
90
75
  , candidates = ["cashregister", "Carthorse", "radishes"]
91
76
  , expected = ["Carthorse"]
92
77
  }
93
- , Case { description = "does not detect a word as its own anagram"
94
- , subject = "banana"
95
- , candidates = ["Banana"]
96
- , expected = []
97
- }
98
78
  , Case { description = "does not detect a anagram if the original word is repeated"
99
79
  , subject = "go"
100
80
  , candidates = ["go Go GO"]
@@ -1,5 +1,5 @@
1
1
  name: clock
2
- version: 1.0.1.3
2
+ version: 2.2.1.4
3
3
 
4
4
  dependencies:
5
5
  - base
@@ -29,6 +29,7 @@ specs = do
29
29
 
30
30
  describe "create" $ for_ createCases createTest
31
31
  describe "add" $ for_ addCases addTest
32
+ describe "sub" $ for_ subCases subTest
32
33
  describe "equal" $ for_ equalCases equalTest
33
34
 
34
35
  where
@@ -41,6 +42,10 @@ specs = do
41
42
  where
42
43
  assertion = toString (fromHourMin h m + m') `shouldBe` e
43
44
 
45
+ subTest (l, h, m, m', e) = it l assertion
46
+ where
47
+ assertion = toString (fromHourMin h m - m') `shouldBe` e
48
+
44
49
  equalTest (l, (h1, m1), (h2, m2), e) = it l assertion
45
50
  where
46
51
  assertion = fromHourMin h1 m1 == fromHourMin h2 m2 `shouldBe` e
@@ -74,15 +79,17 @@ specs = do
74
79
  , ("add more than two hours with carry" , 0, 45, 160, "03:25")
75
80
  , ("add across midnight" , 23, 59, 2, "00:01")
76
81
  , ("add more than one day (1500 min = 25 hrs)" , 5, 32, 1500, "06:32")
77
- , ("add more than two days" , 1, 1, 3500, "11:21")
78
- , ("subtract minutes" , 10, 3, -3, "10:00")
79
- , ("subtract to previous hour" , 10, 3, -30, "09:33")
80
- , ("subtract more than an hour" , 10, 3, -70, "08:53")
81
- , ("subtract across midnight" , 0, 3, -4, "23:59")
82
- , ("subtract more than two hours" , 0, 0, -160, "21:20")
83
- , ("subtract more than two hours with borrow" , 6, 15, -160, "03:35")
84
- , ("subtract more than one day (1500 min = 25 hrs)", 5, 32, -1500, "04:32")
85
- , ("subtract more than two days" , 2, 20, -3000, "00:20") ]
82
+ , ("add more than two days" , 1, 1, 3500, "11:21") ]
83
+
84
+ subCases =
85
+ [ ("subtract minutes" , 10, 3, 3, "10:00")
86
+ , ("subtract to previous hour" , 10, 3, 30, "09:33")
87
+ , ("subtract more than an hour" , 10, 3, 70, "08:53")
88
+ , ("subtract across midnight" , 0, 3, 4, "23:59")
89
+ , ("subtract more than two hours" , 0, 0, 160, "21:20")
90
+ , ("subtract more than two hours with borrow" , 6, 15, 160, "03:35")
91
+ , ("subtract more than one day (1500 min = 25 hrs)", 5, 32, 1500, "04:32")
92
+ , ("subtract more than two days" , 2, 20, 3000, "00:20") ]
86
93
 
87
94
  equalCases =
88
95
  [ ("clocks with same time" , (15, 37), ( 15, 37), True )
@@ -1,5 +1,5 @@
1
1
  name: complex-numbers
2
- version: 1.0.0.1
2
+ version: 1.2.0.2
3
3
 
4
4
  dependencies:
5
5
  - base
@@ -1,5 +1,5 @@
1
1
  name: custom-set
2
- version: 1.1.0.4
2
+ version: 1.3.0.5
3
3
 
4
4
  dependencies:
5
5
  - base
@@ -1,5 +1,5 @@
1
1
  name: hamming
2
- version: 2.0.1.5
2
+ version: 2.1.0.6
3
3
 
4
4
  dependencies:
5
5
  - base
@@ -1,5 +1,5 @@
1
1
  name: kindergarten-garden
2
- version: 1.0.0.3
2
+ version: 1.1.0.4
3
3
 
4
4
  dependencies:
5
5
  - base
@@ -1,5 +1,5 @@
1
1
  name: matrix
2
- version: 0.1.0.3
2
+ version: 1.0.0.4
3
3
 
4
4
  dependencies:
5
5
  - base
@@ -27,19 +27,31 @@ specs = do
27
27
  let intMatrix = fromString :: String -> Matrix Int
28
28
  let vector = Vector.fromList
29
29
 
30
- it "extract first row" $ do
31
- row 0 (intMatrix "1 2\n10 20") `shouldBe` vector [1, 2]
32
- row 0 (intMatrix "9 7\n8 6" ) `shouldBe` vector [9, 7]
33
-
34
- it "extract second row" $ do
35
- row 1 (intMatrix "9 8 7\n19 18 17") `shouldBe` vector [19, 18, 17]
36
- row 1 (intMatrix "1 4 9\n16 25 36") `shouldBe` vector [16, 25, 36]
37
-
38
- it "extract first column" $ do
39
- column 0 (intMatrix "1 2 3\n4 5 6\n7 8 9\n 8 7 6")
40
- `shouldBe` vector [1, 4, 7, 8]
41
- column 1 (intMatrix "89 1903 3\n18 3 1\n9 4 800")
42
- `shouldBe` vector [1903, 3, 4]
30
+ it "extract row from one number matrix" $
31
+ row 0 (intMatrix "1") `shouldBe` vector [1]
32
+
33
+ it "can extract row" $
34
+ row 1 (intMatrix "1 2\n3 4") `shouldBe` vector [3, 4]
35
+
36
+ it "extract row where numbers have different widths" $
37
+ row 1 (intMatrix "1 2\n10 20") `shouldBe` vector [10, 20]
38
+
39
+ it "can extract row from non-square matrix" $
40
+ row 2 (intMatrix "1 2 3\n4 5 6\n7 8 9\n8 7 6") `shouldBe` vector [7, 8, 9]
41
+
42
+ it "extract column from one number matrix" $
43
+ column 0 (intMatrix "1") `shouldBe` vector [1]
44
+
45
+ it "can extract column" $
46
+ column 2 (intMatrix "1 2 3\n4 5 6\n7 8 9") `shouldBe` vector [3, 6, 9]
47
+
48
+ it "can extract column from non-square matrix" $
49
+ column 2 (intMatrix "1 2 3\n4 5 6\n7 8 9\n 8 7 6") `shouldBe` vector [3, 6, 9, 6]
50
+
51
+ it "extract column where numbers have different widths" $
52
+ column 1 (intMatrix "89 1903 3\n18 3 1\n9 4 800") `shouldBe` vector [1903, 3, 4]
53
+
54
+ -- Track-specific tests:
43
55
 
44
56
  it "shape" $ do
45
57
  shape (intMatrix "" ) `shouldBe` (0, 0)
@@ -1,5 +1,5 @@
1
1
  name: ocr-numbers
2
- version: 1.0.0.3
2
+ version: 1.1.0.4
3
3
 
4
4
  dependencies:
5
5
  - base
@@ -1,5 +1,5 @@
1
1
  name: prime-factors
2
- version: 1.0.0.3
2
+ version: 1.1.0.4
3
3
 
4
4
  dependencies:
5
5
  - base
@@ -1,5 +1,5 @@
1
1
  name: queen-attack
2
- version: 2.0.0.4
2
+ version: 2.1.0.5
3
3
 
4
4
  dependencies:
5
5
  - base
@@ -1,5 +1,5 @@
1
1
  name: rail-fence-cipher
2
- version: 1.0.1.2
2
+ version: 1.1.0.3
3
3
 
4
4
  dependencies:
5
5
  - base
@@ -1,5 +1,5 @@
1
1
  name: raindrops
2
- version: 1.0.0.3
2
+ version: 1.1.0.4
3
3
 
4
4
  dependencies:
5
5
  - base
@@ -1,5 +1,5 @@
1
1
  name: robot-simulator
2
- version: 2.0.0.4
2
+ version: 2.2.0.5
3
3
 
4
4
  dependencies:
5
5
  - base
@@ -1,5 +1,5 @@
1
1
  name: roman-numerals
2
- version: 1.1.0.4
2
+ version: 1.2.0.5
3
3
 
4
4
  dependencies:
5
5
  - base
@@ -61,6 +61,10 @@ cases = [ Case { description = "1 is a single I"
61
61
  , number = 48
62
62
  , expected = Just "XLVIII"
63
63
  }
64
+ , Case { description = "49 is not 40 + 5 + 4 but rather 50 - 10 + 10 - 1"
65
+ , number = 49
66
+ , expected = Just "XLIX"
67
+ }
64
68
  , Case { description = "50 is a single L"
65
69
  , number = 59
66
70
  , expected = Just "LIX"
@@ -1,5 +1,5 @@
1
1
  name: run-length-encoding
2
- version: 1.0.0.3
2
+ version: 1.1.0.4
3
3
 
4
4
  dependencies:
5
5
  - base
@@ -1,5 +1,5 @@
1
1
  name: word-count
2
- version: 1.1.0.4
2
+ version: 1.2.0.5
3
3
 
4
4
  dependencies:
5
5
  - base
@@ -1110,7 +1110,6 @@
1110
1110
  "difficulty": 8,
1111
1111
  "slug": "complex-numbers",
1112
1112
  "topics": [
1113
- "classes",
1114
1113
  "floating_point_numbers",
1115
1114
  "mathematics"
1116
1115
  ],
@@ -37,5 +37,5 @@ in your terminal.
37
37
 
38
38
 
39
39
  ## Submitting Incomplete Solutions
40
- It's possible to submit an incomplete solution so you can see how others have completed the exercise.
41
40
 
41
+ It's possible to submit an incomplete solution so you can see how others have completed the exercise.
@@ -4,10 +4,28 @@
4
4
  {{- with .Hints }}
5
5
  {{ . }}
6
6
  {{ end }}
7
- {{- with .TrackInsert }}
8
- {{ . }}
9
- {{ end }}
10
- {{- with .Spec.Credits -}}
7
+ ## Setup
8
+
9
+ There are two different methods of getting set up to run the tests with Objective-C:
10
+
11
+ - Create an Xcode project with a test target which will run the tests.
12
+ - Use the ruby gem `objc` as a test runner utility.
13
+
14
+ Both are described in more detail here: http://exercism.io/languages/objective-c
15
+
16
+ ### Submitting Exercises
17
+
18
+ When submitting an exercise, make sure your solution file is in the same directory as the test code.
19
+
20
+ The submit command will look something like:
21
+
22
+ ```shell
23
+ exercism submit <path-to-exercism-workspace>/objective-c/{{ .Spec.Slug }}/{{ .Spec.MixedCaseName }}.m
24
+ ```
25
+
26
+ You can find the Exercism workspace by running `exercism debug` and looking for the line beginning
27
+ with Workspace.
28
+ {{ with .Spec.Credits }}
11
29
  ## Source
12
30
 
13
31
  {{ . }}
@@ -7,7 +7,6 @@ Techies love their TLA (Three Letter Acronyms)!
7
7
  Help generate some jargon by writing a program that converts a long name
8
8
  like Portable Network Graphics to its acronym (PNG).
9
9
 
10
-
11
10
  ## Setup
12
11
 
13
12
  There are two different methods of getting set up to run the tests with Objective-C:
@@ -17,12 +16,18 @@ There are two different methods of getting set up to run the tests with Objectiv
17
16
 
18
17
  Both are described in more detail here: http://exercism.io/languages/objective-c
19
18
 
20
-
21
19
  ### Submitting Exercises
22
20
 
23
21
  When submitting an exercise, make sure your solution file is in the same directory as the test code.
24
22
 
25
- For example, if you're submitting `Bob.m` for the Bob exercise, the submit command would be something like `exercism submit <path_to_exercism_dir>/objective-c/bob/Bob.m`.
23
+ The submit command will look something like:
24
+
25
+ ```shell
26
+ exercism submit <path-to-exercism-workspace>/objective-c/acronym/Acronym.m
27
+ ```
28
+
29
+ You can find the Exercism workspace by running `exercism debug` and looking for the line beginning
30
+ with Workspace.
26
31
 
27
32
  ## Source
28
33
 
@@ -6,6 +6,7 @@ Implement general base conversion. Given a number in base **a**,
6
6
  represented as a sequence of digits, convert it to base **b**.
7
7
 
8
8
  ## Note
9
+
9
10
  - Try to implement the conversion yourself.
10
11
  Do not use something else to perform the conversion for you.
11
12
 
@@ -28,7 +29,6 @@ The number 1120, *in base 3*, means:
28
29
 
29
30
  I think you got the idea!
30
31
 
31
-
32
32
  *Yes. Those three numbers above are exactly the same. Congratulations!*
33
33
 
34
34
  ## Setup
@@ -40,13 +40,18 @@ There are two different methods of getting set up to run the tests with Objectiv
40
40
 
41
41
  Both are described in more detail here: http://exercism.io/languages/objective-c
42
42
 
43
-
44
43
  ### Submitting Exercises
45
44
 
46
45
  When submitting an exercise, make sure your solution file is in the same directory as the test code.
47
46
 
48
- For example, if you're submitting `Bob.m` for the Bob exercise, the submit command would be something like `exercism submit <path_to_exercism_dir>/objective-c/bob/Bob.m`.
47
+ The submit command will look something like:
48
+
49
+ ```shell
50
+ exercism submit <path-to-exercism-workspace>/objective-c/all-your-base/AllYourBase.m
51
+ ```
49
52
 
53
+ You can find the Exercism workspace by running `exercism debug` and looking for the line beginning
54
+ with Workspace.
50
55
 
51
56
  ## Submitting Incomplete Solutions
52
57
  It's possible to submit an incomplete solution so you can see how others have completed the exercise.
@@ -29,7 +29,6 @@ allergens that score 256, 512, 1024, etc.). Your program should
29
29
  ignore those components of the score. For example, if the allergy
30
30
  score is 257, your program should only report the eggs (1) allergy.
31
31
 
32
-
33
32
  ## Setup
34
33
 
35
34
  There are two different methods of getting set up to run the tests with Objective-C:
@@ -39,12 +38,18 @@ There are two different methods of getting set up to run the tests with Objectiv
39
38
 
40
39
  Both are described in more detail here: http://exercism.io/languages/objective-c
41
40
 
42
-
43
41
  ### Submitting Exercises
44
42
 
45
43
  When submitting an exercise, make sure your solution file is in the same directory as the test code.
46
44
 
47
- For example, if you're submitting `Bob.m` for the Bob exercise, the submit command would be something like `exercism submit <path_to_exercism_dir>/objective-c/bob/Bob.m`.
45
+ The submit command will look something like:
46
+
47
+ ```shell
48
+ exercism submit <path-to-exercism-workspace>/objective-c/allergies/Allergies.m
49
+ ```
50
+
51
+ You can find the Exercism workspace by running `exercism debug` and looking for the line beginning
52
+ with Workspace.
48
53
 
49
54
  ## Source
50
55
 
@@ -15,12 +15,18 @@ There are two different methods of getting set up to run the tests with Objectiv
15
15
 
16
16
  Both are described in more detail here: http://exercism.io/languages/objective-c
17
17
 
18
-
19
18
  ### Submitting Exercises
20
19
 
21
20
  When submitting an exercise, make sure your solution file is in the same directory as the test code.
22
21
 
23
- For example, if you're submitting `Bob.m` for the Bob exercise, the submit command would be something like `exercism submit <path_to_exercism_dir>/objective-c/bob/Bob.m`.
22
+ The submit command will look something like:
23
+
24
+ ```shell
25
+ exercism submit <path-to-exercism-workspace>/objective-c/anagram/Anagram.m
26
+ ```
27
+
28
+ You can find the Exercism workspace by running `exercism debug` and looking for the line beginning
29
+ with Workspace.
24
30
 
25
31
  ## Source
26
32