trackler 2.2.1.19 → 2.2.1.20

Sign up to get free protection for your applications and to get access to all the features.
Files changed (96) hide show
  1. checksums.yaml +4 -4
  2. data/lib/trackler/version.rb +1 -1
  3. data/tracks/bash/config.json +11 -0
  4. data/tracks/bash/docs/ABOUT.md +5 -0
  5. data/tracks/bash/exercises/word-count/README.md +24 -0
  6. data/tracks/bash/exercises/word-count/example.awk +12 -0
  7. data/tracks/bash/exercises/word-count/example.sh +21 -0
  8. data/tracks/bash/exercises/word-count/word_count_test.sh +84 -0
  9. data/tracks/coffeescript/config/maintainers.json +5 -11
  10. data/tracks/csharp/.travis.yml +3 -0
  11. data/tracks/delphi/config/maintainers.json +1 -1
  12. data/tracks/ecmascript/config.json +108 -108
  13. data/tracks/elixir/exercises/phone-number/phone_number_test.exs +21 -1
  14. data/tracks/factor/docs/SNIPPET.txt +5 -0
  15. data/tracks/idris/docs/TESTS.md +7 -0
  16. data/tracks/java/config.json +47 -47
  17. data/tracks/javascript/config.json +103 -103
  18. data/tracks/julia/config.json +121 -121
  19. data/tracks/julia/docs/RESOURCES.md +1 -1
  20. data/tracks/julia/docs/SNIPPET.txt +8 -0
  21. data/tracks/objective-c/config.json +2 -3
  22. data/tracks/objective-c/exercises/rna-transcription/RNATranscriptionExample.m +11 -32
  23. data/tracks/ocaml/.travis-ci.sh +1 -1
  24. data/tracks/ocaml/.travis.yml +1 -1
  25. data/tracks/ocaml/README.md +1 -1
  26. data/tracks/ocaml/exercises/change/test.ml +24 -21
  27. data/tracks/ocaml/tools/test-generator/src/codegen.ml +3 -7
  28. data/tracks/ocaml/tools/test-generator/src/controller.ml +4 -5
  29. data/tracks/ocaml/tools/test-generator/src/languages.ml +4 -3
  30. data/tracks/ocaml/tools/test-generator/src/model.ml +1 -2
  31. data/tracks/ocaml/tools/test-generator/src/ocaml_special_cases.ml +19 -18
  32. data/tracks/ocaml/tools/test-generator/src/parser.ml +12 -17
  33. data/tracks/ocaml/tools/test-generator/src/purescript_special_cases.ml +11 -3
  34. data/tracks/ocaml/tools/test-generator/test/codegen_test.ml +2 -3
  35. data/tracks/ocaml/tools/test-generator/test/ocaml_special_cases_test.ml +12 -4
  36. data/tracks/ocaml/tools/test-generator/test/parser_test.ml +10 -10
  37. data/tracks/purescript/exercises/bob/test/Main.purs +5 -5
  38. data/tracks/ruby/bin/generate +1 -1
  39. data/tracks/ruby/docs/24pullrequests.md +1 -1
  40. data/tracks/ruby/exercises/all-your-base/all_your_base_test.rb +24 -24
  41. data/tracks/ruby/exercises/alphametics/.meta/generator/test_template.erb +1 -1
  42. data/tracks/ruby/exercises/bowling/.meta/generator/test_template.erb +1 -1
  43. data/tracks/ruby/exercises/bowling/bowling_test.rb +10 -10
  44. data/tracks/ruby/exercises/change/.meta/.version +1 -1
  45. data/tracks/ruby/exercises/change/.meta/solutions/change.rb +1 -1
  46. data/tracks/ruby/exercises/change/change_test.rb +7 -2
  47. data/tracks/ruby/exercises/collatz-conjecture/.meta/generator/collatz_conjecture_case.rb +1 -1
  48. data/tracks/ruby/exercises/connect/.meta/generator/test_template.erb +1 -1
  49. data/tracks/ruby/exercises/dominoes/.meta/generator/test_template.erb +1 -1
  50. data/tracks/ruby/exercises/hamming/.meta/generator/hamming_case.rb +5 -1
  51. data/tracks/ruby/exercises/hamming/hamming_test.rb +7 -7
  52. data/tracks/ruby/exercises/leap/.meta/generator/test_template.erb +1 -1
  53. data/tracks/ruby/exercises/pangram/.meta/.version +1 -1
  54. data/tracks/ruby/exercises/pangram/.meta/solutions/pangram.rb +1 -1
  55. data/tracks/ruby/exercises/pangram/pangram_test.rb +3 -3
  56. data/tracks/ruby/exercises/rna-transcription/rna_transcription_test.rb +4 -4
  57. data/tracks/ruby/exercises/roman-numerals/.meta/solutions/roman_numerals.rb +1 -1
  58. data/tracks/ruby/exercises/space-age/.meta/generator/test_template.erb +1 -1
  59. data/tracks/ruby/lib/generator/test_template.erb +1 -1
  60. data/tracks/ruby/lib/generator/underscore.rb +1 -1
  61. data/tracks/ruby/lib/helper.rb +4 -4
  62. data/tracks/ruby/test/fixtures/{xruby → ruby}/exercises/alpha-beta/.meta/generator/test_template.erb +1 -1
  63. data/tracks/ruby/test/fixtures/{xruby → ruby}/exercises/alpha/.meta/.version +0 -0
  64. data/tracks/ruby/test/fixtures/{xruby → ruby}/exercises/alpha/.meta/generator/alpha_case.rb +0 -0
  65. data/tracks/ruby/test/fixtures/{xruby → ruby}/exercises/alpha/.meta/generator/test_template.erb +1 -1
  66. data/tracks/ruby/test/fixtures/{xruby → ruby}/exercises/alpha/.meta/solutions/alpha.rb +0 -0
  67. data/tracks/ruby/test/fixtures/{xruby → ruby}/exercises/beta/.meta/.version +0 -0
  68. data/tracks/ruby/test/fixtures/{xruby → ruby}/exercises/beta/.meta/generator/beta_case.rb +0 -0
  69. data/tracks/ruby/test/fixtures/{xruby → ruby}/lib/generator/test_template.erb +1 -1
  70. data/tracks/ruby/test/generator/files/track_files_test.rb +4 -4
  71. data/tracks/ruby/test/generator/implementation_test.rb +1 -1
  72. data/tracks/ruby/test/generator/template_values_test.rb +1 -1
  73. data/tracks/scala/exercises/rail-fence-cipher/src/main/scala/{RailFenceCipher.scala → .keep} +0 -0
  74. data/tracks/scala/exercises/rail-fence-cipher/src/test/scala/RailFenceCipherTest.scala +16 -23
  75. data/tracks/scala/exercises/say/src/test/scala/SayTest.scala +20 -33
  76. data/tracks/scala/testgen/src/main/scala/RailFenceCipherTestGenerator.scala +9 -53
  77. data/tracks/scala/testgen/src/main/scala/SayTestGenerator.scala +50 -0
  78. data/tracks/sml/bin/generate +1 -1
  79. data/tracks/sml/config.json +30 -0
  80. data/tracks/sml/exercises/all-your-base/README.md +61 -0
  81. data/tracks/sml/exercises/all-your-base/all-your-base.sml +2 -0
  82. data/tracks/sml/exercises/all-your-base/example.sml +36 -0
  83. data/tracks/sml/exercises/all-your-base/test.sml +75 -0
  84. data/tracks/sml/exercises/all-your-base/testlib.sml +159 -0
  85. data/tracks/sml/exercises/difference-of-squares/example.sml +3 -6
  86. data/tracks/sml/exercises/list-ops/README.md +40 -0
  87. data/tracks/sml/exercises/list-ops/example.sml +34 -0
  88. data/tracks/sml/exercises/list-ops/list-ops.sml +23 -0
  89. data/tracks/sml/exercises/list-ops/test.sml +85 -0
  90. data/tracks/sml/exercises/list-ops/testlib.sml +159 -0
  91. data/tracks/sml/exercises/prime-factors/README.md +66 -0
  92. data/tracks/sml/exercises/prime-factors/example.sml +15 -0
  93. data/tracks/sml/exercises/prime-factors/prime-factors.sml +2 -0
  94. data/tracks/sml/exercises/prime-factors/test.sml +35 -0
  95. data/tracks/sml/exercises/prime-factors/testlib.sml +159 -0
  96. metadata +34 -11
