trackler 2.1.0.42 → 2.1.0.43
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/update +3 -3
- data/common/CONTRIBUTING.md +5 -5
- data/common/exercises/rna-transcription/canonical-data.json +9 -9
- data/lib/trackler/track.rb +40 -6
- data/lib/trackler/version.rb +1 -1
- data/tracks/clojure/config.json +7 -0
- data/tracks/clojure/exercises/rotational-cipher/project.clj +4 -0
- data/tracks/clojure/exercises/rotational-cipher/src/example.clj +21 -0
- data/tracks/clojure/exercises/rotational-cipher/test/rotational_cipher_test.clj +34 -0
- data/tracks/elm/README.md +3 -3
- data/tracks/elm/config.json +1 -1
- data/tracks/elm/exercises/accumulate/elm-package.json +1 -1
- data/tracks/elm/exercises/accumulate/package.json +1 -1
- data/tracks/elm/exercises/accumulate/tests/elm-package.json +1 -1
- data/tracks/elm/exercises/allergies/elm-package.json +1 -1
- data/tracks/elm/exercises/allergies/package.json +1 -1
- data/tracks/elm/exercises/allergies/tests/elm-package.json +1 -1
- data/tracks/elm/exercises/anagram/elm-package.json +1 -1
- data/tracks/elm/exercises/anagram/package.json +1 -1
- data/tracks/elm/exercises/anagram/tests/elm-package.json +1 -1
- data/tracks/elm/exercises/atbash-cipher/elm-package.json +1 -1
- data/tracks/elm/exercises/atbash-cipher/package.json +1 -1
- data/tracks/elm/exercises/atbash-cipher/tests/elm-package.json +1 -1
- data/tracks/elm/exercises/bob/elm-package.json +1 -1
- data/tracks/elm/exercises/bob/package.json +1 -1
- data/tracks/elm/exercises/bob/tests/elm-package.json +1 -1
- data/tracks/elm/exercises/difference-of-squares/elm-package.json +1 -1
- data/tracks/elm/exercises/difference-of-squares/package.json +1 -1
- data/tracks/elm/exercises/difference-of-squares/tests/elm-package.json +1 -1
- data/tracks/elm/exercises/gigasecond/elm-package.json +1 -1
- data/tracks/elm/exercises/gigasecond/package.json +1 -1
- data/tracks/elm/exercises/gigasecond/tests/elm-package.json +1 -1
- data/tracks/elm/exercises/grade-school/elm-package.json +1 -1
- data/tracks/elm/exercises/grade-school/package.json +1 -1
- data/tracks/elm/exercises/grade-school/tests/elm-package.json +1 -1
- data/tracks/elm/exercises/grains/elm-package.json +1 -1
- data/tracks/elm/exercises/grains/package.json +1 -1
- data/tracks/elm/exercises/grains/tests/elm-package.json +1 -1
- data/tracks/elm/exercises/hamming/elm-package.json +1 -1
- data/tracks/elm/exercises/hamming/package.json +1 -1
- data/tracks/elm/exercises/hamming/tests/elm-package.json +1 -1
- data/tracks/elm/exercises/hello-world/elm-package.json +1 -1
- data/tracks/elm/exercises/hello-world/package.json +1 -1
- data/tracks/elm/exercises/hello-world/tests/elm-package.json +1 -1
- data/tracks/elm/exercises/largest-series-product/elm-package.json +1 -1
- data/tracks/elm/exercises/largest-series-product/package.json +1 -1
- data/tracks/elm/exercises/largest-series-product/tests/elm-package.json +1 -1
- data/tracks/elm/exercises/leap/elm-package.json +1 -1
- data/tracks/elm/exercises/leap/package.json +1 -1
- data/tracks/elm/exercises/leap/tests/elm-package.json +1 -1
- data/tracks/elm/exercises/list-ops/elm-package.json +1 -1
- data/tracks/elm/exercises/list-ops/package.json +1 -1
- data/tracks/elm/exercises/list-ops/tests/elm-package.json +1 -1
- data/tracks/elm/exercises/nucleotide-count/elm-package.json +1 -1
- data/tracks/elm/exercises/nucleotide-count/package.json +1 -1
- data/tracks/elm/exercises/nucleotide-count/tests/elm-package.json +1 -1
- data/tracks/elm/exercises/pangram/elm-package.json +1 -1
- data/tracks/elm/exercises/pangram/package.json +1 -1
- data/tracks/elm/exercises/pangram/tests/elm-package.json +1 -1
- data/tracks/elm/exercises/phone-number/elm-package.json +1 -1
- data/tracks/elm/exercises/phone-number/package.json +1 -1
- data/tracks/elm/exercises/phone-number/tests/elm-package.json +1 -1
- data/tracks/elm/exercises/raindrops/elm-package.json +1 -1
- data/tracks/elm/exercises/raindrops/package.json +1 -1
- data/tracks/elm/exercises/raindrops/tests/elm-package.json +1 -1
- data/tracks/elm/exercises/rna-transcription/elm-package.json +1 -1
- data/tracks/elm/exercises/rna-transcription/package.json +1 -1
- data/tracks/elm/exercises/rna-transcription/tests/elm-package.json +1 -1
- data/tracks/elm/exercises/robot-simulator/elm-package.json +1 -1
- data/tracks/elm/exercises/robot-simulator/package.json +1 -1
- data/tracks/elm/exercises/robot-simulator/tests/elm-package.json +1 -1
- data/tracks/elm/exercises/roman-numerals/elm-package.json +1 -1
- data/tracks/elm/exercises/roman-numerals/package.json +1 -1
- data/tracks/elm/exercises/roman-numerals/tests/elm-package.json +1 -1
- data/tracks/elm/exercises/run-length-encoding/elm-package.json +1 -1
- data/tracks/elm/exercises/run-length-encoding/package.json +1 -1
- data/tracks/elm/exercises/run-length-encoding/tests/elm-package.json +1 -1
- data/tracks/elm/exercises/say/elm-package.json +1 -1
- data/tracks/elm/exercises/say/package.json +1 -1
- data/tracks/elm/exercises/say/tests/elm-package.json +1 -1
- data/tracks/elm/exercises/scrabble-score/elm-package.json +1 -1
- data/tracks/elm/exercises/scrabble-score/package.json +1 -1
- data/tracks/elm/exercises/scrabble-score/tests/elm-package.json +1 -1
- data/tracks/elm/exercises/series/elm-package.json +1 -1
- data/tracks/elm/exercises/series/package.json +1 -1
- data/tracks/elm/exercises/series/tests/elm-package.json +1 -1
- data/tracks/elm/exercises/space-age/elm-package.json +1 -1
- data/tracks/elm/exercises/space-age/package.json +1 -1
- data/tracks/elm/exercises/space-age/tests/elm-package.json +1 -1
- data/tracks/elm/exercises/strain/elm-package.json +1 -1
- data/tracks/elm/exercises/strain/package.json +1 -1
- data/tracks/elm/exercises/strain/tests/elm-package.json +1 -1
- data/tracks/elm/exercises/sublist/elm-package.json +1 -1
- data/tracks/elm/exercises/sublist/package.json +1 -1
- data/tracks/elm/exercises/sublist/tests/elm-package.json +1 -1
- data/tracks/elm/exercises/sum-of-multiples/elm-package.json +1 -1
- data/tracks/elm/exercises/sum-of-multiples/package.json +1 -1
- data/tracks/elm/exercises/sum-of-multiples/tests/elm-package.json +1 -1
- data/tracks/elm/exercises/triangle/elm-package.json +1 -1
- data/tracks/elm/exercises/triangle/package.json +1 -1
- data/tracks/elm/exercises/triangle/tests/elm-package.json +1 -1
- data/tracks/elm/exercises/word-count/elm-package.json +1 -1
- data/tracks/elm/exercises/word-count/package.json +1 -1
- data/tracks/elm/exercises/word-count/tests/elm-package.json +1 -1
- data/tracks/perl5/README.md +1 -1
- data/tracks/prolog/exercises/hello-world/hello_world_tests.plt +3 -3
- data/tracks/purescript/config.json +0 -5
- data/tracks/python/README.md +4 -4
- data/tracks/python/config.json +1 -1
- data/tracks/ruby/exercises/hamming/RUNNING_TESTS.md +56 -0
- data/tracks/ruby/exercises/hello-world/GETTING_STARTED.md +10 -33
- data/tracks/rust/config.json +1 -1
- metadata +6 -4
- data/fixtures/tracks/fake/docs/STRAY.md +0 -1
- data/lib/trackler/doc_file.rb +0 -88
@@ -38,20 +38,21 @@ On Windows, it will complain about:
|
|
38
38
|
|
39
39
|
On OS X and Linux, the error will be something like:
|
40
40
|
|
41
|
+
|
41
42
|
# Running:
|
42
43
|
|
43
|
-
|
44
|
+
E
|
44
45
|
|
45
|
-
Finished in 0.
|
46
|
+
Finished in 0.001328s, 753.0121 runs/s, 0.0000 assertions/s.
|
46
47
|
|
47
|
-
|
48
|
-
HelloWorldTest#
|
48
|
+
1) Error:
|
49
|
+
HelloWorldTest#test_say_hi:
|
49
50
|
NameError: uninitialized constant HelloWorldTest::HelloWorld
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
51
|
+
Did you mean? HelloWorldTest
|
52
|
+
hello_world_test.rb:19:in `test_say_hi'
|
53
|
+
|
54
|
+
1 runs, 0 assertions, 0 failures, 1 errors, 0 skips
|
55
|
+
|
55
56
|
|
56
57
|
Within the first test, we are referencing a constant named `HelloWorld` when
|
57
58
|
we say `HelloWorld.hello`. When Ruby sees a capitalized name like
|
@@ -69,19 +70,6 @@ To fix it, open up the hello_world.rb file and add the following code:
|
|
69
70
|
class HelloWorld
|
70
71
|
end
|
71
72
|
|
72
|
-
### Understanding Test Failures
|
73
|
-
|
74
|
-
Whether you are on Windows, Mac OS X or Linux, you will eventually be faced with
|
75
|
-
errors and failures that look a lot like the Mac OS X / Linux error above.
|
76
|
-
|
77
|
-
The letters `ESS` show that there are three tests altogether,
|
78
|
-
that one of them has an error (`E`), and that two of them are skipped (`SS`).
|
79
|
-
|
80
|
-
The goal is to have three passing tests, which will show as three dots: `...`.
|
81
|
-
|
82
|
-
The tests are run in randomized order, which will cause the letters to display
|
83
|
-
in random order as well.
|
84
|
-
|
85
73
|
## Step 3
|
86
74
|
|
87
75
|
Run the test again.
|
@@ -131,17 +119,6 @@ out what went wrong, and then try again.
|
|
131
119
|
|
132
120
|
If it passes, then you're ready to move to the next step.
|
133
121
|
|
134
|
-
Open the hello_world_test.rb file, and find the word "skip". All but the first test
|
135
|
-
start with "skip", which tells Minitest to ignore the test. This is so that
|
136
|
-
you don't have to deal with all the failures at once.
|
137
|
-
|
138
|
-
To activate the next test, delete the "skip", and run the test suite again.
|
139
|
-
|
140
|
-
## Wash, Rinse, Repeat
|
141
|
-
|
142
|
-
Delete one "skip" at a time, and make each test pass before you move to the
|
143
|
-
next one.
|
144
|
-
|
145
122
|
## Submit
|
146
123
|
|
147
124
|
When everything is passing, you can submit your code with the following
|
data/tracks/rust/config.json
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: trackler
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.1.0.
|
4
|
+
version: 2.1.0.43
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Katrina Owen
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-06-
|
11
|
+
date: 2017-06-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rubyzip
|
@@ -480,7 +480,6 @@ files:
|
|
480
480
|
- fixtures/tracks/fake/docs/INSTALLATION.org
|
481
481
|
- fixtures/tracks/fake/docs/LEARNING.org
|
482
482
|
- fixtures/tracks/fake/docs/RESOURCES.unknown_extension
|
483
|
-
- fixtures/tracks/fake/docs/STRAY.md
|
484
483
|
- fixtures/tracks/fake/docs/TESTS.md
|
485
484
|
- fixtures/tracks/fake/docs/img/test.jpg
|
486
485
|
- fixtures/tracks/fake/docs/img/test.png
|
@@ -528,7 +527,6 @@ files:
|
|
528
527
|
- fixtures/tracks/vehicles/config.json
|
529
528
|
- lib/trackler.rb
|
530
529
|
- lib/trackler/description.rb
|
531
|
-
- lib/trackler/doc_file.rb
|
532
530
|
- lib/trackler/file_bundle.rb
|
533
531
|
- lib/trackler/guaranteed_file.rb
|
534
532
|
- lib/trackler/implementation.rb
|
@@ -1059,6 +1057,9 @@ files:
|
|
1059
1057
|
- tracks/clojure/exercises/roman-numerals/project.clj
|
1060
1058
|
- tracks/clojure/exercises/roman-numerals/src/example.clj
|
1061
1059
|
- tracks/clojure/exercises/roman-numerals/test/roman_numerals_test.clj
|
1060
|
+
- tracks/clojure/exercises/rotational-cipher/project.clj
|
1061
|
+
- tracks/clojure/exercises/rotational-cipher/src/example.clj
|
1062
|
+
- tracks/clojure/exercises/rotational-cipher/test/rotational_cipher_test.clj
|
1062
1063
|
- tracks/clojure/exercises/scrabble-score/project.clj
|
1063
1064
|
- tracks/clojure/exercises/scrabble-score/src/example.clj
|
1064
1065
|
- tracks/clojure/exercises/scrabble-score/test/scrabble_score_test.clj
|
@@ -7565,6 +7566,7 @@ files:
|
|
7565
7566
|
- tracks/ruby/exercises/hamming/.meta/.version
|
7566
7567
|
- tracks/ruby/exercises/hamming/.meta/generator/hamming_case.rb
|
7567
7568
|
- tracks/ruby/exercises/hamming/.meta/solutions/hamming.rb
|
7569
|
+
- tracks/ruby/exercises/hamming/RUNNING_TESTS.md
|
7568
7570
|
- tracks/ruby/exercises/hamming/hamming_test.rb
|
7569
7571
|
- tracks/ruby/exercises/hello-world/.meta/.version
|
7570
7572
|
- tracks/ruby/exercises/hello-world/.meta/generator/hello_world_case.rb
|
@@ -1 +0,0 @@
|
|
1
|
-
![](/docs/img/test.jpg)
|
data/lib/trackler/doc_file.rb
DELETED
@@ -1,88 +0,0 @@
|
|
1
|
-
class DocFile
|
2
|
-
DEFAULT_IMAGE_PATH = "/docs/img"
|
3
|
-
|
4
|
-
def self.find(basename:, track_dir:)
|
5
|
-
dir = File.join(track_dir, "docs")
|
6
|
-
|
7
|
-
[
|
8
|
-
MarkdownFile.new(basename: basename, docs_dir: dir),
|
9
|
-
OrgmodeFile.new(basename: basename, docs_dir: dir),
|
10
|
-
].detect(&:exist?) || NullFile.new(basename)
|
11
|
-
end
|
12
|
-
|
13
|
-
attr_reader :basename, :dir
|
14
|
-
def initialize(basename:, docs_dir:)
|
15
|
-
@basename = basename
|
16
|
-
@dir = docs_dir
|
17
|
-
end
|
18
|
-
|
19
|
-
def render(image_path: DEFAULT_IMAGE_PATH)
|
20
|
-
body.gsub(img_src, img_dst(image_path))
|
21
|
-
end
|
22
|
-
|
23
|
-
def name
|
24
|
-
"%s.%s" % [basename, extension]
|
25
|
-
end
|
26
|
-
|
27
|
-
def extension
|
28
|
-
"md"
|
29
|
-
end
|
30
|
-
|
31
|
-
def exist?
|
32
|
-
File.exist?(path)
|
33
|
-
end
|
34
|
-
|
35
|
-
private
|
36
|
-
|
37
|
-
def body
|
38
|
-
File.read(path)
|
39
|
-
end
|
40
|
-
|
41
|
-
def path
|
42
|
-
"%s/%s" % [dir, name]
|
43
|
-
end
|
44
|
-
|
45
|
-
def img_src
|
46
|
-
Regexp.new("]\\(%s" % DEFAULT_IMAGE_PATH)
|
47
|
-
end
|
48
|
-
|
49
|
-
def img_dst(image_path)
|
50
|
-
"](%s" % image_path.gsub(Regexp.new("/$"), "")
|
51
|
-
end
|
52
|
-
end
|
53
|
-
|
54
|
-
class OrgmodeFile < DocFile
|
55
|
-
def body
|
56
|
-
Orgmode::Parser.new(File.read(path)).to_markdown
|
57
|
-
end
|
58
|
-
|
59
|
-
def extension
|
60
|
-
"org"
|
61
|
-
end
|
62
|
-
end
|
63
|
-
|
64
|
-
class MarkdownFile < DocFile
|
65
|
-
end
|
66
|
-
|
67
|
-
class NullFile
|
68
|
-
attr_reader :basename
|
69
|
-
def initialize(basename)
|
70
|
-
@basename = basename
|
71
|
-
end
|
72
|
-
|
73
|
-
def render(image_path:"")
|
74
|
-
""
|
75
|
-
end
|
76
|
-
|
77
|
-
def name
|
78
|
-
"%s.%s" % [basename, extension]
|
79
|
-
end
|
80
|
-
|
81
|
-
def extension
|
82
|
-
"md" # default for missing files
|
83
|
-
end
|
84
|
-
|
85
|
-
def exist?
|
86
|
-
false
|
87
|
-
end
|
88
|
-
end
|