trackler 2.1.0.2 → 2.1.0.3

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 (113) hide show
  1. checksums.yaml +4 -4
  2. data/common/exercises/phone-number/canonical-data.json +28 -10
  3. data/common/exercises/phone-number/description.md +19 -13
  4. data/lib/trackler/version.rb +1 -1
  5. data/tracks/go/exercises/bob/.meta/gen.go +1 -3
  6. data/tracks/go/exercises/bob/bob.go +1 -1
  7. data/tracks/go/exercises/bob/bob_test.go +1 -1
  8. data/tracks/go/exercises/bob/cases_test.go +8 -12
  9. data/tracks/go/exercises/bob/example.go +1 -1
  10. data/tracks/go/exercises/largest-series-product/.meta/gen.go +1 -3
  11. data/tracks/go/exercises/largest-series-product/cases_test.go +3 -4
  12. data/tracks/go/exercises/largest-series-product/example.go +1 -1
  13. data/tracks/go/exercises/largest-series-product/largest_series_product_test.go +1 -1
  14. data/tracks/java/exercises/accumulate/src/test/java/AccumulateTest.java +4 -4
  15. data/tracks/java/exercises/acronym/src/test/java/AcronymTest.java +7 -7
  16. data/tracks/java/exercises/all-your-base/src/test/java/BaseConverterTest.java +19 -19
  17. data/tracks/java/exercises/allergies/src/test/java/AllergiesTest.java +18 -18
  18. data/tracks/java/exercises/anagram/src/test/java/AnagramTest.java +15 -15
  19. data/tracks/lisp/docs/INSTALLATION.md +7 -13
  20. data/tracks/python/exercises/bracket-push/bracket_push_test.py +4 -1
  21. data/tracks/python/exercises/isogram/isogram_test.py +5 -1
  22. data/tracks/ruby/README.md +14 -40
  23. data/tracks/ruby/exercises/binary/binary_test.rb +0 -1
  24. data/tracks/ruby/exercises/bracket-push/bracket_push_test.rb +1 -1
  25. data/tracks/ruby/exercises/grains/grains_test.rb +2 -0
  26. data/tracks/ruby/exercises/isogram/isogram_test.rb +0 -1
  27. data/tracks/ruby/exercises/largest-series-product/largest_series_product_test.rb +2 -1
  28. data/tracks/ruby/exercises/luhn/luhn_test.rb +2 -0
  29. data/tracks/ruby/exercises/pangram/pangram_test.rb +0 -1
  30. data/tracks/ruby/exercises/queen-attack/queen_attack_test.rb +1 -1
  31. data/tracks/ruby/exercises/rna-transcription/rna_transcription_test.rb +1 -1
  32. data/tracks/ruby/exercises/run-length-encoding/run_length_encoding_test.rb +0 -1
  33. data/tracks/ruby/exercises/say/say_test.rb +2 -0
  34. data/tracks/ruby/exercises/word-count/word_count_test.rb +1 -1
  35. data/tracks/ruby/exercises/wordy/wordy_test.rb +2 -0
  36. data/tracks/ruby/lib/acronym_cases.rb +1 -1
  37. data/tracks/ruby/lib/all_your_base_cases.rb +1 -1
  38. data/tracks/ruby/lib/alphametics_cases.rb +1 -1
  39. data/tracks/ruby/lib/anagram_cases.rb +1 -1
  40. data/tracks/ruby/lib/beer_song_cases.rb +1 -1
  41. data/tracks/ruby/lib/binary_cases.rb +1 -1
  42. data/tracks/ruby/lib/bowling_cases.rb +1 -1
  43. data/tracks/ruby/lib/bracket_push_cases.rb +1 -1
  44. data/tracks/ruby/lib/clock_cases.rb +1 -1
  45. data/tracks/ruby/lib/connect_cases.rb +1 -1
  46. data/tracks/ruby/lib/custom_set_cases.rb +1 -1
  47. data/tracks/ruby/lib/difference_of_squares_cases.rb +1 -1
  48. data/tracks/ruby/lib/dominoes_cases.rb +1 -1
  49. data/tracks/ruby/lib/generator/files/generator_cases.rb +29 -0
  50. data/tracks/ruby/lib/generator/files/track_files.rb +11 -27
  51. data/tracks/ruby/lib/generator/template_values.rb +8 -2
  52. data/tracks/ruby/{exercises/anagram/example.tt → lib/generator/test_template.erb} +2 -2
  53. data/tracks/ruby/lib/gigasecond_cases.rb +1 -0
  54. data/tracks/ruby/lib/grains_cases.rb +1 -1
  55. data/tracks/ruby/lib/hamming_cases.rb +2 -0
  56. data/tracks/ruby/lib/hello_world_cases.rb +1 -1
  57. data/tracks/ruby/lib/isogram_cases.rb +1 -1
  58. data/tracks/ruby/lib/largest_series_product_cases.rb +1 -1
  59. data/tracks/ruby/lib/leap_cases.rb +1 -1
  60. data/tracks/ruby/lib/luhn_cases.rb +2 -0
  61. data/tracks/ruby/lib/nth_prime_cases.rb +1 -1
  62. data/tracks/ruby/lib/ocr_numbers_cases.rb +2 -0
  63. data/tracks/ruby/lib/pangram_cases.rb +1 -1
  64. data/tracks/ruby/lib/pig_latin_cases.rb +2 -0
  65. data/tracks/ruby/lib/queen_attack_cases.rb +1 -1
  66. data/tracks/ruby/lib/raindrops_cases.rb +1 -1
  67. data/tracks/ruby/lib/rna_transcription_cases.rb +1 -1
  68. data/tracks/ruby/lib/roman_numerals_cases.rb +1 -1
  69. data/tracks/ruby/lib/run_length_encoding_cases.rb +8 -6
  70. data/tracks/ruby/lib/say_cases.rb +1 -1
  71. data/tracks/ruby/lib/sieve_cases.rb +10 -3
  72. data/tracks/ruby/lib/tournament_cases.rb +1 -1
  73. data/tracks/ruby/lib/transpose_cases.rb +1 -1
  74. data/tracks/ruby/lib/triangle_cases.rb +1 -1
  75. data/tracks/ruby/lib/two_bucket_cases.rb +1 -1
  76. data/tracks/ruby/lib/word_count_cases.rb +12 -1
  77. data/tracks/ruby/lib/wordy_cases.rb +1 -1
  78. data/tracks/ruby/test/fixtures/xruby/lib/beta_cases.rb +1 -1
  79. data/tracks/ruby/{exercises/acronym/example.tt → test/fixtures/xruby/lib/generator/test_template.erb} +0 -0
  80. data/tracks/ruby/test/generator/files/generate_cases_test.rb +33 -0
  81. data/tracks/ruby/test/generator/files/track_files_test.rb +14 -28
  82. data/tracks/ruby/test/generator/template_values_test.rb +22 -4
  83. data/tracks/rust/config.json +10 -0
  84. data/tracks/rust/exercises/run-length-encoding/Cargo.lock +4 -0
  85. data/tracks/rust/exercises/run-length-encoding/Cargo.toml +6 -0
  86. data/tracks/rust/exercises/run-length-encoding/example.rs +45 -0
  87. data/tracks/rust/exercises/run-length-encoding/tests/run-length-encoding.rs +86 -0
  88. metadata +11 -29
  89. data/tracks/ruby/exercises/binary/example.tt +0 -22
  90. data/tracks/ruby/exercises/bracket-push/example.tt +0 -21
  91. data/tracks/ruby/exercises/clock/example.tt +0 -21
  92. data/tracks/ruby/exercises/custom-set/example.tt +0 -21
  93. data/tracks/ruby/exercises/grains/example.tt +0 -19
  94. data/tracks/ruby/exercises/hamming/example.tt +0 -21
  95. data/tracks/ruby/exercises/isogram/example.tt +0 -22
  96. data/tracks/ruby/exercises/largest-series-product/example.tt +0 -20
  97. data/tracks/ruby/exercises/luhn/example.tt +0 -18
  98. data/tracks/ruby/exercises/nth-prime/example.tt +0 -21
  99. data/tracks/ruby/exercises/ocr-numbers/example.tt +0 -21
  100. data/tracks/ruby/exercises/pangram/example.tt +0 -22
  101. data/tracks/ruby/exercises/pig-latin/example.tt +0 -21
  102. data/tracks/ruby/exercises/queen-attack/example.tt +0 -21
  103. data/tracks/ruby/exercises/raindrops/example.tt +0 -21
  104. data/tracks/ruby/exercises/rna-transcription/example.tt +0 -21
  105. data/tracks/ruby/exercises/roman-numerals/example.tt +0 -21
  106. data/tracks/ruby/exercises/run-length-encoding/example.tt +0 -24
  107. data/tracks/ruby/exercises/say/example.tt +0 -19
  108. data/tracks/ruby/exercises/sieve/example.tt +0 -22
  109. data/tracks/ruby/exercises/triangle/example.tt +0 -21
  110. data/tracks/ruby/exercises/two-bucket/example.tt +0 -21
  111. data/tracks/ruby/exercises/word-count/example.tt +0 -23
  112. data/tracks/ruby/exercises/wordy/example.tt +0 -19
  113. data/tracks/ruby/lib/exercise_cases.rb +0 -2