@@ -5,18 +5,42 @@
5
5
  {
6
6
  "uuid": "a668410d-41aa-4710-a68f-54521da6486d",
7
7
  "slug": "hello-world",
8
- "core": false,
8
+ "core": true,
9
9
  "unlocked_by": null,
10
10
  "difficulty": 1,
11
11
  "topics": [
12
12
  "strings"
13
13
  ]
14
14
  },
15
+ {
16
+ "uuid": "8740c914-f008-4b6b-8e7d-7470e78e6a8e",
17
+ "slug": "leap",
18
+ "core": true,
19
+ "unlocked_by": null,
20
+ "difficulty": 1,
21
+ "topics": [
22
+ "control-flow (conditionals)",
23
+ "integers",
24
+ "arithmetics"
25
+ ]
26
+ },
27
+ {
28
+ "uuid": "54c24809-c6e7-419b-8ec3-6d8d128ca546",
29
+ "slug": "nucleotide-count",
30
+ "core": true,
31
+ "unlocked_by": null,
32
+ "difficulty": 1,
33
+ "topics": [
34
+ "chars",
35
+ "strings",
36
+ "control-flow (loops)"
37
+ ]
38
+ },
15
39
  {
16
40
  "uuid": "878e9897-c4b6-40ff-9034-8f2aedf07a91",
17
41
  "slug": "hamming",
18
42
  "core": false,
19
- "unlocked_by": null,
43
+ "unlocked_by": "nucleotide-count",
20
44
  "difficulty": 1,
21
45
  "topics": [
22
46
  "generators",
@@ -25,91 +49,107 @@
25
49
  ]
26
50
  },
