trackler 2.0.8.47 → 2.0.8.48

Sign up to get free protection for your applications and to get access to all the features.
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
  }