@@ -1,4 +1,4 @@
1
- require 'exercise_cases'
1
+ require 'generator/exercise_cases'
2
2
 
3
3
  class RnaTranscriptionCase < ExerciseCase
4
4
 
@@ -1,4 +1,4 @@
1
- require 'exercise_cases'
1
+ require 'generator/exercise_cases'
2
2
 
3
3
  class RomanNumeralsCase < ExerciseCase
4
4
  def name
@@ -1,14 +1,16 @@
1
- require 'exercise_cases'
1
+ require 'generator/exercise_cases'
2
2
 
3
3
  class RunLengthEncodingCase < ExerciseCase
4
4
 
5
- def assign_input
6
- "input = '#{input}'"
5
+ def workload
6
+ indent_lines([
7
+ "input = '#{input}'",
8
+ "output = '#{expected}'",
9
+ assertion
10
+ ], 4)
7
11
  end
8
12
 
9
- def assign_output
10
- "output = '#{expected}'"
11
- end
13
+ private
12
14
 
13
15
  def assertion
14
16
  if property == 'consistency'
@@ -1,4 +1,4 @@
1
- require 'exercise_cases'
1
+ require 'generator/exercise_cases'
2
2
 
3
3
  class SayCase < ExerciseCase
4
4
 
@@ -1,4 +1,4 @@
1
- require 'exercise_cases'
1
+ require 'generator/exercise_cases'
2
2
 