27
51
  {
28
- "uuid": "c64e03cc-1952-4b2d-9a53-25c43187a4e6",
29
- "slug": "gigasecond",
52
+ "uuid": "0d5f865c-b704-445c-ac31-df34168f54aa",
53
+ "slug": "rna-transcription",
30
54
  "core": false,
31
- "unlocked_by": null,
55
+ "unlocked_by": "nucleotide-count",
32
56
  "difficulty": 1,
33
57
  "topics": [
34
- "dates"
58
+ "exception handling",
59
+ "strings",
60
+ "pattern matching",
61
+ "filtering"
35
62
  ]
36
63
  },
37
64
  {
38
- "uuid": "16550822-4751-4bb3-9e15-80361006e2d6",
39
- "slug": "difference-of-squares",
65
+ "uuid": "9474a13b-09c1-4e4d-90e3-1a14fde5eb62",
66
+ "slug": "bob",
40
67
  "core": false,
41
68
  "unlocked_by": null,
42
- "difficulty": 1,
69
+ "difficulty": 2,
43
70
  "topics": [
44
- "generators"
71
+ "strings",
72
+ "unicode",
73
+ "control-flow (if-else statements)"
45
74
  ]
46
75
  },
47
76
  {
48
- "uuid": "bf709fe6-d269-467a-a3da-5bbdaf674f91",
49
- "slug": "pascals-triangle",
50
- "core": false,
77
+ "uuid": "4bc9a4f8-fc4d-4e6b-a93c-07069bbc5bc9",
78
+ "slug": "pangram",
79
+ "core": true,
51
80
  "unlocked_by": null,
52
81
  "difficulty": 1,
53
82
  "topics": [
54
- "control-flow (conditionals)",
55
- "integers",
56
- "mathematics",
57
- "exceptions"
83
+ "arrays",
84
+ "strings",
85
+ "filtering"
58
86
  ]
59
87
  },
60
88
  {
61
- "uuid": "54c24809-c6e7-419b-8ec3-6d8d128ca546",
62
- "slug": "nucleotide-count",
89
+ "uuid": "d2cb1621-2a2e-4791-a6b6-fdbca74a5583",
90
+ "slug": "anagram",
63
91
  "core": false,
64
- "unlocked_by": null,
65
- "difficulty": 1,
92
+ "unlocked_by": "pangram",
93
+ "difficulty": 2,
66
94
  "topics": [
67
- "chars",
95
+ "control-flow (loops)",
96
+ "arrays",
68
97
  "strings",
69
- "control-flow (loops)"
98
+ "sorting",
99
+ "filtering"
70
100
  ]
71
101
  },
