trackler 2.2.1.51 → 2.2.1.52

Sign up to get free protection for your applications and to get access to all the features.
Files changed (66) hide show
  1. checksums.yaml +4 -4
  2. data/lib/trackler/version.rb +1 -1
  3. data/problem-specifications/exercises/saddle-points/description.md +1 -1
  4. data/tracks/cfml/.gitattributes +19 -0
  5. data/tracks/cfml/config.json +180 -186
  6. data/tracks/cfml/tasks/FormatConfig.cfc +26 -0
  7. data/tracks/cfml/tasks/ScaffoldExercise.cfc +1 -1
  8. data/tracks/common-lisp/config.json +26 -9
  9. data/tracks/common-lisp/exercises/acronym/README.md +61 -0
  10. data/tracks/common-lisp/exercises/acronym/acronym-test.lisp +48 -0
  11. data/tracks/common-lisp/exercises/acronym/acronym.lisp +6 -0
  12. data/tracks/common-lisp/exercises/acronym/example.lisp +24 -0
  13. data/tracks/common-lisp/exercises/isogram/README.md +65 -0
  14. data/tracks/common-lisp/exercises/isogram/example.lisp +18 -0
  15. data/tracks/common-lisp/exercises/isogram/isogram-test.lisp +39 -0
  16. data/tracks/common-lisp/exercises/isogram/isogram.lisp +8 -0
  17. data/tracks/delphi/exercises/etl/README.md +1 -1
  18. data/tracks/delphi/exercises/rna-transcription/README.md +1 -1
  19. data/tracks/delphi/exercises/saddle-points/README.md +1 -1
  20. data/tracks/fsharp/exercises/all-your-base/AllYourBaseTest.fs +21 -21
  21. data/tracks/fsharp/exercises/kindergarten-garden/Example.fs +13 -14
  22. data/tracks/fsharp/exercises/kindergarten-garden/KindergartenGarden.fs +1 -3
  23. data/tracks/fsharp/exercises/kindergarten-garden/KindergartenGardenTest.fs +9 -41
  24. data/tracks/fsharp/exercises/phone-number/PhoneNumberTest.fs +12 -12
  25. data/tracks/fsharp/exercises/rna-transcription/RnaTranscriptionTest.fs +8 -8
  26. data/tracks/fsharp/exercises/robot-simulator/RobotSimulator.fs +3 -0
  27. data/tracks/fsharp/exercises/robot-simulator/RobotSimulatorTest.fs +129 -26
  28. data/tracks/fsharp/generators/Common.fs +10 -0
  29. data/tracks/fsharp/generators/Exercise.fs +5 -1
  30. data/tracks/fsharp/generators/Generators.fs +122 -33
  31. data/tracks/fsharp/generators/Output.fs +6 -1
  32. data/tracks/haskell/exercises/crypto-square/README.md +6 -4
  33. data/tracks/haskell/exercises/kindergarten-garden/README.md +10 -10
  34. data/tracks/haskell/exercises/saddle-points/README.md +1 -1
  35. data/tracks/haskell/exercises/space-age/README.md +1 -1
  36. data/tracks/java/config.json +8 -2
  37. data/tracks/java/exercises/queen-attack/.meta/src/reference/java/BoardCoordinate.java +12 -12
  38. data/tracks/java/exercises/queen-attack/.meta/src/reference/java/QueenAttackCalculator.java +14 -14
  39. data/tracks/java/exercises/queen-attack/.meta/version +1 -1
  40. data/tracks/java/exercises/queen-attack/src/test/java/QueenAttackCalculatorTest.java +11 -11
  41. data/tracks/javascript/exercises/prime-factors/example.js +10 -9
  42. data/tracks/julia/config.json +12 -0
  43. data/tracks/julia/exercises/run-length-encoding/README.md +31 -0
  44. data/tracks/julia/exercises/run-length-encoding/example.jl +22 -0
  45. data/tracks/julia/exercises/run-length-encoding/run-length-encoding.jl +7 -0
  46. data/tracks/julia/exercises/run-length-encoding/runtests.jl +29 -0
  47. data/tracks/objective-c/README.md +79 -1
  48. data/tracks/ocaml/config.json +430 -433
  49. data/tracks/ocaml/config/maintainers.json +11 -11
  50. data/tracks/php/config.json +16 -0
  51. data/tracks/php/exercises/all-your-base/README.md +31 -0
  52. data/tracks/php/exercises/all-your-base/all-your-base_test.php +135 -0
  53. data/tracks/php/exercises/all-your-base/example.php +27 -0
  54. data/tracks/php/exercises/series/README.md +21 -0
  55. data/tracks/php/exercises/series/example.php +15 -0
  56. data/tracks/php/exercises/series/series_test.php +64 -0
  57. data/tracks/python/README.md +1 -1
  58. data/tracks/python/config.json +4 -1
  59. data/tracks/python/exercises/forth/forth.py +4 -0
  60. data/tracks/python/exercises/forth/forth_test.py +1 -1
  61. data/tracks/python/exercises/markdown/example.py +1 -1
  62. data/tracks/python/exercises/markdown/markdown_test.py +3 -3
  63. data/tracks/ruby/exercises/two-bucket/.meta/.version +1 -1
  64. data/tracks/ruby/exercises/two-bucket/.meta/solutions/two_bucket.rb +23 -3
  65. data/tracks/ruby/exercises/two-bucket/two_bucket_test.rb +4 -4
  66. metadata +22 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 35de96c4a4f0db40f012783c937595383b5bbad3
