trackler 2.0.8.47 → 2.0.8.48

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.
Files changed (40) hide show
  1. checksums.yaml +4 -4
  2. data/lib/trackler/version.rb +1 -1
  3. data/tracks/c/config.json +9 -0
  4. data/tracks/c/exercises/palindrome-products/makefile +16 -0
  5. data/tracks/c/exercises/palindrome-products/src/example.c +36 -0
  6. data/tracks/c/exercises/palindrome-products/src/example.h +12 -0
  7. data/tracks/c/exercises/palindrome-products/test/test_palindrome_products.c +25 -0
  8. data/tracks/c/exercises/palindrome-products/test/vendor/unity.c +1300 -0
  9. data/tracks/c/exercises/palindrome-products/test/vendor/unity.h +274 -0
  10. data/tracks/c/exercises/palindrome-products/test/vendor/unity_internals.h +701 -0
  11. data/tracks/go/exercises/luhn/.meta/gen.go +3 -5
  12. data/tracks/go/exercises/luhn/cases_test.go +2 -1
  13. data/tracks/java/exercises/atbash-cipher/src/example/java/Atbash.java +5 -5
  14. data/tracks/java/exercises/atbash-cipher/src/test/java/AtbashTest.java +18 -18
  15. data/tracks/lfe/docs/INSTALLATION.md +34 -0
  16. data/tracks/objective-c/config.json +8 -0
  17. data/tracks/objective-c/exercises/sieve/SieveExample.h +7 -0
  18. data/tracks/objective-c/exercises/sieve/SieveExample.m +31 -0
  19. data/tracks/objective-c/exercises/sieve/SieveTest.m +38 -0
  20. data/tracks/objective-c/xcodeProject/ObjectiveC.xcodeproj/project.pbxproj +18 -0
  21. data/tracks/purescript/.travis.yml +1 -1
  22. data/tracks/purescript/bin/test-one.sh +4 -4
  23. data/tracks/purescript/exercises/accumulate/bower.json +3 -3
  24. data/tracks/purescript/exercises/acronym/bower.json +4 -4
  25. data/tracks/purescript/exercises/all-your-base/bower.json +3 -3
  26. data/tracks/purescript/exercises/allergies/bower.json +5 -5
  27. data/tracks/purescript/exercises/atbash-cipher/bower.json +5 -5
  28. data/tracks/purescript/exercises/binary-search/bower.json +3 -3
  29. data/tracks/purescript/exercises/bob/bower.json +4 -4
  30. data/tracks/purescript/exercises/bracket-push/bower.json +4 -4
  31. data/tracks/purescript/exercises/difference-of-squares/bower.json +3 -3
  32. data/tracks/purescript/exercises/hello-world/bower.json +4 -4
  33. data/tracks/purescript/exercises/leap/bower.json +3 -3
  34. data/tracks/purescript/exercises/meetup/bower.json +4 -4
  35. data/tracks/purescript/exercises/pangram/bower.json +4 -4
  36. data/tracks/purescript/exercises/raindrops/bower.json +3 -3
  37. data/tracks/purescript/exercises/scrabble-score/bower.json +3 -3
  38. data/tracks/purescript/exercises/triangle/bower.json +6 -6
  39. data/tracks/purescript/exercises/word-count/bower.json +4 -4
  40. metadata +12 -2