72
102
  {
73
- "uuid": "07875495-146f-44a3-b13a-e8e74a37b87d",
74
- "slug": "word-count",
75
- "core": false,
103
+ "uuid": "79ea05f1-3f27-4b92-bc47-0cebcd8d5a6f",
104
+ "slug": "rotational-cipher",
105
+ "core": true,
76
106
  "unlocked_by": null,
77
- "difficulty": 1,
107
+ "difficulty": 2,
78
108
  "topics": [
79
- "control-flow (loops)",
80
- "arrays",
109
+ "string literals",
110
+ "metaprogramming",
81
111
  "strings"
82
112
  ]
83
113
  },
84
114
  {
85
- "uuid": "0d5f865c-b704-445c-ac31-df34168f54aa",
86
- "slug": "rna-transcription",
115
+ "uuid": "a4638670-941d-4213-8407-d9ebba70bd42",
116
+ "slug": "atbash-cipher",
87
117
  "core": false,
88
- "unlocked_by": null,
118
+ "unlocked_by": "rotational-cipher",
89
119
  "difficulty": 1,
90
120
  "topics": [
91
- "exception handling",
92
121
  "strings",
93
- "pattern matching",
94
- "filtering"
122
+ "control-flow (conditionals)",
123
+ "control-flow (loops)"
95
124
  ]
96
125
  },
97
126
  {
98
- "uuid": "8740c914-f008-4b6b-8e7d-7470e78e6a8e",
99
- "slug": "leap",
100
- "core": false,
127
+ "uuid": "16550822-4751-4bb3-9e15-80361006e2d6",
128
+ "slug": "difference-of-squares",
129
+ "core": true,
101
130
  "unlocked_by": null,
102
131
  "difficulty": 1,
132
+ "topics": [
133
+ "generators"
134
+ ]
135
+ },
136
+ {
137
+ "uuid": "bf709fe6-d269-467a-a3da-5bbdaf674f91",
138
+ "slug": "pascals-triangle",
139
+ "core": false,
140
+ "unlocked_by": "difference-of-squares",
141
+ "difficulty": 1,
103
142
  "topics": [
104
143
  "control-flow (conditionals)",
105
144
  "integers",
106
- "mathematics"
145
+ "mathematics",
146
+ "exceptions"
107
147
  ]
108
148
  },