4
- data.tar.gz: 2f81a8e534f46a08afa33a223cb119d6c82636a5
3
+ metadata.gz: 2ba58003417ff7756c00e61bca5725599d51f36a
4
+ data.tar.gz: b224d56deaee8862e20e456a5431c77c84761ce7
5
5
  SHA512:
6
- metadata.gz: cd00323b3a0cf0762566ec4724808157f1840137c150d00dc18d07656163dbcc08a563163e85c55b9eb6db325e32d74237908f5dc15ed04fe7814f6bd901916c
7
- data.tar.gz: 16599ba449114a7c11af9622e7cff12f42fcd32f2f56a5635757dff089198ec0f6938dd3f036fdebf67d34aff402d937486010e40c1498f4a1a41b081b37df32
6
+ metadata.gz: 228596af71741d35e867a78201c19b7497a186a65c85b4cf1656de33d81d722f0bff10436e7cdf4eb6c9841eb0c6bde13440fb05bcf34257ed59904e2397dd5e
7
+ data.tar.gz: 2c111f16d5aba64c6f455ef360626fef978c6b3341fa616a54778e112000f2e6eaa5ff78141d643151a74c7742041422d70f30086c92672ec66a38af90203cb7
@@ -1,3 +1,3 @@
1
1
  module Trackler
2
- VERSION = "2.2.1.51"
2
+ VERSION = "2.2.1.52"
3
3
  end
@@ -13,7 +13,7 @@ So say you have a matrix like so:
13
13
  It has a saddle point at (1, 0).
14
14
 
15
15
  It's called a "saddle point" because it is greater than or equal to
16
- every element in its row and the less than or equal to every element in
16
+ every element in its row and less than or equal to every element in
17
17
  its column.
18
18
 
19
19
  A matrix may have zero or more saddle points.