@@ -22,7 +22,7 @@ func main() {
22
22
 
23
23
  // The JSON structure we expect to be able to unmarshal into
24
24
  type js struct {
25
- Valid []struct {
25
+ Cases []struct {
26
26
  Description string
27
27
  Input string
28
28
  Expected bool
@@ -32,16 +32,14 @@ type js struct {
32
32
  // template applied to above data structure generates the Go test cases
33
33
  var tmpl = `package luhn
34
34
 
35
- // Source: {{.Ori}}
36
- {{if .Commit}}// Commit: {{.Commit}}
37
- {{end}}
35
+ {{.Header}}
38
36
 
39
37
  var testCases = []struct {
40
38
  description string
41
39
  input string
42
40
  ok bool
43
41
  }{
44
- {{range .J.Valid}}{
42
+ {{range .J.Cases}}{
45
43
  {{printf "%q" .Description}},
46
44
  {{printf "%q" .Input}},
47
45
  {{.Expected}},
@@ -1,7 +1,8 @@
1
1
  package luhn
2
2
 
3
3
  // Source: exercism/x-common
4
- // Commit: 715e23e luhn: tweak canonical tests (#547)
4
+ // Commit: c826372 luhn: Make canonical-data.json compliant
5
+ // x-common version: 1.0.0
5
6
 
6
7
  var testCases = []struct {
7
8
  description string
@@ -7,7 +7,7 @@ public class Atbash {
7
7
  private static final String PLAIN = "abcdefghijklmnopqrstuvwxyz";
8
8
  private static final String CIPHER = "zyxwvutsrqponmlkjihgfedcba";
9
9
 
10
- public static String encode(String input) {
10
+ public String encode(String input) {
11
11
  String encoded = stripInvalidCharacters(input).toLowerCase();
12
12
  String cyphered = "";
13
13
 
@@ -18,7 +18,7 @@ public class Atbash {
18
18
  return splitIntoFiveLetterWords(cyphered);
19
19
  }
20
20
 
21
- public static String decode(String input) {
21
+ public String decode(String input) {
22
22
  String encoded = stripInvalidCharacters(input).toLowerCase();
23
23
  String deciphered = "";
24
24
 
@@ -29,7 +29,7 @@ public class Atbash {
29
29
  return deciphered;
30
30
  }
31
31
 
32
- private static String stripInvalidCharacters(String input) {
32
+ private String stripInvalidCharacters(String input) {
33
33
  String filteredValue = "";
34
34
 
35
35
  for (char c : input.toCharArray()) {
@@ -41,13 +41,13 @@ public class Atbash {
41
41
  return filteredValue;
42
42
  }
43
43
 
44
- private static char applyCipher(char input) {
44
+ private char applyCipher(char input) {
45
45
  int idx = PLAIN.indexOf(input);
46
46
 
47
47
  return idx >= 0 ? CIPHER.toCharArray()[idx] : input;
48
48
  }
49
49
 
50
- private static String splitIntoFiveLetterWords(String value) {
50
+ private String splitIntoFiveLetterWords(String value) {
51
51
  List<String> words = new ArrayList<>();
52
52
 
53
53
  for (int i = 0; i < value.length(); i += GROUP_SIZE) {
@@ -1,5 +1,5 @@
1
- import org.junit.Test;
2
1
  import org.junit.Ignore;
2
+ import org.junit.Test;
3
3
  import org.junit.experimental.runners.Enclosed;
4
4
  import org.junit.runner.RunWith;
5
5
  import org.junit.runners.Parameterized;
@@ -20,14 +20,14 @@ public class AtbashTest {
20
20
 
21
21
  @Parameters(name = "{index}: expected plaintext \"{0}\" to encode to ciphertext \"{1}\".")
22
22
  public static Collection<Object[]> data() {
23
- return Arrays.asList(new Object[][] {
24
- { "no", "ml" },
25
- { "yes", "bvh" },
26
- { "OMG", "lnt" },
27
- { "mindblowingly", "nrmwy oldrm tob" },
28
- { "Testing, 1 2 3, testing.", "gvhgr mt123 gvhgr mt" },
29
- { "Truth is fiction.", "gifgs rhurx grlm" },
30
- { "The quick brown fox jumps over the lazy dog.", "gsvjf rxpyi ldmul cqfnk hlevi gsvoz abwlt" }
23
+ return Arrays.asList(new Object[][]{
24
+ {"no", "ml"},
25
+ {"yes", "bvh"},
26
+ {"OMG", "lnt"},
27
+ {"mindblowingly", "nrmwy oldrm tob"},
28
+ {"Testing, 1 2 3, testing.", "gvhgr mt123 gvhgr mt"},
29
+ {"Truth is fiction.", "gifgs rhurx grlm"},
30
+ {"The quick brown fox jumps over the lazy dog.", "gsvjf rxpyi ldmul cqfnk hlevi gsvoz abwlt"}
31
31
  });
32
32
  }
33
33
 
@@ -37,9 +37,9 @@ public class AtbashTest {
37
37
  }
38
38
 
39
39
 
40
- @Test
40
+ @Test
41
41
  public void test() {
42
- assertEquals(ciphertext, Atbash.encode(plaintext));
42
+ assertEquals(ciphertext, new Atbash().encode(plaintext));
43
43
  }
44
44
  }
45
45
 
@@ -50,11 +50,11 @@ public class AtbashTest {
50
50
 
51
51
  @Parameters(name = "{index}: expected ciphertext \"{0}\" to decode to plaintext \"{1}\".")
52
52
  public static Collection<Object[]> data() {
53
- return Arrays.asList(new Object[][] {
54
- { "vcvix rhn", "exercism" },
55
- { "zmlyh gzxov rhlug vmzhg vkkrm thglm v", "anobstacleisoftenasteppingstone" },
56
- { "gvhgr mt123 gvhgr mt", "testing123testing" },
57
- { "gsvjf rxpyi ldmul cqfnk hlevi gsvoz abwlt", "thequickbrownfoxjumpsoverthelazydog" }
53
+ return Arrays.asList(new Object[][]{
54
+ {"vcvix rhn", "exercism"},
55
+ {"zmlyh gzxov rhlug vmzhg vkkrm thglm v", "anobstacleisoftenasteppingstone"},
56
+ {"gvhgr mt123 gvhgr mt", "testing123testing"},
57
+ {"gsvjf rxpyi ldmul cqfnk hlevi gsvoz abwlt", "thequickbrownfoxjumpsoverthelazydog"}
58
58
  });
59
59
  }
60
60
 
@@ -64,9 +64,9 @@ public class AtbashTest {
64
64
  }
65
65
 
66
66
  @Ignore
67
- @Test
67
+ @Test
68
68
  public void test() {
69
- assertEquals(plaintext, Atbash.decode(ciphertext));
69
+ assertEquals(plaintext, new Atbash().decode(ciphertext));
70
70
  }
71
71
  }
72
72
  }
@@ -16,6 +16,40 @@ Install LFE:
16
16
  $ brew install lfe
17
17
  ```
18
18
 
19
+ ### Using a docker container
20
+ If you just want to quickly take a look at LFE without polluting your
21
+ system with new packages, you can just pull a docker container with
22
+ LFE preinstalled.
23
+
24
+ Let's fetch a Debian image with LFE:
25
+
26
+ ```bash
27
+ $ docker pull lfex/debian # it will take a while...
28
+ [...]
29
+ ```
30
+
31
+ Now let's run the LFE REPL inside the container:
32
+
33
+ ```bash
34
+ $ docker run -i -t lfex/debian lfe
35
+ Erlang/OTP 19 [ert[...]
36
+
37
+ lfe >
38
+ ```
39
+
40
+ And let's write some LFE to test it:
41
+
42
+ ```bash
43
+ lfe > (* 7 4)
44
+ 28
45
+ lfe > (lfe_io:format "hello world~n" ())
46
+ hello world
47
+ ok
48
+ ```
49
+
50
+ Nice! Use `(exit)` or Ctrl-C (C-c) twice to exit.
51
+
52
+
19
53
  ### Installing from Source
20
54
  Install your system's "developer tools" or "essential build packages", `git`
21
55
  and Erlang's `erl`.
@@ -187,6 +187,14 @@
187
187
  "Transforming"
188
188
  ]
189
189
  },
190
+ {
191
+ "difficulty": 3,
192
+ "slug": "sieve",
193
+ "topics": [
194
+ "Filtering",
195
+ "Mathematics"
196
+ ]
197
+ },
190
198
  {
191
199
  "difficulty": 4,
192
200
  "slug": "beer-song",
@@ -0,0 +1,7 @@
1
+ #import <Foundation/Foundation.h>
2
+
3
+ @interface Sieve : NSObject
4
+
5
+ + (NSArray<NSNumber *> *)primesUpTo:(int)limit;
6
+
7
+ @end
@@ -0,0 +1,31 @@
1
+ #import "SieveExample.h"
2
+
3
+ @implementation Sieve
4
+
5
+ + (NSArray<NSNumber *> *)primesUpTo:(int)limit {
6
+ if (limit < 2) {
7
+ return @[];
8
+ }
9
+
10
+ NSMutableArray<NSNumber *> *numbers = [[NSMutableArray alloc] init];
11
+
12
+ for (int i = 2; i <= limit; i++) {
13
+ [numbers addObject:@(i)];
14
+ }
15
+
16
+ NSMutableArray<NSNumber *> *primes = [[NSMutableArray alloc] init];
17
+
18
+ while (numbers.count > 0) {
19
+ NSNumber *target = [numbers objectAtIndex:0];
20
+ [numbers removeObjectAtIndex:0];
21
+ [primes addObject:target];
22
+ NSPredicate *predicate = [NSPredicate predicateWithBlock:^BOOL(NSNumber *number, NSDictionary *bindings) {
23
+ return number.intValue % target.intValue != 0;
24
+ }];
25
+ [numbers filterUsingPredicate:predicate];
26
+ }
27
+
28
+ return primes;
29
+ }
30
+
31
+ @end
@@ -0,0 +1,38 @@
1
+ #import <XCTest/XCTest.h>
2
+
3
+ #if __has_include("SieveExample.h")
4
+ # import "SieveExample.h"
5
+ # else
6
+ # import "Sieve.h"
7
+ #endif
8
+
9
+ @interface SieveTest : XCTestCase
10
+
11
+ @end
12
+
13
+ @implementation SieveTest
14
+
15
+ - (void)testAFewPrimes {
16
+ NSArray<NSNumber *> *expected = @[@2, @3, @5, @7];
17
+ XCTAssertEqualObjects(expected, [Sieve primesUpTo:10]);
18
+ }
19
+
20
+ - (void)testPrimes {
21
+ NSArray<NSNumber *> *expected = @[@2, @3, @5, @7, @11, @13, @17, @19, @23, @29, @31, @37, @41, @43, @47, @53, @59,
22
+ @61, @67, @71, @73, @79, @83, @89, @97, @101, @103, @107, @109, @113, @127,
23
+ @131, @137, @139, @149, @151, @157, @163, @167, @173, @179, @181, @191,
24
+ @193, @197, @199, @211, @223, @227, @229, @233, @239, @241, @251, @257,
25
+ @263, @269, @271, @277, @281, @283, @293, @307, @311, @313, @317, @331,
26
+ @337, @347, @349, @353, @359, @367, @373, @379, @383, @389, @397, @401,
27
+ @409, @419, @421, @431, @433, @439, @443, @449, @457, @461, @463, @467,
28
+ @479, @487, @491, @499, @503, @509, @521, @523, @541, @547, @557, @563,
29
+ @569, @571, @577, @587, @593, @599, @601, @607, @613, @617, @619, @631,
30
+ @641, @643, @647, @653, @659, @661, @673, @677, @683, @691, @701, @709,
31
+ @719, @727, @733, @739, @743, @751, @757, @761, @769, @773, @787, @797,
32
+ @809, @811, @821, @823, @827, @829, @839, @853, @857, @859, @863, @877,
33
+ @881, @883, @887, @907, @911, @919, @929, @937, @941, @947, @953, @967,
34
+ @971, @977, @983, @991, @997];
35
+ XCTAssertEqualObjects(expected, [Sieve primesUpTo:1000]);
36
+ }
37
+
38
+ @end
@@ -79,12 +79,14 @@
79
79
  E95C52561E81C82A0095D321 /* BinarySearchTest.m in Sources */ = {isa = PBXBuildFile; fileRef = E95C52541E81C82A0095D321 /* BinarySearchTest.m */; };
80
80
  E96993981DF60E1E009EA223 /* TransposeExample.m in Sources */ = {isa = PBXBuildFile; fileRef = E96993971DF60E1E009EA223 /* TransposeExample.m */; };
81
81
  E969939A1DF60E5F009EA223 /* TransposeTest.m in Sources */ = {isa = PBXBuildFile; fileRef = E96993991DF60E5F009EA223 /* TransposeTest.m */; };
82
+ E973200C1E9DA0A900ABEE5C /* SieveExample.m in Sources */ = {isa = PBXBuildFile; fileRef = E973200B1E9DA0A900ABEE5C /* SieveExample.m */; };
82
83
  E9895B6E1E8DA8E8006AD25D /* CryptoSquareExample.m in Sources */ = {isa = PBXBuildFile; fileRef = E9895B6D1E8DA8E8006AD25D /* CryptoSquareExample.m */; };
83
84
  E9895B701E8DA914006AD25D /* CryptoSquareTest.m in Sources */ = {isa = PBXBuildFile; fileRef = E9895B6F1E8DA914006AD25D /* CryptoSquareTest.m */; };
84
85
  E99D1D811D5533BF0006A303 /* SumOfMultiplesExample.m in Sources */ = {isa = PBXBuildFile; fileRef = E99D1D801D5533BF0006A303 /* SumOfMultiplesExample.m */; };
85
86
  E99D1D831D5533D80006A303 /* SumOfMultiplesTest.m in Sources */ = {isa = PBXBuildFile; fileRef = E99D1D821D5533D80006A303 /* SumOfMultiplesTest.m */; };
86
87
  E9A7B2F71DA5AC37009056B6 /* LargestSeriesProductExample.m in Sources */ = {isa = PBXBuildFile; fileRef = E9A7B2F61DA5AC37009056B6 /* LargestSeriesProductExample.m */; };
87
88
  E9A7B2F91DA5AC55009056B6 /* LargestSeriesProductTest.m in Sources */ = {isa = PBXBuildFile; fileRef = E9A7B2F81DA5AC55009056B6 /* LargestSeriesProductTest.m */; };
89
+ E9B062201E9E7C6D000BE589 /* SieveTest.m in Sources */ = {isa = PBXBuildFile; fileRef = E9B0621F1E9E7C6D000BE589 /* SieveTest.m */; };
88
90
  E9B345F81DB93822006EFBE2 /* PangramExample.m in Sources */ = {isa = PBXBuildFile; fileRef = E9B345F71DB93822006EFBE2 /* PangramExample.m */; };
89
91
  E9B345FA1DB93839006EFBE2 /* PangramTest.m in Sources */ = {isa = PBXBuildFile; fileRef = E9B345F91DB93839006EFBE2 /* PangramTest.m */; };
90
92
  E9C1C0231D9D993E0015E86E /* SecretHandshakeExample.m in Sources */ = {isa = PBXBuildFile; fileRef = E9C1C0221D9D993E0015E86E /* SecretHandshakeExample.m */; };
@@ -191,6 +193,8 @@
191
193
  E96993961DF60E1E009EA223 /* TransposeExample.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TransposeExample.h; path = ../../exercises/transpose/TransposeExample.h; sourceTree = "<group>"; };
192
194
  E96993971DF60E1E009EA223 /* TransposeExample.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TransposeExample.m; path = ../../exercises/transpose/TransposeExample.m; sourceTree = "<group>"; };
193
195
  E96993991DF60E5F009EA223 /* TransposeTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TransposeTest.m; path = ../../exercises/transpose/TransposeTest.m; sourceTree = "<group>"; };
196
+ E973200A1E9DA0A900ABEE5C /* SieveExample.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SieveExample.h; path = ../../exercises/sieve/SieveExample.h; sourceTree = "<group>"; };
197
+ E973200B1E9DA0A900ABEE5C /* SieveExample.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SieveExample.m; path = ../../exercises/sieve/SieveExample.m; sourceTree = "<group>"; };
194
198
  E9895B6C1E8DA8E8006AD25D /* CryptoSquareExample.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CryptoSquareExample.h; path = "../../exercises/crypto-square/CryptoSquareExample.h"; sourceTree = "<group>"; };
195
199
  E9895B6D1E8DA8E8006AD25D /* CryptoSquareExample.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CryptoSquareExample.m; path = "../../exercises/crypto-square/CryptoSquareExample.m"; sourceTree = "<group>"; };
196
200
  E9895B6F1E8DA914006AD25D /* CryptoSquareTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CryptoSquareTest.m; path = "../../exercises/crypto-square/CryptoSquareTest.m"; sourceTree = "<group>"; };
@@ -200,6 +204,7 @@
200
204
  E9A7B2F51DA5AC37009056B6 /* LargestSeriesProductExample.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = LargestSeriesProductExample.h; path = "../../exercises/largest-series-product/LargestSeriesProductExample.h"; sourceTree = "<group>"; };
201
205
  E9A7B2F61DA5AC37009056B6 /* LargestSeriesProductExample.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = LargestSeriesProductExample.m; path = "../../exercises/largest-series-product/LargestSeriesProductExample.m"; sourceTree = "<group>"; };
202
206
  E9A7B2F81DA5AC55009056B6 /* LargestSeriesProductTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = LargestSeriesProductTest.m; path = "../../exercises/largest-series-product/LargestSeriesProductTest.m"; sourceTree = "<group>"; };
207
+ E9B0621F1E9E7C6D000BE589 /* SieveTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SieveTest.m; path = ../../exercises/sieve/SieveTest.m; sourceTree = "<group>"; };
203
208
  E9B345F61DB93822006EFBE2 /* PangramExample.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PangramExample.h; path = ../../exercises/pangram/PangramExample.h; sourceTree = "<group>"; };
204
209
  E9B345F71DB93822006EFBE2 /* PangramExample.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PangramExample.m; path = ../../exercises/pangram/PangramExample.m; sourceTree = "<group>"; };
205
210
  E9B345F91DB93839006EFBE2 /* PangramTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PangramTest.m; path = ../../exercises/pangram/PangramTest.m; sourceTree = "<group>"; };
@@ -270,6 +275,7 @@
270
275
  E9C1C02C1D9EC0E50015E86E /* RunLengthEncoding */,
271
276
  E907FE8F1D87545300B93DA9 /* ScrabbleScore */,
272
277
  E9C1C0201D9D98B80015E86E /* SecretHandshake */,
278
+ E97320091E9DA06500ABEE5C /* Sieve */,
273
279
  E9E8B6F61D519E340012F12C /* SpaceAge */,
274
280
  A0BBFCBC1E37703D00230071 /* Sublist */,
275
281
  E99D1D7B1D5532C50006A303 /* SumOfMultiples */,
@@ -437,6 +443,16 @@
437
443
  name = Transpose;
438
444
  sourceTree = "<group>";
439
445
  };
446
+ E97320091E9DA06500ABEE5C /* Sieve */ = {
447
+ isa = PBXGroup;
448
+ children = (
449
+ E973200A1E9DA0A900ABEE5C /* SieveExample.h */,
450
+ E973200B1E9DA0A900ABEE5C /* SieveExample.m */,
451
+ E9B0621F1E9E7C6D000BE589 /* SieveTest.m */,
452
+ );
453
+ name = Sieve;
454
+ sourceTree = "<group>";
455
+ };
440
456
  E9895B6B1E8DA8AA006AD25D /* CryptoSquare */ = {
441
457
  isa = PBXGroup;
442
458
  children = (
@@ -775,6 +791,7 @@
775
791
  files = (
776
792
  1EFACAA71CCCAF3D006F2E69 /* EtlExample.m in Sources */,
777
793
  1EFACAA31CCCAF3D006F2E69 /* AnagramExample.m in Sources */,
794
+ E9B062201E9E7C6D000BE589 /* SieveTest.m in Sources */,
778
795
  E94ACA131D41760300D56CC2 /* AllYourBaseExample.m in Sources */,
779
796
  E94ACA151D41763800D56CC2 /* AllYourBaseTest.m in Sources */,
780
797
  E96993981DF60E1E009EA223 /* TransposeExample.m in Sources */,
@@ -808,6 +825,7 @@
808
825
  E9381D4E1D8F2982003F22A1 /* RaindropsTest.m in Sources */,
809
826
  E9381D541D8F2DE1003F22A1 /* ClockTest.m in Sources */,
810
827
  1EFACAB41CCCAF3D006F2E69 /* PerfectNumbersTest.m in Sources */,
828
+ E973200C1E9DA0A900ABEE5C /* SieveExample.m in Sources */,
811
829
  E9FDCA191D5407D2004EE8DB /* RomanNumeralsExample.m in Sources */,
812
830
  E9B345F81DB93822006EFBE2 /* PangramExample.m in Sources */,
813
831
  1EFACAAE1CCCAF3D006F2E69 /* HelloWorldTest.m in Sources */,
@@ -5,7 +5,7 @@ sudo: false
5
5
  install:
6
6
  - nvm install 6
7
7
  - nvm use 6
8
- - npm install -g purescript@0.10.2 pulp bower
8
+ - npm install -g purescript@0.11.1 pulp@11.0.0 bower
9
9
 
10
10
  script:
11
11
  - bin/fetch-configlet
@@ -2,7 +2,7 @@
2
2
 
3
3
  exercise_dir="$1"
4
4
  if [[ -z "$exercise_dir" ]]; then
5
- echo "Usage: $BASH_SOURCE <exercise>"
5
+ echo "Usage: $BASH_SOURCE <exercise>"
6
6
  exit 1
7
7
  fi
8
8
 
@@ -34,7 +34,7 @@ exercise_examples_src=examples/src
34
34
 
35
35
  # Setup Travis cache
36
36
  for dir in bower_components output; do
37
- cache="$cache_dir/$exercise_dir/$dir"
37
+ cache="$cache_dir/$dir"
38
38
 
39
39
  mkdir -p "$cache"
40
40
  ln -f -s "$cache"
@@ -43,8 +43,8 @@ done
43
43
  mv "$exercise_src" "$exercise_src.impl"
44
44
  mv "$exercise_examples_src" "$exercise_src"
45
45
 
46
- bower install
47
- pulp test
46
+ time bower install
47
+ time pulp test
48
48
 
49
49
  # capture result from last command (pulp test)
50
50
  if [[ $? == 0 ]]; then
@@ -7,10 +7,10 @@
7
7
  "output"
8
8
  ],
9
9
  "dependencies": {
10
- "purescript-prelude": "^2.1.0"
10
+ "purescript-prelude": "^3.0.0"
11
11
  },
12
12
  "devDependencies": {
13
- "purescript-psci-support": "^2.0.0",
14
- "purescript-test-unit": "^10.0.1"
13
+ "purescript-psci-support": "^3.0.0",
14
+ "purescript-test-unit": "^11.0.0"
15
15
  }
16
16
  }
@@ -7,11 +7,11 @@
7
7
  "output"
8
8
  ],
9
9
  "dependencies": {
10
- "purescript-prelude": "^2.1.0",
11
- "purescript-unicode": "^2.0.1"
10
+ "purescript-prelude": "^3.0.0",
11
+ "purescript-unicode": "^3.0.1"
12
12
  },
13
13
  "devDependencies": {
14
- "purescript-psci-support": "^2.0.0",
15
- "purescript-test-unit": "^10.0.1"
14
+ "purescript-psci-support": "^3.0.0",
15
+ "purescript-test-unit": "^11.0.0"
16
16
  }
17
17
  }
@@ -7,10 +7,10 @@
7
7
  "output"
8
8
  ],
9
9
  "dependencies": {
10
- "purescript-prelude": "^2.5.0"
10
+ "purescript-prelude": "^3.0.0"
11
11
  },
12
12
  "devDependencies": {
13
- "purescript-psci-support": "^2.0.0",
14
- "purescript-test-unit": "^10.1.0"
13
+ "purescript-psci-support": "^3.0.0",
14
+ "purescript-test-unit": "^11.0.0"
15
15
  }
16
16
  }