109
149
  {
110
150
  "uuid": "7a083573-2c68-47cc-8bc8-c0e483cf0e50",
111
151
  "slug": "raindrops",
112
- "core": false,
152
+ "core": true,
113
153
  "unlocked_by": null,
114
154
  "difficulty": 1,
115
155
  "topics": [
@@ -122,7 +162,7 @@
122
162
  "uuid": "5feec698-0bf8-4308-9f72-2cecaab5e75e",
123
163
  "slug": "scrabble-score",
124
164
  "core": false,
125
- "unlocked_by": null,
165
+ "unlocked_by": "nucleotide-count",
126
166
  "difficulty": 1,
127
167
  "topics": [
128
168
  "control-flow (loops)",
@@ -132,34 +172,34 @@
132
172
  ]
133
173
  },
134
174
  {
135
- "uuid": "cc08d672-9c58-4e7a-bfb7-344cbad811f7",
136
- "slug": "luhn",
175
+ "uuid": "07875495-146f-44a3-b13a-e8e74a37b87d",
176
+ "slug": "word-count",
137
177
  "core": false,
138
- "unlocked_by": null,
178
+ "unlocked_by": "nucleotide-count",
139
179
  "difficulty": 1,
140
180
  "topics": [
141
- "strings",
142
- "arithmetics",
143
- "control-flow (conditionals)"
181
+ "control-flow (loops)",
182
+ "arrays",
183
+ "strings"
144
184
  ]
145
185
  },
146
186
  {
147
- "uuid": "a4638670-941d-4213-8407-d9ebba70bd42",
148
- "slug": "atbash-cipher",
187
+ "uuid": "cc08d672-9c58-4e7a-bfb7-344cbad811f7",
188
+ "slug": "luhn",
149
189
  "core": false,
150
- "unlocked_by": null,
190
+ "unlocked_by": "raindrops",
151
191
  "difficulty": 1,
152
192
  "topics": [
153
193
  "strings",
154
- "control-flow (conditionals)",
155
- "control-flow (loops)"
194
+ "arithmetics",
195
+ "control-flow (conditionals)"
156
196
  ]
157
197
  },
158
198
  {
159
199
  "uuid": "58c41643-971c-4199-a10f-7dc21093e5e3",
160
200
  "slug": "roman-numerals",
161
201
  "core": false,
162
- "unlocked_by": null,
202
+ "unlocked_by": "raindrops",
163
203
  "difficulty": 1,
164
204
  "topics": [
165
205
  "control-flow (loops)",
@@ -171,7 +211,7 @@
171
211
  "uuid": "19f9e7c4-f2a5-4636-b7b2-4e0a15977e01",
172
212
  "slug": "isogram",
173
213
  "core": false,
174
- "unlocked_by": null,
214
+ "unlocked_by": "pangram",
175
215
  "difficulty": 1,
176
216
  "topics": [
177
217
  "control-flow (loops)",
@@ -180,37 +220,11 @@
180
220
  "strings"
181
221
  ]
182
222
  },
183
- {
184
- "uuid": "d2cb1621-2a2e-4791-a6b6-fdbca74a5583",
185
- "slug": "anagram",
186
- "core": false,
187
- "unlocked_by": null,
188
- "difficulty": 2,
189
- "topics": [
190
- "control-flow (loops)",
191
- "arrays",
192
- "strings",
193
- "sorting",
194
- "filtering"
195
- ]
196
- },
197
- {
198
- "uuid": "4bc9a4f8-fc4d-4e6b-a93c-07069bbc5bc9",
199
- "slug": "pangram",
200
- "core": false,
201
- "unlocked_by": null,
202
- "difficulty": 1,
203
- "topics": [
204
- "arrays",
205
- "strings",
206
- "filtering"
207
- ]
208
- },
209
223
  {
210
224
  "uuid": "bccc00fa-811c-4bf9-8e55-07a0d0affb08",
211
225
  "slug": "etl",
212
226
  "core": false,
213
- "unlocked_by": null,
227
+ "unlocked_by": "scrabble-score",
214
228
  "difficulty": 2,
215
229
  "topics": [
216
230
  "arrays",
@@ -222,7 +236,7 @@
222
236
  "uuid": "43f1dc63-0412-9a80-49ba-b620f4bbfccac2731e4",
223
237
  "slug": "collatz-conjecture",
224
238
  "core": false,
225
- "unlocked_by": null,
239
+ "unlocked_by": "difference-of-squares",
226
240
  "difficulty": 2,
227
241
  "topics": [
228
242
  "mathematics",
@@ -230,23 +244,11 @@
230
244
  "control-flow (if-else statements)"
231
245
  ]
232
246
  },
233
- {
234
- "uuid": "9474a13b-09c1-4e4d-90e3-1a14fde5eb62",
235
- "slug": "bob",
236
- "core": false,
237
- "unlocked_by": null,
238
- "difficulty": 2,
239
- "topics": [
240
- "strings",
241
- "unicode",
242
- "control-flow (if-else statements)"
243
- ]
244
- },
245
247
  {
246
248
  "uuid": "5e3b376a-06ab-442f-8d18-710db7778db6",
247
249
  "slug": "sieve",
248
250
  "core": false,
249
- "unlocked_by": null,
251
+ "unlocked_by": "difference-of-squares",
250
252
  "difficulty": 2,
251
253
  "topics": [
252
254
  "control-flow (loops)",
@@ -260,7 +262,7 @@
260
262
  "uuid": "c09ed7ec-fa7c-4f6a-994f-3d3eb7f22df4",
261
263
  "slug": "trinary",
262
264
  "core": false,
263
- "unlocked_by": null,
265
+ "unlocked_by": "secret-handshake",
264
266
  "difficulty": 2,
265
267
  "topics": [
266
268
  "arrays",
@@ -270,34 +272,34 @@
270
272
  ]
271
273
  },
272
274
  {
273
- "uuid": "e5a6d640-cd76-4453-8247-fd34ffed4fe5",
274
- "slug": "transpose",
275
- "core": false,
275
+ "uuid": "d2c85375-c0e7-4e04-88f1-08736e5afa04",
276
+ "slug": "secret-handshake",
277
+ "core": true,
276
278
  "unlocked_by": null,
277
279
  "difficulty": 2,
278
280
  "topics": [
279
- "control-flow (loops)",
280
- "control-flow (conditionals)",
281
281
  "arrays",
282
- "strings"
282
+ "filtering",
283
+ "mathematics"
283
284
  ]
284
285
  },
285
286
  {
286
- "uuid": "d2c85375-c0e7-4e04-88f1-08736e5afa04",
287
- "slug": "secret-handshake",
287
+ "uuid": "e5a6d640-cd76-4453-8247-fd34ffed4fe5",
288
+ "slug": "transpose",
288
289
  "core": false,
289
290
  "unlocked_by": null,
290
291
  "difficulty": 2,
291
292
  "topics": [
293
+ "control-flow (loops)",
294
+ "control-flow (conditionals)",
292
295
  "arrays",
293
- "filtering",
294
- "mathematics"
296
+ "strings"
295
297
  ]
296
298
  },
297
299
  {
298
300
  "uuid": "7cb2d96a-4707-4cec-9ead-313fcb5fbb94",
299
301
  "slug": "robot-name",
300
- "core": false,
302
+ "core": true,
301
303
  "unlocked_by": null,
302
304
  "difficulty": 2,
303
305
  "topics": [
@@ -306,10 +308,20 @@
306
308
  "randomness"
307
309
  ]
308
310
  },
311
+ {
312
+ "uuid": "c64e03cc-1952-4b2d-9a53-25c43187a4e6",
313
+ "slug": "gigasecond",
314
+ "core": false,
315
+ "unlocked_by": null,
316
+ "difficulty": 1,
317
+ "topics": [
318
+ "dates"
319
+ ]
320
+ },
309
321
  {
310
322
  "uuid": "eca7e62c-7bbf-436c-8011-2920cb2ab1c1",
311
323
  "slug": "complex-numbers",
312
- "core": false,
324
+ "core": true,
313
325
  "unlocked_by": null,
314
326
  "difficulty": 2,
315
327
  "topics": [
@@ -320,22 +332,10 @@
320
332
  "function extension"
321
333
  ]
322
334
  },
323
- {
324
- "uuid": "79ea05f1-3f27-4b92-bc47-0cebcd8d5a6f",
325
- "slug": "rotational-cipher",
326
- "core": false,
327
- "unlocked_by": null,
328
- "difficulty": 2,
329
- "topics": [
330
- "string literals",
331
- "metaprogramming",
332
- "strings"
333
- ]
334
- },
335
335
  {
336
336
  "uuid": "b47377f7-84af-4a10-83ef-c2444a4f8940",
337
337
  "slug": "custom-set",
338
- "core": false,
338
+ "core": true,
339
339
  "unlocked_by": null,
340
340
  "difficulty": 5,
341
341
  "topics": [
@@ -1,4 +1,4 @@
1
- - [Julia Style Guide](docs.julialang.org/en/stable/manual/style-guide/): Guide on how to write idiomatic Julia code.
1
+ - [Julia Style Guide](http://docs.julialang.org/en/stable/manual/style-guide/): Guide on how to write idiomatic Julia code.
2
2
  - [Performance Tips](http://docs.julialang.org/en/stable/manual/performance-tips/): Techniques to speed up your programs.
3
3
  - [Julia Manual](http://docs.julialang.org/en/stable/manual/introduction/): Additional explanations and examples.
4
4
  - [juliabloggers.com](http://www.juliabloggers.com/): Aggregator of Julia blog posts.
@@ -0,0 +1,8 @@
1
+ function julia_set(z, c)
2
+ n = 0
3
+ while abs2(z) < 4
4
+ z = z^2 + c
5
+ n += 1
6
+ end
7
+ n
8
+ end
@@ -465,12 +465,11 @@
465
465
  "slug": "rna-transcription",
466
466
  "core": false,
467
467
  "unlocked_by": null,
468
- "difficulty": 8,
468
+ "difficulty": 2,
469
469
  "topics": [
470
470
  "Strings",
471
471
  "Conditionals",
472
- "Maps",
473
- "RegularExpressions",
472
+ "Loops",
474
473
  "Transforming"
475
474
  ]
476
475
  }