trackler 2.2.1.1 → 2.2.1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/trackler/version.rb +1 -1
- data/tracks/erlang/config/maintainers.json +29 -0
- data/tracks/go/config.json +11 -8
- data/tracks/haskell/config/maintainers.json +44 -0
- data/tracks/java/docs/TESTS.md +3 -3
- data/tracks/javascript/config.json +14 -3
- data/tracks/javascript/exercises/sublist/README.md +50 -0
- data/tracks/javascript/exercises/sublist/example.js +31 -0
- data/tracks/javascript/exercises/sublist/sublist.spec.js +126 -0
- data/tracks/pony/README.md +1 -1
- data/tracks/pony/config.json +0 -2
- data/tracks/pony/config/exercise_readme.go.tmpl +16 -0
- data/tracks/pony/exercises/anagram/README.md +13 -0
- data/tracks/pony/exercises/atbash-cipher/README.md +34 -0
- data/tracks/pony/exercises/beer-song/README.md +327 -0
- data/tracks/pony/exercises/bob/README.md +18 -0
- data/tracks/pony/exercises/difference-of-squares/README.md +19 -0
- data/tracks/pony/exercises/hamming/README.md +42 -0
- data/tracks/pony/exercises/hello-world/README.md +21 -0
- data/tracks/pony/exercises/leap/README.md +33 -0
- data/tracks/pony/exercises/pascals-triangle/README.md +21 -0
- data/tracks/pony/exercises/rna-transcription/README.md +25 -0
- data/tracks/pony/exercises/roman-numerals/README.md +49 -0
- data/tracks/ruby/config.json +13 -0
- data/tracks/ruby/config/maintainers.json +64 -0
- data/tracks/ruby/exercises/rotational-cipher/.meta/.version +1 -0
- data/tracks/ruby/exercises/rotational-cipher/.meta/generator/rotational_cipher_case.rb +9 -0
- data/tracks/ruby/exercises/rotational-cipher/.meta/solutions/rotational_cipher.rb +53 -0
- data/tracks/ruby/exercises/rotational-cipher/rotational_cipher_test.rb +77 -0
- metadata +24 -2
@@ -0,0 +1,21 @@
|
|
1
|
+
# Hello World
|
2
|
+
|
3
|
+
The classical introductory exercise. Just say "Hello, World!".
|
4
|
+
|
5
|
+
["Hello, World!"](http://en.wikipedia.org/wiki/%22Hello,_world!%22_program) is
|
6
|
+
the traditional first program for beginning programming in a new language
|
7
|
+
or environment.
|
8
|
+
|
9
|
+
The objectives are simple:
|
10
|
+
|
11
|
+
- Write a function that returns the string "Hello, World!".
|
12
|
+
- Run the test suite and make sure that it succeeds.
|
13
|
+
- Submit your solution and check it at the website.
|
14
|
+
|
15
|
+
If everything goes well, you will be ready to fetch your first real exercise.
|
16
|
+
## Source
|
17
|
+
|
18
|
+
This is an exercise to introduce users to using Exercism [http://en.wikipedia.org/wiki/%22Hello,_world!%22_program](http://en.wikipedia.org/wiki/%22Hello,_world!%22_program)
|
19
|
+
|
20
|
+
## Submitting Incomplete Solutions
|
21
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
@@ -0,0 +1,33 @@
|
|
1
|
+
# Leap
|
2
|
+
|
3
|
+
Given a year, report if it is a leap year.
|
4
|
+
|
5
|
+
The tricky thing here is that a leap year in the Gregorian calendar occurs:
|
6
|
+
|
7
|
+
```plain
|
8
|
+
on every year that is evenly divisible by 4
|
9
|
+
except every year that is evenly divisible by 100
|
10
|
+
unless the year is also evenly divisible by 400
|
11
|
+
```
|
12
|
+
|
13
|
+
For example, 1997 is not a leap year, but 1996 is. 1900 is not a leap
|
14
|
+
year, but 2000 is.
|
15
|
+
|
16
|
+
If your language provides a method in the standard library that does
|
17
|
+
this look-up, pretend it doesn't exist and implement it yourself.
|
18
|
+
|
19
|
+
## Notes
|
20
|
+
|
21
|
+
Though our exercise adopts some very simple rules, there is more to
|
22
|
+
learn!
|
23
|
+
|
24
|
+
For a delightful, four minute explanation of the whole leap year
|
25
|
+
phenomenon, go watch [this youtube video][video].
|
26
|
+
|
27
|
+
[video]: http://www.youtube.com/watch?v=xX96xng7sAE
|
28
|
+
## Source
|
29
|
+
|
30
|
+
JavaRanch Cattle Drive, exercise 3 [http://www.javaranch.com/leap.jsp](http://www.javaranch.com/leap.jsp)
|
31
|
+
|
32
|
+
## Submitting Incomplete Solutions
|
33
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# Pascals Triangle
|
2
|
+
|
3
|
+
Compute Pascal's triangle up to a given number of rows.
|
4
|
+
|
5
|
+
In Pascal's Triangle each number is computed by adding the numbers to
|
6
|
+
the right and left of the current position in the previous row.
|
7
|
+
|
8
|
+
```plain
|
9
|
+
1
|
10
|
+
1 1
|
11
|
+
1 2 1
|
12
|
+
1 3 3 1
|
13
|
+
1 4 6 4 1
|
14
|
+
# ... etc
|
15
|
+
```
|
16
|
+
## Source
|
17
|
+
|
18
|
+
Pascal's Triangle at Wolfram Math World [http://mathworld.wolfram.com/PascalsTriangle.html](http://mathworld.wolfram.com/PascalsTriangle.html)
|
19
|
+
|
20
|
+
## Submitting Incomplete Solutions
|
21
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# Rna Transcription
|
2
|
+
|
3
|
+
Given a DNA strand, return its RNA complement (per RNA transcription).
|
4
|
+
|
5
|
+
Both DNA and RNA strands are a sequence of nucleotides.
|
6
|
+
|
7
|
+
The four nucleotides found in DNA are adenine (**A**), cytosine (**C**),
|
8
|
+
guanine (**G**) and thymine (**T**).
|
9
|
+
|
10
|
+
The four nucleotides found in RNA are adenine (**A**), cytosine (**C**),
|
11
|
+
guanine (**G**) and uracil (**U**).
|
12
|
+
|
13
|
+
Given a DNA strand, its transcribed RNA strand is formed by replacing
|
14
|
+
each nucleotide with its complement:
|
15
|
+
|
16
|
+
* `G` -> `C`
|
17
|
+
* `C` -> `G`
|
18
|
+
* `T` -> `A`
|
19
|
+
* `A` -> `U`
|
20
|
+
## Source
|
21
|
+
|
22
|
+
Rosalind [http://rosalind.info/problems/rna](http://rosalind.info/problems/rna)
|
23
|
+
|
24
|
+
## Submitting Incomplete Solutions
|
25
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
@@ -0,0 +1,49 @@
|
|
1
|
+
# Roman Numerals
|
2
|
+
|
3
|
+
Write a function to convert from normal numbers to Roman Numerals.
|
4
|
+
|
5
|
+
The Romans were a clever bunch. They conquered most of Europe and ruled
|
6
|
+
it for hundreds of years. They invented concrete and straight roads and
|
7
|
+
even bikinis. One thing they never discovered though was the number
|
8
|
+
zero. This made writing and dating extensive histories of their exploits
|
9
|
+
slightly more challenging, but the system of numbers they came up with
|
10
|
+
is still in use today. For example the BBC uses Roman numerals to date
|
11
|
+
their programmes.
|
12
|
+
|
13
|
+
The Romans wrote numbers using letters - I, V, X, L, C, D, M. (notice
|
14
|
+
these letters have lots of straight lines and are hence easy to hack
|
15
|
+
into stone tablets).
|
16
|
+
|
17
|
+
```
|
18
|
+
1 => I
|
19
|
+
10 => X
|
20
|
+
7 => VII
|
21
|
+
```
|
22
|
+
|
23
|
+
There is no need to be able to convert numbers larger than about 3000.
|
24
|
+
(The Romans themselves didn't tend to go any higher)
|
25
|
+
|
26
|
+
Wikipedia says: Modern Roman numerals ... are written by expressing each
|
27
|
+
digit separately starting with the left most digit and skipping any
|
28
|
+
digit with a value of zero.
|
29
|
+
|
30
|
+
To see this in practice, consider the example of 1990.
|
31
|
+
|
32
|
+
In Roman numerals 1990 is MCMXC:
|
33
|
+
|
34
|
+
1000=M
|
35
|
+
900=CM
|
36
|
+
90=XC
|
37
|
+
|
38
|
+
2008 is written as MMVIII:
|
39
|
+
|
40
|
+
2000=MM
|
41
|
+
8=VIII
|
42
|
+
|
43
|
+
See also: http://www.novaroma.org/via_romana/numbers.html
|
44
|
+
## Source
|
45
|
+
|
46
|
+
The Roman Numeral Kata [http://codingdojo.org/cgi-bin/index.pl?KataRomanNumerals](http://codingdojo.org/cgi-bin/index.pl?KataRomanNumerals)
|
47
|
+
|
48
|
+
## Submitting Incomplete Solutions
|
49
|
+
It's possible to submit an incomplete solution so you can see how others have completed the exercise.
|
data/tracks/ruby/config.json
CHANGED
@@ -859,6 +859,19 @@
|
|
859
859
|
"Mathematics"
|
860
860
|
]
|
861
861
|
},
|
862
|
+
{
|
863
|
+
"uuid": "af5ccf14-eff2-4dc6-b1db-e209cddca62a",
|
864
|
+
"slug": "rotational-cipher",
|
865
|
+
"core": false,
|
866
|
+
"unlocked_by": null,
|
867
|
+
"difficulty": 1,
|
868
|
+
"topics": [
|
869
|
+
"Control-flow (conditionals)",
|
870
|
+
"Control-flow (loops)",
|
871
|
+
"Logic",
|
872
|
+
"Strings"
|
873
|
+
]
|
874
|
+
},
|
862
875
|
{
|
863
876
|
"uuid": "cae4e000-3aac-41f7-b727-f9cce12d058d",
|
864
877
|
"slug": "octal",
|
@@ -0,0 +1,64 @@
|
|
1
|
+
{
|
2
|
+
"maintainers": [
|
3
|
+
{
|
4
|
+
"github_username": "kotp",
|
5
|
+
"show_on_website": false,
|
6
|
+
"alumnus": false,
|
7
|
+
"name": null,
|
8
|
+
"bio": null,
|
9
|
+
"link_text": null,
|
10
|
+
"link_url": null,
|
11
|
+
"avatar_url": null
|
12
|
+
},
|
13
|
+
{
|
14
|
+
"github_username": "bernardoamc",
|
15
|
+
"show_on_website": false,
|
16
|
+
"alumnus": false,
|
17
|
+
"name": null,
|
18
|
+
"bio": null,
|
19
|
+
"link_text": null,
|
20
|
+
"link_url": null,
|
21
|
+
"avatar_url": null
|
22
|
+
},
|
23
|
+
{
|
24
|
+
"github_username": "tommyschaefer",
|
25
|
+
"show_on_website": false,
|
26
|
+
"alumnus": false,
|
27
|
+
"name": null,
|
28
|
+
"bio": null,
|
29
|
+
"link_text": null,
|
30
|
+
"link_url": null,
|
31
|
+
"avatar_url": null
|
32
|
+
},
|
33
|
+
{
|
34
|
+
"github_username": "hilary",
|
35
|
+
"show_on_website": false,
|
36
|
+
"alumnus": false,
|
37
|
+
"name": null,
|
38
|
+
"bio": null,
|
39
|
+
"link_text": null,
|
40
|
+
"link_url": null,
|
41
|
+
"avatar_url": null
|
42
|
+
},
|
43
|
+
{
|
44
|
+
"github_username": "bmulvihill",
|
45
|
+
"show_on_website": false,
|
46
|
+
"alumnus": false,
|
47
|
+
"name": null,
|
48
|
+
"bio": null,
|
49
|
+
"link_text": null,
|
50
|
+
"link_url": null,
|
51
|
+
"avatar_url": null
|
52
|
+
},
|
53
|
+
{
|
54
|
+
"github_username": "Insti",
|
55
|
+
"show_on_website": false,
|
56
|
+
"alumnus": false,
|
57
|
+
"name": null,
|
58
|
+
"bio": null,
|
59
|
+
"link_text": null,
|
60
|
+
"link_url": null,
|
61
|
+
"avatar_url": null
|
62
|
+
}
|
63
|
+
]
|
64
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
1
|
@@ -0,0 +1,53 @@
|
|
1
|
+
module BookKeeping
|
2
|
+
VERSION = 1
|
3
|
+
end
|
4
|
+
|
5
|
+
class RotationalCipher
|
6
|
+
SMALL_LETTERS_RANGE = (97..122)
|
7
|
+
BIG_LETTERS_RANGE = (65..90)
|
8
|
+
ROTATION_MODIFIER = 1
|
9
|
+
|
10
|
+
attr_reader :text
|
11
|
+
|
12
|
+
def initialize(text, key)
|
13
|
+
@text = text
|
14
|
+
@shift_key = key
|
15
|
+
end
|
16
|
+
|
17
|
+
def self.rotate(text, key)
|
18
|
+
new(text, key).rotate
|
19
|
+
end
|
20
|
+
|
21
|
+
def rotate
|
22
|
+
text.split('').map { |char| shift_char(char) }.join
|
23
|
+
end
|
24
|
+
|
25
|
+
private
|
26
|
+
|
27
|
+
def shift_char(char)
|
28
|
+
shift_ascii(char.ord).chr
|
29
|
+
end
|
30
|
+
|
31
|
+
def shift_key
|
32
|
+
@shift_key % 26
|
33
|
+
end
|
34
|
+
|
35
|
+
def shift_ascii(char_ascii)
|
36
|
+
case char_ascii
|
37
|
+
when SMALL_LETTERS_RANGE
|
38
|
+
shift_within(char_ascii, SMALL_LETTERS_RANGE.min, SMALL_LETTERS_RANGE.max)
|
39
|
+
when BIG_LETTERS_RANGE
|
40
|
+
shift_within(char_ascii, BIG_LETTERS_RANGE.min, BIG_LETTERS_RANGE.max)
|
41
|
+
else
|
42
|
+
char_ascii
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
def shift_within(char_ascii, lower_limit, upper_limit)
|
47
|
+
shifted_ascii = char_ascii + shift_key
|
48
|
+
|
49
|
+
return shifted_ascii if shifted_ascii <= upper_limit
|
50
|
+
|
51
|
+
lower_limit + (shifted_ascii - upper_limit - ROTATION_MODIFIER)
|
52
|
+
end
|
53
|
+
end
|
@@ -0,0 +1,77 @@
|
|
1
|
+
require 'minitest/autorun'
|
2
|
+
require_relative 'rotational_cipher'
|
3
|
+
|
4
|
+
# Common test data version: 1.1.0 9c658d1
|
5
|
+
class RotationalCipherTest < Minitest::Test
|
6
|
+
def test_rotate_a_by_0_same_output_as_input
|
7
|
+
# skip
|
8
|
+
assert_equal "a", RotationalCipher.rotate("a", 0)
|
9
|
+
end
|
10
|
+
|
11
|
+
def test_rotate_a_by_1
|
12
|
+
skip
|
13
|
+
assert_equal "b", RotationalCipher.rotate("a", 1)
|
14
|
+
end
|
15
|
+
|
16
|
+
def test_rotate_a_by_26_same_output_as_input
|
17
|
+
skip
|
18
|
+
assert_equal "a", RotationalCipher.rotate("a", 26)
|
19
|
+
end
|
20
|
+
|
21
|
+
def test_rotate_m_by_13
|
22
|
+
skip
|
23
|
+
assert_equal "z", RotationalCipher.rotate("m", 13)
|
24
|
+
end
|
25
|
+
|
26
|
+
def test_rotate_n_by_13_with_wrap_around_alphabet
|
27
|
+
skip
|
28
|
+
assert_equal "a", RotationalCipher.rotate("n", 13)
|
29
|
+
end
|
30
|
+
|
31
|
+
def test_rotate_capital_letters
|
32
|
+
skip
|
33
|
+
assert_equal "TRL", RotationalCipher.rotate("OMG", 5)
|
34
|
+
end
|
35
|
+
|
36
|
+
def test_rotate_spaces
|
37
|
+
skip
|
38
|
+
assert_equal "T R L", RotationalCipher.rotate("O M G", 5)
|
39
|
+
end
|
40
|
+
|
41
|
+
def test_rotate_numbers
|
42
|
+
skip
|
43
|
+
assert_equal "Xiwxmrk 1 2 3 xiwxmrk", RotationalCipher.rotate("Testing 1 2 3 testing", 4)
|
44
|
+
end
|
45
|
+
|
46
|
+
def test_rotate_punctuation
|
47
|
+
skip
|
48
|
+
assert_equal "Gzo'n zvo, Bmviyhv!", RotationalCipher.rotate("Let's eat, Grandma!", 21)
|
49
|
+
end
|
50
|
+
|
51
|
+
def test_rotate_all_letters
|
52
|
+
skip
|
53
|
+
assert_equal "Gur dhvpx oebja sbk whzcf bire gur ynml qbt.", RotationalCipher.rotate("The quick brown fox jumps over the lazy dog.", 13)
|
54
|
+
end
|
55
|
+
|
56
|
+
# Problems in exercism evolve over time, as we find better ways to ask
|
57
|
+
# questions.
|
58
|
+
# The version number refers to the version of the problem you solved,
|
59
|
+
# not your solution.
|
60
|
+
#
|
61
|
+
# Define a constant named VERSION inside of the top level BookKeeping
|
62
|
+
# module, which may be placed near the end of your file.
|
63
|
+
#
|
64
|
+
# In your file, it will look like this:
|
65
|
+
#
|
66
|
+
# module BookKeeping
|
67
|
+
# VERSION = 1 # Where the version number matches the one in the test.
|
68
|
+
# end
|
69
|
+
#
|
70
|
+
# If you are curious, read more about constants on RubyDoc:
|
71
|
+
# http://ruby-doc.org/docs/ruby-doc-bundle/UsersGuide/rg/constants.html
|
72
|
+
|
73
|
+
def test_bookkeeping
|
74
|
+
skip
|
75
|
+
assert_equal 1, BookKeeping::VERSION
|
76
|
+
end
|
77
|
+
end
|
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.2.1.
|
4
|
+
version: 2.2.1.2
|
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-07-
|
11
|
+
date: 2017-07-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rubyzip
|
@@ -3597,6 +3597,7 @@ files:
|
|
3597
3597
|
- tracks/erlang/bin/journey-test.sh
|
3598
3598
|
- tracks/erlang/config.json
|
3599
3599
|
- tracks/erlang/config/exercise_readme.go.tmpl
|
3600
|
+
- tracks/erlang/config/maintainers.json
|
3600
3601
|
- tracks/erlang/docs/ABOUT.md
|
3601
3602
|
- tracks/erlang/docs/EXERCISE_README_INSERT.md
|
3602
3603
|
- tracks/erlang/docs/INSTALLATION.md
|
@@ -4697,6 +4698,7 @@ files:
|
|
4697
4698
|
- tracks/haskell/bin/test-stub
|
4698
4699
|
- tracks/haskell/config.json
|
4699
4700
|
- tracks/haskell/config/exercise_readme.go.tmpl
|
4701
|
+
- tracks/haskell/config/maintainers.json
|
4700
4702
|
- tracks/haskell/docs/ABOUT.md
|
4701
4703
|
- tracks/haskell/docs/EXERCISE_README_INSERT.md
|
4702
4704
|
- tracks/haskell/docs/INSTALLATION.md
|
@@ -6127,6 +6129,9 @@ files:
|
|
6127
6129
|
- tracks/javascript/exercises/strain/README.md
|
6128
6130
|
- tracks/javascript/exercises/strain/example.js
|
6129
6131
|
- tracks/javascript/exercises/strain/strain.spec.js
|
6132
|
+
- tracks/javascript/exercises/sublist/README.md
|
6133
|
+
- tracks/javascript/exercises/sublist/example.js
|
6134
|
+
- tracks/javascript/exercises/sublist/sublist.spec.js
|
6130
6135
|
- tracks/javascript/exercises/sum-of-multiples/README.md
|
6131
6136
|
- tracks/javascript/exercises/sum-of-multiples/example.js
|
6132
6137
|
- tracks/javascript/exercises/sum-of-multiples/sum-of-multiples.spec.js
|
@@ -8430,32 +8435,44 @@ files:
|
|
8430
8435
|
- tracks/pony/bin/install-deps
|
8431
8436
|
- tracks/pony/bin/test-exercises
|
8432
8437
|
- tracks/pony/config.json
|
8438
|
+
- tracks/pony/config/exercise_readme.go.tmpl
|
8433
8439
|
- tracks/pony/docs/ABOUT.md
|
8434
8440
|
- tracks/pony/docs/EXERCISE_README_INSERT.md
|
8435
8441
|
- tracks/pony/docs/INSTALLATION.md
|
8436
8442
|
- tracks/pony/docs/LEARNING.md
|
8437
8443
|
- tracks/pony/docs/RESOURCES.md
|
8438
8444
|
- tracks/pony/docs/TESTS.md
|
8445
|
+
- tracks/pony/exercises/anagram/README.md
|
8439
8446
|
- tracks/pony/exercises/anagram/example.pony
|
8440
8447
|
- tracks/pony/exercises/anagram/test.pony
|
8448
|
+
- tracks/pony/exercises/atbash-cipher/README.md
|
8441
8449
|
- tracks/pony/exercises/atbash-cipher/example.pony
|
8442
8450
|
- tracks/pony/exercises/atbash-cipher/test.pony
|
8451
|
+
- tracks/pony/exercises/beer-song/README.md
|
8443
8452
|
- tracks/pony/exercises/beer-song/example.pony
|
8444
8453
|
- tracks/pony/exercises/beer-song/test.pony
|
8454
|
+
- tracks/pony/exercises/bob/README.md
|
8445
8455
|
- tracks/pony/exercises/bob/example.pony
|
8446
8456
|
- tracks/pony/exercises/bob/test.pony
|
8457
|
+
- tracks/pony/exercises/difference-of-squares/README.md
|
8447
8458
|
- tracks/pony/exercises/difference-of-squares/example.pony
|
8448
8459
|
- tracks/pony/exercises/difference-of-squares/test.pony
|
8460
|
+
- tracks/pony/exercises/hamming/README.md
|
8449
8461
|
- tracks/pony/exercises/hamming/example.pony
|
8450
8462
|
- tracks/pony/exercises/hamming/test.pony
|
8463
|
+
- tracks/pony/exercises/hello-world/README.md
|
8451
8464
|
- tracks/pony/exercises/hello-world/example.pony
|
8452
8465
|
- tracks/pony/exercises/hello-world/test.pony
|
8466
|
+
- tracks/pony/exercises/leap/README.md
|
8453
8467
|
- tracks/pony/exercises/leap/example.pony
|
8454
8468
|
- tracks/pony/exercises/leap/test.pony
|
8469
|
+
- tracks/pony/exercises/pascals-triangle/README.md
|
8455
8470
|
- tracks/pony/exercises/pascals-triangle/example.pony
|
8456
8471
|
- tracks/pony/exercises/pascals-triangle/test.pony
|
8472
|
+
- tracks/pony/exercises/rna-transcription/README.md
|
8457
8473
|
- tracks/pony/exercises/rna-transcription/example.pony
|
8458
8474
|
- tracks/pony/exercises/rna-transcription/test.pony
|
8475
|
+
- tracks/pony/exercises/roman-numerals/README.md
|
8459
8476
|
- tracks/pony/exercises/roman-numerals/example.pony
|
8460
8477
|
- tracks/pony/exercises/roman-numerals/test.pony
|
8461
8478
|
- tracks/pony/img/icon.png
|
@@ -9251,6 +9268,7 @@ files:
|
|
9251
9268
|
- tracks/ruby/bin/setup-git-hoooks
|
9252
9269
|
- tracks/ruby/config.json
|
9253
9270
|
- tracks/ruby/config/exercise_readme.go.tmpl
|
9271
|
+
- tracks/ruby/config/maintainers.json
|
9254
9272
|
- tracks/ruby/docs/24pullrequests.md
|
9255
9273
|
- tracks/ruby/docs/ABOUT.md
|
9256
9274
|
- tracks/ruby/docs/EXERCISE_README_INSERT.md
|
@@ -9533,6 +9551,10 @@ files:
|
|
9533
9551
|
- tracks/ruby/exercises/roman-numerals/.meta/solutions/roman_numerals.rb
|
9534
9552
|
- tracks/ruby/exercises/roman-numerals/README.md
|
9535
9553
|
- tracks/ruby/exercises/roman-numerals/roman_numerals_test.rb
|
9554
|
+
- tracks/ruby/exercises/rotational-cipher/.meta/.version
|
9555
|
+
- tracks/ruby/exercises/rotational-cipher/.meta/generator/rotational_cipher_case.rb
|
9556
|
+
- tracks/ruby/exercises/rotational-cipher/.meta/solutions/rotational_cipher.rb
|
9557
|
+
- tracks/ruby/exercises/rotational-cipher/rotational_cipher_test.rb
|
9536
9558
|
- tracks/ruby/exercises/run-length-encoding/.meta/.version
|
9537
9559
|
- tracks/ruby/exercises/run-length-encoding/.meta/generator/run_length_encoding_case.rb
|
9538
9560
|
- tracks/ruby/exercises/run-length-encoding/.meta/solutions/run_length_encoding.rb
|