3
3
  class SieveCase < ExerciseCase
4
4
  OPEN_ARRAY = "[\n\s\s\s\s\s\s".freeze
@@ -6,6 +6,15 @@ class SieveCase < ExerciseCase
6
6
  NEW_ARRAY_ROW = ",\n\s\s\s\s\s\s".freeze
7
7
  ARRAY_ELEMENTS_PER_ROW = 17.freeze
8
8
 
9
+ def workload
10
+ indent_lines([
11
+ "expected = #{expected_string}",
12
+ "assert_equal expected, Sieve.new(#{limit}).primes"
13
+ ], 4)
14
+ end
15
+
16
+ private
17
+
9
18
  def expected_string
10
19
  return expected unless needs_indentation?
11
20
 
@@ -13,8 +22,6 @@ class SieveCase < ExerciseCase
13
22
  "#{OPEN_ARRAY}#{array_rows.join(NEW_ARRAY_ROW)}#{CLOSE_ARRAY}"
14
23
  end
15
24
 
16
- private
17
-
18
25
  def needs_indentation?
19
26
  expected.size > ARRAY_ELEMENTS_PER_ROW
20
27
  end
@@ -1,4 +1,4 @@
1
- require 'exercise_cases'
1
+ require 'generator/exercise_cases'
2
2
 
3
3
  class TournamentCase < ExerciseCase
4
4
 
@@ -1,4 +1,4 @@
1
- require 'exercise_cases'
1
+ require 'generator/exercise_cases'
2
2
 
3
3
  class TransposeCase < ExerciseCase
4
4
 
@@ -1,4 +1,4 @@
1
- require 'exercise_cases'
1
+ require 'generator/exercise_cases'
2
2
 
3
3
  class TriangleCase < ExerciseCase
4
4
  def name
@@ -1,4 +1,4 @@
1
- require 'exercise_cases'
1
+ require 'generator/exercise_cases'
2
2
 
3
3
  class TwoBucketCase < ExerciseCase
4
4
  def name
@@ -1,7 +1,18 @@
1
- require 'exercise_cases'
1
+ require 'generator/exercise_cases'
2
2
 
3
3
  class WordCountCase < ExerciseCase
4
4
 
5
+ def workload
6
+ indent_lines([
7
+ "phrase = #{object_under_test}",
8
+ "counts = #{expected}",
9
+ "assert_equal counts, phrase.word_count"
10
+ ], 4)
11
+
12
+ end
13
+
14
+ private
15
+
5
16
  def object_under_test
