trackler 2.2.1.51 → 2.2.1.52
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/trackler/version.rb +1 -1
- data/problem-specifications/exercises/saddle-points/description.md +1 -1
- data/tracks/cfml/.gitattributes +19 -0
- data/tracks/cfml/config.json +180 -186
- data/tracks/cfml/tasks/FormatConfig.cfc +26 -0
- data/tracks/cfml/tasks/ScaffoldExercise.cfc +1 -1
- data/tracks/common-lisp/config.json +26 -9
- data/tracks/common-lisp/exercises/acronym/README.md +61 -0
- data/tracks/common-lisp/exercises/acronym/acronym-test.lisp +48 -0
- data/tracks/common-lisp/exercises/acronym/acronym.lisp +6 -0
- data/tracks/common-lisp/exercises/acronym/example.lisp +24 -0
- data/tracks/common-lisp/exercises/isogram/README.md +65 -0
- data/tracks/common-lisp/exercises/isogram/example.lisp +18 -0
- data/tracks/common-lisp/exercises/isogram/isogram-test.lisp +39 -0
- data/tracks/common-lisp/exercises/isogram/isogram.lisp +8 -0
- data/tracks/delphi/exercises/etl/README.md +1 -1
- data/tracks/delphi/exercises/rna-transcription/README.md +1 -1
- data/tracks/delphi/exercises/saddle-points/README.md +1 -1
- data/tracks/fsharp/exercises/all-your-base/AllYourBaseTest.fs +21 -21
- data/tracks/fsharp/exercises/kindergarten-garden/Example.fs +13 -14
- data/tracks/fsharp/exercises/kindergarten-garden/KindergartenGarden.fs +1 -3
- data/tracks/fsharp/exercises/kindergarten-garden/KindergartenGardenTest.fs +9 -41
- data/tracks/fsharp/exercises/phone-number/PhoneNumberTest.fs +12 -12
- data/tracks/fsharp/exercises/rna-transcription/RnaTranscriptionTest.fs +8 -8
- data/tracks/fsharp/exercises/robot-simulator/RobotSimulator.fs +3 -0
- data/tracks/fsharp/exercises/robot-simulator/RobotSimulatorTest.fs +129 -26
- data/tracks/fsharp/generators/Common.fs +10 -0
- data/tracks/fsharp/generators/Exercise.fs +5 -1
- data/tracks/fsharp/generators/Generators.fs +122 -33
- data/tracks/fsharp/generators/Output.fs +6 -1
- data/tracks/haskell/exercises/crypto-square/README.md +6 -4
- data/tracks/haskell/exercises/kindergarten-garden/README.md +10 -10
- data/tracks/haskell/exercises/saddle-points/README.md +1 -1
- data/tracks/haskell/exercises/space-age/README.md +1 -1
- data/tracks/java/config.json +8 -2
- data/tracks/java/exercises/queen-attack/.meta/src/reference/java/BoardCoordinate.java +12 -12
- data/tracks/java/exercises/queen-attack/.meta/src/reference/java/QueenAttackCalculator.java +14 -14
- data/tracks/java/exercises/queen-attack/.meta/version +1 -1
- data/tracks/java/exercises/queen-attack/src/test/java/QueenAttackCalculatorTest.java +11 -11
- data/tracks/javascript/exercises/prime-factors/example.js +10 -9
- data/tracks/julia/config.json +12 -0
- data/tracks/julia/exercises/run-length-encoding/README.md +31 -0
- data/tracks/julia/exercises/run-length-encoding/example.jl +22 -0
- data/tracks/julia/exercises/run-length-encoding/run-length-encoding.jl +7 -0
- data/tracks/julia/exercises/run-length-encoding/runtests.jl +29 -0
- data/tracks/objective-c/README.md +79 -1
- data/tracks/ocaml/config.json +430 -433
- data/tracks/ocaml/config/maintainers.json +11 -11
- data/tracks/php/config.json +16 -0
- data/tracks/php/exercises/all-your-base/README.md +31 -0
- data/tracks/php/exercises/all-your-base/all-your-base_test.php +135 -0
- data/tracks/php/exercises/all-your-base/example.php +27 -0
- data/tracks/php/exercises/series/README.md +21 -0
- data/tracks/php/exercises/series/example.php +15 -0
- data/tracks/php/exercises/series/series_test.php +64 -0
- data/tracks/python/README.md +1 -1
- data/tracks/python/config.json +4 -1
- data/tracks/python/exercises/forth/forth.py +4 -0
- data/tracks/python/exercises/forth/forth_test.py +1 -1
- data/tracks/python/exercises/markdown/example.py +1 -1
- data/tracks/python/exercises/markdown/markdown_test.py +3 -3
- data/tracks/ruby/exercises/two-bucket/.meta/.version +1 -1
- data/tracks/ruby/exercises/two-bucket/.meta/solutions/two_bucket.rb +23 -3
- data/tracks/ruby/exercises/two-bucket/two_bucket_test.rb +4 -4
- metadata +22 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 2ba58003417ff7756c00e61bca5725599d51f36a
|
|
4
|
+
data.tar.gz: b224d56deaee8862e20e456a5431c77c84761ce7
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 228596af71741d35e867a78201c19b7497a186a65c85b4cf1656de33d81d722f0bff10436e7cdf4eb6c9841eb0c6bde13440fb05bcf34257ed59904e2397dd5e
|
|
7
|
+
data.tar.gz: 2c111f16d5aba64c6f455ef360626fef978c6b3341fa616a54778e112000f2e6eaa5ff78141d643151a74c7742041422d70f30086c92672ec66a38af90203cb7
|
data/lib/trackler/version.rb
CHANGED
|
@@ -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
|
|
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
|
data/tracks/cfml/config.json
CHANGED
|
@@ -1,187 +1,181 @@
|
|
|
1
|
-
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
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 );
|