@@ -0,0 +1,19 @@
1
+ # Auto detect text files and perform LF normalization
2
+ * text=auto
3
+
4
+ # Custom for Visual Studio
5
+ *.cs diff=csharp
6
+
7
+ # Standard to msysgit
8
+ *.doc diff=astextplain
9
+ *.DOC diff=astextplain
10
+ *.docx diff=astextplain
11
+ *.DOCX diff=astextplain
12
+ *.dot diff=astextplain
13
+ *.DOT diff=astextplain
14
+ *.pdf diff=astextplain
15
+ *.PDF diff=astextplain
16
+ *.rtf diff=astextplain
17
+ *.RTF diff=astextplain
18
+
19
+ config.json diff=astextplain eol=lf
@@ -1,187 +1,181 @@
1
- {
2
- "active":true,
3
- "blurb":"CFML (ColdFusion Markup Language) is an open source and commercial (JIT) compiled dynamic and loosely typed JVM scripting language that embodies classic OO, and functional programming, making it easy to learn, fun to use. CFML brings the power and scalability of the J2EE ecosystem but without the boilerplate of Java.",
4
- "exercises":[
5
- {
6
- "difficulty":1,
7
- "slug":"hello-world",
8
- "topics":null,
9
- "uuid":"ab04a390-0969-4a17-8081-c852b23ed88c"
10
- },
11
- {
12
- "core":false,
13
- "difficulty":1,
14
- "slug":"leap",
15
- "topics":null,
16
- "unlocked_by":null,
17
- "uuid":"03a98e5b-03b7-45e5-a580-611ef5dab4e5"
18
- },
19
- {
20
- "difficulty":1,
21
- "slug":"raindrops",
22
- "topics":null,
23
- "uuid":"9273C0A7-CB7E-4F3F-8993-F1621CE1F700"
24
- },
25
- {
26
- "difficulty":1,
27
- "slug":"scrabble-score",
28
- "topics":null,
29
- "uuid":"1065F8DF-E6C6-4473-A633-4FA4B49A5314"
30
- },
31
- {
32
- "difficulty":1,
33
- "slug":"difference-of-squares",
34
- "topics":null,
35
- "uuid":"4E91AD44-8F3D-40DC-899E-253C91B134F6"
36
- },
37
- {
38
- "difficulty":1,
39
- "slug":"secret-handshake",
40
- "topics":null,
41
- "uuid":"0AC79782-B370-4954-8455-6300A734E1B8"
42
- },
43
- {
44
- "difficulty":1,
45
- "slug":"space-age",
46
- "topics":null,
47
- "uuid":"0B14F23A-DAD4-4965-8ABD-8A107DFD6C00"
48
- },
49
- {
50
- "difficulty":1,
51
- "slug":"acronym",
52
- "topics":null,
53
- "uuid":"9894F2F7-2DBE-4001-885B-FD2C029C6731"
54
- },
55
- {
56
- "difficulty":1,
57
- "slug":"rna-transcription",
58
- "topics":null,
59
- "uuid":"11C48AFF-4A54-4B3C-AF5E-53048D4BA98B"
60
- },
61
- {
62
- "difficulty":1,
63
- "slug":"pangram",
64
- "topics":null,
65
- "uuid":"113A2FF7-E72E-49DD-A2CF-0EB25894707D"
66
- },
67
- {
68
- "difficulty":1,
69
- "slug":"hamming",
70
- "topics":null,
71
- "uuid":"4063A554-424C-4173-81EE-FEAC7CC51E8A"
72
- },
73
- {
74
- "difficulty":1,
75
- "slug":"gigasecond",
76
- "topics":null,
77
- "uuid":"00B82E7F-804C-4401-BB7F-0565DEA02567"
78
- },
79
- {
80
- "difficulty":1,
81
- "slug":"sum-of-multiples",
82
- "topics":null,
83
- "uuid":"C6F38ACB-A6BD-41EE-A2F8-A9680B3F61D2"
84
- },
85
- {
86
- "difficulty":1,
87
- "slug":"luhn",
88
- "topics":null,
89
- "uuid":"685ADB7B-1DC9-4409-993D-51034DF6F744"
90
- },
91
- {
92
- "difficulty":1,
93
- "slug":"triangle",
94
- "topics":null,
95
- "uuid":"8D0FA71A-3314-432E-BF1F-E6A5F823FC36"
96
- },
97
- {
98
- "difficulty":1,
99
- "slug":"largest-series-product",
100
- "topics":null,
101
- "uuid":"A35C9BE1-F26A-40C8-8C05-99C33C552E6F"
102
- },
103
- {
104
- "difficulty":1,
105
- "slug":"grains",
106
- "topics":null,
107
- "uuid":"E25686EE-B888-4533-86C2-5A5D96F5270E"
108
- },
109
- {
110
- "difficulty":1,
111
- "slug":"atbash-cipher",
112
- "topics":null,
113
- "uuid":"C35391BD-900F-4756-8DFE-A96EA04250F8"
114
- },
115
- {
116
- "difficulty":1,
117
- "slug":"nth-prime",
118
- "topics":null,
119
- "uuid":"15151E41-195C-40DD-B296-C2C19B38CAEA"
120
- },
121
- {
122
- "difficulty":1,
123
- "slug":"pig-latin",
124
- "topics":null,
125
- "uuid":"3FDDA0E3-AE90-4834-B6DC-A5E367A5A029"
126
- },
127
- {
128
- "difficulty":1,
129
- "slug":"flatten-array",
130
- "topics":null,
131
- "uuid":"B0E72A09-49E2-4973-BFF4-88C678F4BE55"
132
- },
133
- {
134
- "difficulty":1,
135
- "slug":"saddle-points",
136
- "topics":null,
137
- "uuid":"063C4BB9-3280-4C69-B164-237732AE00EF"
138
- },
139
- {
140
- "difficulty":1,
141
- "slug":"diamond",
142
- "topics":null,
143
- "uuid":"DECA4C79-DA5D-43A8-90B8-3A5BE73EAFF5"
144
- },
145
- {
146
- "difficulty":1,
147
- "slug":"isogram",
148
- "topics":null,
149
- "uuid":"FC8922A3-E29D-451D-9947-A2781C0FF787"
150
- },
151
- {
152
- "difficulty":1,
153
- "slug":"bob",
154
- "topics":null,
155
- "uuid":"12BBECF4-93EB-40F2-AC13-8CF28B550F0A"
156
- },
157
- {
158
- "difficulty":1,
159
- "slug":"word-count",
160
- "topics":null,
161
- "uuid":"C61E97BE-6C66-4F1F-87ED-D21C4ED2A8E2"
162
- },
163
- {
164
- "difficulty":5,
165
- "slug":"markdown",
166
- "uuid":"4594B907-8080-4A23-AD06-BE85FC28D088",
167
- "topics":[
168
-
169
- ]
170
- },
171
- {
172
- "difficulty":1,
173
- "slug":"anagram",
174
- "uuid":"339BACAD-F08F-48EE-8DE9-234D4399B49B",
175
- "topics":[
176
-
177
- ]
178
- }
179
- ],
180
- "foregone":[
181
-
182
- ],
183
- "ignore_pattern":"Solution",
184
- "language":"CFML",
185
- "solution_pattern":"Solution.cfc",
186
- "test_pattern":"Test.cfc"
1
+ {
2
+ "active": true,
3
+ "blurb": "CFML (ColdFusion Markup Language) is an open source and commercial (JIT) compiled dynamic and loosely typed JVM scripting language that embodies classic OO, and functional programming, making it easy to learn, fun to use. CFML brings the power and scalability of the J2EE ecosystem but without the boilerplate of Java.",
4
+ "exercises": [
5
+ {
6
+ "difficulty": 1,
7
+ "slug": "hello-world",
8
+ "topics": null,
9
+ "uuid": "ab04a390-0969-4a17-8081-c852b23ed88c"
10
+ },
11
+ {
12
+ "core": false,
13
+ "difficulty": 1,
14
+ "slug": "leap",
15
+ "topics": null,
16
+ "unlocked_by": null,
17
+ "uuid": "03a98e5b-03b7-45e5-a580-611ef5dab4e5"
18
+ },
19
+ {
20
+ "difficulty": 1,
21
+ "slug": "raindrops",
22
+ "topics": null,
23
+ "uuid": "9273C0A7-CB7E-4F3F-8993-F1621CE1F700"
24
+ },
25
+ {
26
+ "difficulty": 1,
27
+ "slug": "scrabble-score",
28
+ "topics": null,
29
+ "uuid": "1065F8DF-E6C6-4473-A633-4FA4B49A5314"
30
+ },
31
+ {
32
+ "difficulty": 1,
33
+ "slug": "difference-of-squares",
34
+ "topics": null,
35
+ "uuid": "4E91AD44-8F3D-40DC-899E-253C91B134F6"
36
+ },
37
+ {
38
+ "difficulty": 1,
39
+ "slug": "secret-handshake",
40
+ "topics": null,
41
+ "uuid": "0AC79782-B370-4954-8455-6300A734E1B8"
42
+ },
43
+ {
44
+ "difficulty": 1,
45
+ "slug": "space-age",
46
+ "topics": null,
47
+ "uuid": "0B14F23A-DAD4-4965-8ABD-8A107DFD6C00"
48
+ },
49
+ {
50
+ "difficulty": 1,
51
+ "slug": "acronym",
52
+ "topics": null,
53
+ "uuid": "9894F2F7-2DBE-4001-885B-FD2C029C6731"
54
+ },
55
+ {
56
+ "difficulty": 1,
57
+ "slug": "rna-transcription",
58
+ "topics": null,
59
+ "uuid": "11C48AFF-4A54-4B3C-AF5E-53048D4BA98B"
60
+ },
61
+ {
62
+ "difficulty": 1,
63
+ "slug": "pangram",
64
+ "topics": null,
65
+ "uuid": "113A2FF7-E72E-49DD-A2CF-0EB25894707D"
66
+ },
67
+ {
68
+ "difficulty": 1,
69
+ "slug": "hamming",
70
+ "topics": null,
71
+ "uuid": "4063A554-424C-4173-81EE-FEAC7CC51E8A"
72
+ },
73
+ {
74
+ "difficulty": 1,
75
+ "slug": "gigasecond",
76
+ "topics": null,
77
+ "uuid": "00B82E7F-804C-4401-BB7F-0565DEA02567"
78
+ },
79
+ {
80
+ "difficulty": 1,
81
+ "slug": "sum-of-multiples",
82
+ "topics": null,
83
+ "uuid": "C6F38ACB-A6BD-41EE-A2F8-A9680B3F61D2"
84
+ },
85
+ {
86
+ "difficulty": 1,
87
+ "slug": "luhn",
88
+ "topics": null,
89
+ "uuid": "685ADB7B-1DC9-4409-993D-51034DF6F744"
90
+ },
91
+ {
92
+ "difficulty": 1,
93
+ "slug": "triangle",
94
+ "topics": null,
95
+ "uuid": "8D0FA71A-3314-432E-BF1F-E6A5F823FC36"
96
+ },
97
+ {
98
+ "difficulty": 1,
99
+ "slug": "largest-series-product",
100
+ "topics": null,
101
+ "uuid": "A35C9BE1-F26A-40C8-8C05-99C33C552E6F"
102
+ },
103
+ {
104
+ "difficulty": 1,
105
+ "slug": "grains",
106
+ "topics": null,
107
+ "uuid": "E25686EE-B888-4533-86C2-5A5D96F5270E"
108
+ },
109
+ {
110
+ "difficulty": 1,
111
+ "slug": "atbash-cipher",
112
+ "topics": null,
113
+ "uuid": "C35391BD-900F-4756-8DFE-A96EA04250F8"
114
+ },
115
+ {
116
+ "difficulty": 1,
117
+ "slug": "nth-prime",
118
+ "topics": null,
119
+ "uuid": "15151E41-195C-40DD-B296-C2C19B38CAEA"
120
+ },
121
+ {
122
+ "difficulty": 1,
123
+ "slug": "pig-latin",
124
+ "topics": null,
125
+ "uuid": "3FDDA0E3-AE90-4834-B6DC-A5E367A5A029"
126
+ },
127
+ {
128
+ "difficulty": 1,
129
+ "slug": "flatten-array",
130
+ "topics": null,
131
+ "uuid": "B0E72A09-49E2-4973-BFF4-88C678F4BE55"
132
+ },
133
+ {
134
+ "difficulty": 1,
135
+ "slug": "saddle-points",
136
+ "topics": null,
137
+ "uuid": "063C4BB9-3280-4C69-B164-237732AE00EF"
138
+ },
139
+ {
140
+ "difficulty": 1,
141
+ "slug": "diamond",
142
+ "topics": null,
143
+ "uuid": "DECA4C79-DA5D-43A8-90B8-3A5BE73EAFF5"
144
+ },
145
+ {
146
+ "difficulty": 1,
147
+ "slug": "isogram",
148
+ "topics": null,
149
+ "uuid": "FC8922A3-E29D-451D-9947-A2781C0FF787"
150
+ },
151
+ {
152
+ "difficulty": 1,
153
+ "slug": "bob",
154
+ "topics": null,
155
+ "uuid": "12BBECF4-93EB-40F2-AC13-8CF28B550F0A"
156
+ },
157
+ {
158
+ "difficulty": 1,
159
+ "slug": "word-count",
160
+ "topics": null,
161
+ "uuid": "C61E97BE-6C66-4F1F-87ED-D21C4ED2A8E2"
162
+ },
163
+ {
164
+ "difficulty": 5,
165
+ "slug": "markdown",
166
+ "topics": null,
167
+ "uuid": "4594B907-8080-4A23-AD06-BE85FC28D088"
168
+ },
169
+ {
170
+ "difficulty": 1,
171
+ "slug": "anagram",
172
+ "topics": null,
173
+ "uuid": "339BACAD-F08F-48EE-8DE9-234D4399B49B"
174
+ }
175
+ ],
176
+ "foregone": [],
177
+ "ignore_pattern": "Solution",
178
+ "language": "CFML",
179
+ "solution_pattern": "Solution.cfc",
180
+ "test_pattern": "Test.cfc"
187
181
  }
@@ -0,0 +1,26 @@
1
+ /**
2
+ * This is a simple task runner that formats the JSON config file. This should only be neccessary if yoiu've edited it by
3
+ * hand and want to get it back into the proper format as far as spacing and indentation goes. This follows the same format as `configlet fmt`
4
+ */
5
+ component {
6
+
7
+ function run() {
8
+ // Determine the root of the repo based on the location of this task runner
9
+ var repoRootPath = expandPath( getDirectoryFromPath( getCurrentTemplatePath() ) & '../' );
10
+ // Read in the current JSON config file
11
+ var configJSONRaw = fileRead( repoRootPath & '/config.json' );
12
+ var configJSON = deserializeJSON( configJSONRaw );
13
+
14
+ var newConfigJSONRaw = formatterUtil.formatJSON( json=configJSON, indent=' ' , lineEnding=chr( 10 ), spaceAfterColon=true );
15
+
16
+ if( newConfigJSONRaw != configJSONRaw ) {
17
+ // Write it back out with the proper formatting styles applied
18
+ fileWrite( repoRootPath & '/config.json', newConfigJSONRaw );
19
+
20
+ print.greenLine( 'Config file [#repoRootPath#config.json] formatted!' );
21
+ } else {
22
+ print.whiteLine( 'Config file [#repoRootPath#config.json] is already formatted!' );
23
+ }
24
+ }
25
+
26
+ }
@@ -42,7 +42,7 @@ component {
42
42
  "slug": arguments.slug,
43
43
  "topics": []
44
44
  } );
45
- fileWrite( repoRootPath & '/config.json', formatterUtil.formatJSON( json=configJSON, indent=' ' , lineEnding=chr( 10 ) ) );
45
+ fileWrite( repoRootPath & '/config.json', formatterUtil.formatJSON( json=configJSON, indent=' ' , lineEnding=chr( 10 ), spaceAfterColon=true ) );
46
46
 
47
47
  // Create exercise scaffold
48
48
  directoryCreate( exerciseDirectory );