6
17
  %Q(Phrase.new(#{input.inspect}))
7
18
  end
@@ -1,4 +1,4 @@
1
- require 'exercise_cases'
1
+ require 'generator/exercise_cases'
2
2
 
3
3
  class WordyCase < ExerciseCase
4
4
 
@@ -1,4 +1,4 @@
1
- require 'exercise_cases'
1
+ require 'generator/exercise_cases'
2
2
 
3
3
  class BetaCase < ExerciseCase
4
4
  def workload
@@ -0,0 +1,33 @@
1
+ require_relative '../../test_helper.rb'
2
+
3
+ module Generator
4
+ module Files
5
+ class GeneratorCasesTest < Minitest::Test
6
+ def test_no_cases_found
7
+ track_path = 'test/fixtures/nonexistant'
8
+ assert_equal [], GeneratorCases.available(track_path)
9
+ end
10
+
11
+ def test_cases_found
12
+ track_path = 'test/fixtures/xruby'
13
+ assert_equal %w(alpha beta), GeneratorCases.available(track_path).sort
14
+ end
15
+
16
+ def test_available_returns_exercise_names
17
+ track_path = 'test/fixtures/xruby'
18
+ Dir.stub :[], %w(/alpha_cases.rb hy_phen_ated_cases.rb) do
19
+ assert_equal %w(alpha hy-phen-ated), GeneratorCases.available(track_path)
20
+ end
21
+ end
22
+
23
+ def test_filename
24
+ exercise_name = 'two-parter'
25
+ assert_equal 'two_parter_cases', GeneratorCases.filename(exercise_name)
26
+ end
27
+
28
+ def test_class_name
29
+ assert_equal 'TwoParterCase', GeneratorCases.class_name('two-parter')
30
+ end
31
+ end
32
+ end
33
+ end
@@ -2,34 +2,6 @@ require_relative '../../test_helper.rb'
2
2
 
3
3
  module Generator
4
4
  module Files
5
- class GeneratorCasesTest < Minitest::Test
6
- def test_no_cases_found
7
- track_path = 'test/fixtures/nonexistant'
8
- assert_equal [], GeneratorCases.available(track_path)
9
- end
10
-
11
- def test_cases_found
12
- track_path = 'test/fixtures/xruby'
13
- assert_equal %w(alpha beta), GeneratorCases.available(track_path).sort
14
- end
15
-
16
- def test_available_returns_exercise_names
17
- track_path = 'test/fixtures/xruby'
18
- Dir.stub :[], %w(/alpha_cases.rb hy_phen_ated_cases.rb) do
19
- assert_equal %w(alpha hy-phen-ated), GeneratorCases.available(track_path)
20
- end
21
- end
22
-
23
- def test_filename
24
- exercise_name = 'two-parter'
25
- assert_equal 'two_parter_cases', GeneratorCases.filename(exercise_name)
26
- end
27
-
28
- def test_class_name
29
- assert_equal 'TwoParterCase', GeneratorCases.class_name('two-parter')
30
- end
31
- end
32
-
33
5
  class TrackFilesTest < Minitest::Test
34
6
  FixturePaths = Paths.new(
35
7
  metadata: 'test/fixtures/metadata',
@@ -64,6 +36,20 @@ module Generator
64
36
  subject = TestTrackFiles.new
65
37
  assert_instance_of TestsTemplateFile, subject.tests_template
66
38
  end
39
+
40
+ class TestTrackFilesUseDefault
41
+ def initialize
42
+ @paths = FixturePaths
43
+ @exercise_name = 'notemplate'
44
+ end
45
+ attr_reader :paths, :exercise_name
46
+ include TrackFiles
47
+ end
48
+
49
+ def test_default_tests_template
50
+ subject = TestTrackFiles.new
51
+ assert_instance_of TestsTemplateFile, subject.tests_template
52
+ end
67
53
  end
68
54
 
69
55
  class TestsVersionFileTest < Minitest::Test
@@ -2,26 +2,44 @@ require_relative '../test_helper'
2
2
 
3
3
  module Generator
4
4
  class TestCasesValuesTest < Minitest::Test
5
+ def setup
6
+ @arguments = {
7
+ abbreviated_commit_hash: nil, version: nil, exercise_name: nil, test_cases: nil
8
+ }
9
+ end
10
+
5
11
  def test_abbreviated_commit_hash
6
12
  expected_abbreviated_commit_hash = '1234567'
7
- subject = TemplateValues.new(abbreviated_commit_hash: expected_abbreviated_commit_hash, version: nil, test_cases: nil)
13
+ subject = TemplateValues.new(@arguments.merge(abbreviated_commit_hash: expected_abbreviated_commit_hash))
8
14
  assert_equal expected_abbreviated_commit_hash, subject.abbreviated_commit_hash
9
15
  end
10
16
 
11
17
  def test_version
12
18
  expected_version = '1234567'
13
- subject = TemplateValues.new(version: expected_version, abbreviated_commit_hash: nil, test_cases: nil)
19
+ subject = TemplateValues.new(@arguments.merge(version: expected_version))
14
20
  assert_equal expected_version, subject.version
15
21
  end
16
22
 
23
+ def test_exercise_name
24
+ expected_exercise_name = 'alpha_beta'
25
+ subject = TemplateValues.new(@arguments.merge(exercise_name: 'alpha-beta'))
26
+ assert_equal expected_exercise_name, subject.exercise_name
27
+ end
28
+
29
+ def test_exercise_name_camel
30
+ expected_exercise_name_camel = 'AlphaBeta'
31
+ subject = TemplateValues.new(@arguments.merge(exercise_name: 'alpha-beta'))
32
+ assert_equal expected_exercise_name_camel, subject.exercise_name_camel
33
+ end
34
+
17
35
  def test_test_cases
18
36
  expected_test_cases = 'should be TemplateValues class'
19
- subject = TemplateValues.new(test_cases: expected_test_cases, abbreviated_commit_hash: nil, version: nil)
37
+ subject = TemplateValues.new(@arguments.merge(test_cases: expected_test_cases))
20
38
  assert_equal expected_test_cases, subject.test_cases
21
39
  end
22
40
 
23
41
  def test_get_binding
24
- subject = TemplateValues.new(abbreviated_commit_hash: nil, version: nil, test_cases: nil)
42
+ subject = TemplateValues.new(@arguments)
25
43
  assert_instance_of Binding, subject.get_binding
26
44
  end
27
45
  end
@@ -78,6 +78,16 @@
78
78
  "panic"
79
79
  ]
80
80
  },
81
+ {
82
+ "slug": "run-length-encoding",
83
+ "difficulty": 4,
84
+ "topics": [
85
+ "string concatenation",
86
+ "conversion between string and int",
87
+ "use of primitive char",
88
+ "loop"
89
+ ]
90
+ },
81
91
  {
82
92
  "slug": "hamming",
83
93
  "difficulty": 4,
@@ -0,0 +1,4 @@
1
+ [root]
2
+ name = "run-length-encoding"
3
+ version = "0.1.0"
4
+
@@ -0,0 +1,6 @@
1
+ [package]
2
+ name = "run-length-encoding"
3
+ version = "0.1.0"
4
+ authors = ["zombiefungus <divmermarlav@gmail.com>"]
5
+
6
+ [dependencies]
@@ -0,0 +1,45 @@
1
+ use std::cmp;
2
+
3
+ pub fn encode(input: &str) -> String {
4
+ input
5
+ .chars()
6
+ .fold((String::new(), ' ', 0, 1), |(mut acc, last, last_n, pos), c| {
7
+ // acc = where answer is accumulated
8
+ // last = last character read
9
+ // last_n = accum count for last
10
+ if c == last {
11
+ if pos == input.len() { // end of string
12
+ acc += (last_n + 1).to_string().as_str();
13
+ acc.push(c);
14
+ }
15
+ (acc, last, last_n + 1, pos + 1)
16
+ }
17
+ else {
18
+ if last_n > 1 {
19
+ acc += last_n.to_string().as_str();
20
+ }
21
+ if last_n > 0 { // ignore initial last (single whitespace)
22
+ acc.push(last);
23
+ }
24
+ if pos == input.len() { // end of string
25
+ acc.push(c);
26
+ }
27
+ (acc, c, 1, pos + 1)
28
+ }
29
+ }).0
30
+ }
31
+
32
+ pub fn decode(input: &str) -> String {
33
+ input
34
+ .chars()
35
+ .fold((String::new(), 0), |(mut acc, last_n), c| {
36
+ if let Some(d) = c.to_digit(10) {
37
+ (acc, 10*last_n + d)
38
+ }
39
+ else {
40
+ acc += c.to_string()
41
+ .repeat(cmp::max(last_n, 1) as usize).as_str();
42
+ (acc, 0)
43
+ }
44
+ }).0
45
+ }
@@ -0,0 +1,86 @@
1
+ extern crate run_length_encoding as rle;
2
+
3
+ // encoding tests
4
+
5
+ #[test]
6
+ fn test_encode_empty_string() {
7
+ assert_eq!("", rle::encode(""));
8
+ }
9
+
10
+ #[test]
11
+ #[ignore]
12
+ fn test_encode_single_characters() {
13
+ assert_eq!("XYZ", rle::encode("XYZ"));
14
+ }
15
+
16
+ #[test]
17
+ #[ignore]
18
+ fn test_encode_string_with_no_single_characters() {
19
+ assert_eq!("2A3B4C", rle::encode("AABBBCCCC"));
20
+ }
21
+
22
+ #[test]
23
+ #[ignore]
24
+ fn test_encode_single_characters_mixed_with_repeated_characters() {
25
+ assert_eq!("12WB12W3B24WB", rle::encode(
26
+ "WWWWWWWWWWWWBWWWWWWWWWWWWBBBWWWWWWWWWWWWWWWWWWWWWWWWB"));
27
+ }
28
+
29
+ #[test]
30
+ #[ignore]
31
+ fn test_encode_multiple_whitespace_mixed_in_string() {
32
+ assert_eq!("2 hs2q q2w2 ", rle::encode(" hsqq qww "));
33
+ }
34
+
35
+ #[test]
36
+ #[ignore]
37
+ fn test_encode_lowercase_characters() {
38
+ assert_eq!("2a3b4c", rle::encode("aabbbcccc"));
39
+ }
40
+
41
+ // decoding tests
42
+
43
+ #[test]
44
+ #[ignore]
45
+ fn test_decode_empty_string() {
46
+ assert_eq!("", rle::decode(""));
47
+ }
48
+
49
+ #[test]
50
+ #[ignore]
51
+ fn test_decode_single_characters_only() {
52
+ assert_eq!("XYZ", rle::decode("XYZ"));
53
+ }
54
+
55
+ #[test]
56
+ #[ignore]
57
+ fn test_decode_string_with_no_single_characters() {
58
+ assert_eq!("AABBBCCCC", rle::decode("2A3B4C"));
59
+ }
60
+
61
+ #[test]
62
+ #[ignore]
63
+ fn test_decode_single_characters_with_repeated_characters() {
64
+ assert_eq!("WWWWWWWWWWWWBWWWWWWWWWWWWBBBWWWWWWWWWWWWWWWWWWWWWWWWB",
65
+ rle::decode("12WB12W3B24WB"));
66
+ }
67
+
68
+ #[test]
69
+ #[ignore]
70
+ fn test_decode_multiple_whitespace_mixed_in_string() {
71
+ assert_eq!(" hsqq qww ", rle::decode("2 hs2q q2w2 "));
72
+ }
73
+
74
+ #[test]
75
+ #[ignore]
76
+ fn test_decode_lower_case_string() {
77
+ assert_eq!("aabbbcccc", rle::decode("2a3b4c"));
78
+ }
79
+
80
+ // consistency test
81
+
82
+ #[test]
83
+ #[ignore]
84
+ fn test_consistency() {
85
+ assert_eq!("zzz ZZ zZ", rle::decode(rle::encode("zzz ZZ zZ").as_str()));
86
+ }
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.2
4
+ version: 2.1.0.3
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-04-27 00:00:00.000000000 Z
11
+ date: 2017-04-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rubyzip
@@ -7168,7 +7168,6 @@ files:
7168
7168
  - tracks/ruby/exercises/acronym/.meta/.version
7169
7169
  - tracks/ruby/exercises/acronym/acronym_test.rb
7170
7170
  - tracks/ruby/exercises/acronym/example.rb
7171
- - tracks/ruby/exercises/acronym/example.tt
7172
7171
  - tracks/ruby/exercises/all-your-base/.meta/.version
7173
7172
  - tracks/ruby/exercises/all-your-base/all_your_base_test.rb
7174
7173
  - tracks/ruby/exercises/all-your-base/example.rb
@@ -7182,7 +7181,6 @@ files:
7182
7181
  - tracks/ruby/exercises/anagram/.meta/.version
7183
7182
  - tracks/ruby/exercises/anagram/anagram_test.rb
7184
7183
  - tracks/ruby/exercises/anagram/example.rb
7185
- - tracks/ruby/exercises/anagram/example.tt
7186
7184
  - tracks/ruby/exercises/atbash-cipher/atbash_cipher_test.rb
7187
7185
  - tracks/ruby/exercises/atbash-cipher/example.rb
7188
7186
  - tracks/ruby/exercises/beer-song/.meta/.version
@@ -7196,7 +7194,6 @@ files:
7196
7194
  - tracks/ruby/exercises/binary/.meta/.version
7197
7195
  - tracks/ruby/exercises/binary/binary_test.rb
7198
7196
  - tracks/ruby/exercises/binary/example.rb
7199
- - tracks/ruby/exercises/binary/example.tt
7200
7197
  - tracks/ruby/exercises/bob/bob_test.rb
7201
7198
  - tracks/ruby/exercises/bob/example.rb
7202
7199
  - tracks/ruby/exercises/bowling/.meta/.version
@@ -7206,13 +7203,11 @@ files:
7206
7203
  - tracks/ruby/exercises/bracket-push/.meta/.version
7207
7204
  - tracks/ruby/exercises/bracket-push/bracket_push_test.rb
7208
7205
  - tracks/ruby/exercises/bracket-push/example.rb
7209
- - tracks/ruby/exercises/bracket-push/example.tt
7210
7206
  - tracks/ruby/exercises/circular-buffer/circular_buffer_test.rb
7211
7207
  - tracks/ruby/exercises/circular-buffer/example.rb
7212
7208
  - tracks/ruby/exercises/clock/.meta/.version
7213
7209
  - tracks/ruby/exercises/clock/clock_test.rb
7214
7210
  - tracks/ruby/exercises/clock/example.rb
7215
- - tracks/ruby/exercises/clock/example.tt
7216
7211
  - tracks/ruby/exercises/connect/.meta/.version
7217
7212
  - tracks/ruby/exercises/connect/connect_test.rb
7218
7213
  - tracks/ruby/exercises/connect/example.rb
@@ -7222,7 +7217,6 @@ files:
7222
7217
  - tracks/ruby/exercises/custom-set/.meta/.version
7223
7218
  - tracks/ruby/exercises/custom-set/custom_set_test.rb
7224
7219
  - tracks/ruby/exercises/custom-set/example.rb
7225
- - tracks/ruby/exercises/custom-set/example.tt
7226
7220
  - tracks/ruby/exercises/diamond/diamond_test.rb
7227
7221
  - tracks/ruby/exercises/diamond/example.rb
7228
7222
  - tracks/ruby/exercises/difference-of-squares/.meta/.version
@@ -7248,11 +7242,9 @@ files:
7248
7242
  - tracks/ruby/exercises/grade-school/grade_school_test.rb
7249
7243
  - tracks/ruby/exercises/grains/.meta/.version
7250
7244
  - tracks/ruby/exercises/grains/example.rb
7251
- - tracks/ruby/exercises/grains/example.tt
7252
7245
  - tracks/ruby/exercises/grains/grains_test.rb
7253
7246
  - tracks/ruby/exercises/hamming/.meta/.version
7254
7247
  - tracks/ruby/exercises/hamming/example.rb
7255
- - tracks/ruby/exercises/hamming/example.tt
7256
7248
  - tracks/ruby/exercises/hamming/hamming_test.rb
7257
7249
  - tracks/ruby/exercises/hello-world/.meta/.version
7258
7250
  - tracks/ruby/exercises/hello-world/GETTING_STARTED.md
@@ -7265,13 +7257,11 @@ files:
7265
7257
  - tracks/ruby/exercises/house/house_test.rb
7266
7258
  - tracks/ruby/exercises/isogram/.meta/.version
7267
7259
  - tracks/ruby/exercises/isogram/example.rb
7268
- - tracks/ruby/exercises/isogram/example.tt
7269
7260
  - tracks/ruby/exercises/isogram/isogram_test.rb
7270
7261
  - tracks/ruby/exercises/kindergarten-garden/example.rb
7271
7262
  - tracks/ruby/exercises/kindergarten-garden/kindergarten_garden_test.rb
7272
7263
  - tracks/ruby/exercises/largest-series-product/.meta/.version
7273
7264
  - tracks/ruby/exercises/largest-series-product/example.rb
7274
- - tracks/ruby/exercises/largest-series-product/example.tt
7275
7265
  - tracks/ruby/exercises/largest-series-product/largest_series_product_test.rb
7276
7266
  - tracks/ruby/exercises/leap/.meta/.version
7277
7267
  - tracks/ruby/exercises/leap/example.rb
@@ -7283,7 +7273,6 @@ files:
7283
7273
  - tracks/ruby/exercises/list-ops/list_ops_test.rb
7284
7274
  - tracks/ruby/exercises/luhn/.meta/.version
7285
7275
  - tracks/ruby/exercises/luhn/example.rb
7286
- - tracks/ruby/exercises/luhn/example.tt
7287
7276
  - tracks/ruby/exercises/luhn/luhn_test.rb
7288
7277
  - tracks/ruby/exercises/matrix/example.rb
7289
7278
  - tracks/ruby/exercises/matrix/matrix_test.rb
@@ -7293,13 +7282,11 @@ files:
7293
7282
  - tracks/ruby/exercises/minesweeper/minesweeper_test.rb
7294
7283
  - tracks/ruby/exercises/nth-prime/.meta/.version
7295
7284
  - tracks/ruby/exercises/nth-prime/example.rb
7296
- - tracks/ruby/exercises/nth-prime/example.tt
7297
7285
  - tracks/ruby/exercises/nth-prime/nth_prime_test.rb
7298
7286
  - tracks/ruby/exercises/nucleotide-count/example.rb
7299
7287
  - tracks/ruby/exercises/nucleotide-count/nucleotide_count_test.rb
7300
7288
  - tracks/ruby/exercises/ocr-numbers/.meta/.version
7301
7289
  - tracks/ruby/exercises/ocr-numbers/example.rb
7302
- - tracks/ruby/exercises/ocr-numbers/example.tt
7303
7290
  - tracks/ruby/exercises/ocr-numbers/ocr_numbers_test.rb
7304
7291
  - tracks/ruby/exercises/octal/example.rb
7305
7292
  - tracks/ruby/exercises/octal/octal_test.rb
@@ -7307,7 +7294,6 @@ files:
7307
7294
  - tracks/ruby/exercises/palindrome-products/palindrome_products_test.rb
7308
7295
  - tracks/ruby/exercises/pangram/.meta/.version
7309
7296
  - tracks/ruby/exercises/pangram/example.rb
7310
- - tracks/ruby/exercises/pangram/example.tt
7311
7297
  - tracks/ruby/exercises/pangram/pangram_test.rb
7312
7298
  - tracks/ruby/exercises/pascals-triangle/example.rb
7313
7299
  - tracks/ruby/exercises/pascals-triangle/pascals_triangle_test.rb
@@ -7317,7 +7303,6 @@ files:
7317
7303
  - tracks/ruby/exercises/phone-number/phone_number_test.rb
7318
7304
  - tracks/ruby/exercises/pig-latin/.meta/.version
7319
7305
  - tracks/ruby/exercises/pig-latin/example.rb
7320
- - tracks/ruby/exercises/pig-latin/example.tt
7321
7306
  - tracks/ruby/exercises/pig-latin/pig_latin_test.rb
7322
7307
  - tracks/ruby/exercises/point-mutations/example.rb
7323
7308
  - tracks/ruby/exercises/point-mutations/point_mutations_test.rb
@@ -7333,17 +7318,14 @@ files:
7333
7318
  - tracks/ruby/exercises/pythagorean-triplet/pythagorean_triplet_test.rb
7334
7319
  - tracks/ruby/exercises/queen-attack/.meta/.version
7335
7320
  - tracks/ruby/exercises/queen-attack/example.rb
7336
- - tracks/ruby/exercises/queen-attack/example.tt
7337
7321
  - tracks/ruby/exercises/queen-attack/queen_attack_test.rb
7338
7322
  - tracks/ruby/exercises/rail-fence-cipher/example.rb
7339
7323
  - tracks/ruby/exercises/rail-fence-cipher/rail_fence_cipher_test.rb
7340
7324
  - tracks/ruby/exercises/raindrops/.meta/.version
7341
7325
  - tracks/ruby/exercises/raindrops/example.rb
7342
- - tracks/ruby/exercises/raindrops/example.tt
7343
7326
  - tracks/ruby/exercises/raindrops/raindrops_test.rb
7344
7327
  - tracks/ruby/exercises/rna-transcription/.meta/.version
7345
7328
  - tracks/ruby/exercises/rna-transcription/example.rb
7346
- - tracks/ruby/exercises/rna-transcription/example.tt
7347
7329
  - tracks/ruby/exercises/rna-transcription/rna_transcription_test.rb
7348
7330
  - tracks/ruby/exercises/robot-name/example.rb
7349
7331
  - tracks/ruby/exercises/robot-name/robot_name_test.rb
@@ -7351,17 +7333,14 @@ files:
7351
7333
  - tracks/ruby/exercises/robot-simulator/robot_simulator_test.rb
7352
7334
  - tracks/ruby/exercises/roman-numerals/.meta/.version
7353
7335
  - tracks/ruby/exercises/roman-numerals/example.rb
7354
- - tracks/ruby/exercises/roman-numerals/example.tt
7355
7336
  - tracks/ruby/exercises/roman-numerals/roman_numerals_test.rb
7356
7337
  - tracks/ruby/exercises/run-length-encoding/.meta/.version
7357
7338
  - tracks/ruby/exercises/run-length-encoding/example.rb
7358
- - tracks/ruby/exercises/run-length-encoding/example.tt
7359
7339
  - tracks/ruby/exercises/run-length-encoding/run_length_encoding_test.rb
7360
7340
  - tracks/ruby/exercises/saddle-points/example.rb
7361
7341
  - tracks/ruby/exercises/saddle-points/saddle_points_test.rb
7362
7342
  - tracks/ruby/exercises/say/.meta/.version
7363
7343
  - tracks/ruby/exercises/say/example.rb
7364
- - tracks/ruby/exercises/say/example.tt
7365
7344
  - tracks/ruby/exercises/say/say_test.rb
7366
7345
  - tracks/ruby/exercises/scale-generator/example.rb
7367
7346
  - tracks/ruby/exercises/scale-generator/scale_generator_test.rb
@@ -7373,7 +7352,6 @@ files:
7373
7352
  - tracks/ruby/exercises/series/series_test.rb
7374
7353
  - tracks/ruby/exercises/sieve/.meta/.version
7375
7354
  - tracks/ruby/exercises/sieve/example.rb
7376
- - tracks/ruby/exercises/sieve/example.tt
7377
7355
  - tracks/ruby/exercises/sieve/sieve_test.rb
7378
7356
  - tracks/ruby/exercises/simple-cipher/example.rb
7379
7357
  - tracks/ruby/exercises/simple-cipher/simple_cipher_test.rb
@@ -7396,7 +7374,6 @@ files:
7396
7374
  - tracks/ruby/exercises/transpose/transpose_test.rb
7397
7375
  - tracks/ruby/exercises/triangle/.meta/.version
7398
7376
  - tracks/ruby/exercises/triangle/example.rb
7399
- - tracks/ruby/exercises/triangle/example.tt
7400
7377
  - tracks/ruby/exercises/triangle/triangle_test.rb
7401
7378
  - tracks/ruby/exercises/trinary/example.rb
7402
7379
  - tracks/ruby/exercises/trinary/trinary_test.rb
@@ -7405,15 +7382,12 @@ files:
7405
7382
  - tracks/ruby/exercises/twelve-days/twelve_days_test.rb
7406
7383
  - tracks/ruby/exercises/two-bucket/.meta/.version
7407
7384
  - tracks/ruby/exercises/two-bucket/example.rb
7408
- - tracks/ruby/exercises/two-bucket/example.tt
7409
7385
  - tracks/ruby/exercises/two-bucket/two_bucket_test.rb
7410
7386
  - tracks/ruby/exercises/word-count/.meta/.version
7411
7387
  - tracks/ruby/exercises/word-count/example.rb
7412
- - tracks/ruby/exercises/word-count/example.tt
7413
7388
  - tracks/ruby/exercises/word-count/word_count_test.rb
7414
7389
  - tracks/ruby/exercises/wordy/.meta/.version
7415
7390
  - tracks/ruby/exercises/wordy/example.rb
7416
- - tracks/ruby/exercises/wordy/example.tt
7417
7391
  - tracks/ruby/exercises/wordy/wordy_test.rb
7418
7392
  - tracks/ruby/img/icon.png
7419
7393
  - tracks/ruby/lib/acronym_cases.rb
@@ -7431,17 +7405,18 @@ files:
7431
7405
  - tracks/ruby/lib/difference_of_squares_cases.rb
7432
7406
  - tracks/ruby/lib/disable_skip.rb
7433
7407
  - tracks/ruby/lib/dominoes_cases.rb
7434
- - tracks/ruby/lib/exercise_cases.rb
7435
7408
  - tracks/ruby/lib/generator.rb
7436
7409
  - tracks/ruby/lib/generator/case_values.rb
7437
7410
  - tracks/ruby/lib/generator/command_line.rb
7438
7411
  - tracks/ruby/lib/generator/exercise_cases.rb
7439
7412
  - tracks/ruby/lib/generator/files.rb
7413
+ - tracks/ruby/lib/generator/files/generator_cases.rb
7440
7414
  - tracks/ruby/lib/generator/files/metadata_files.rb
7441
7415
  - tracks/ruby/lib/generator/files/track_files.rb
7442
7416
  - tracks/ruby/lib/generator/git_command.rb
7443
7417
  - tracks/ruby/lib/generator/repository.rb
7444
7418
  - tracks/ruby/lib/generator/template_values.rb
7419
+ - tracks/ruby/lib/generator/test_template.erb
7445
7420
  - tracks/ruby/lib/generator/underscore.rb
7446
7421
  - tracks/ruby/lib/gigasecond_cases.rb
7447
7422
  - tracks/ruby/lib/grains_cases.rb
@@ -7479,8 +7454,10 @@ files:
7479
7454
  - tracks/ruby/test/fixtures/xruby/exercises/alpha/example.tt
7480
7455
  - tracks/ruby/test/fixtures/xruby/lib/alpha_cases.rb
7481
7456
  - tracks/ruby/test/fixtures/xruby/lib/beta_cases.rb
7457
+ - tracks/ruby/test/fixtures/xruby/lib/generator/test_template.erb
7482
7458
  - tracks/ruby/test/generator/case_values_test.rb
7483
7459
  - tracks/ruby/test/generator/command_line_test.rb
7460
+ - tracks/ruby/test/generator/files/generate_cases_test.rb
7484
7461
  - tracks/ruby/test/generator/files/metadata_files_test.rb
7485
7462
  - tracks/ruby/test/generator/files/track_files_test.rb
7486
7463
  - tracks/ruby/test/generator/files_test.rb
@@ -7781,6 +7758,11 @@ files:
7781
7758
  - tracks/rust/exercises/rotational-cipher/example.rs
7782
7759
  - tracks/rust/exercises/rotational-cipher/src/lib.rs
7783
7760
  - tracks/rust/exercises/rotational-cipher/tests/rotational-cipher.rs
7761
+ - tracks/rust/exercises/run-length-encoding/Cargo.lock
7762
+ - tracks/rust/exercises/run-length-encoding/Cargo.toml
7763
+ - tracks/rust/exercises/run-length-encoding/example.rs
7764
+ - tracks/rust/exercises/run-length-encoding/src/lib.rs
7765
+ - tracks/rust/exercises/run-length-encoding/tests/run-length-encoding.rs
7784
7766
  - tracks/rust/exercises/scrabble-score/.gitignore
7785
7767
  - tracks/rust/exercises/scrabble-score/Cargo.lock
7786
7768
  - tracks/rust/exercises/scrabble-score/Cargo.toml