cyrillizer 0.2.2 → 0.3.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: f132b629cde031661956744828cf17ff8bdc6905
4
- data.tar.gz: 18b3b6fad6d9169f3125b82bbcba735e402ba3e4
2
+ SHA256:
3
+ metadata.gz: 66cc9274d2bc124f9f0d1e677a2113226170d41c0da4cfb332d189ff6f7be590
4
+ data.tar.gz: 54c1421711e544f249b49f17ef21300163eb4f6af2b455d22e669330e637900a
5
5
  SHA512:
6
- metadata.gz: 4338533f55604dfb3145b03938539fe1b4ea52887ceafa57ea66e3efb8726092d2fd10c404250a68edf46f5bf19e4412ad3a48c62f7e3b644665e158e275fcc1
7
- data.tar.gz: 6b8ea46c48daddda0df3295e66017f2ea0e1c5f4a729199f48f9a36d0b8289c8c69af93e5ae74fac8e13cea3c05c50e50e1d79ec36eadcb54f375cf3f5e865d4
6
+ metadata.gz: b686c3564da70525d366ac0393d45845019ea95acd8bbc2d0f1091f9fc643e13f0040ffa425bdaef0f716269f132585e18cfe582b41272a98505cb277e3d3394
7
+ data.tar.gz: d82f644ea7b3183c94110051ad83215e4f0ce41bad7d143328c0f9f42d70386e37174b6e6e85703e40d62e33e41d0092f84d2725a6741214e034dc88f91310e6
@@ -0,0 +1,33 @@
1
+ name: Build
2
+
3
+ on:
4
+ pull_request:
5
+ branches:
6
+ - "*"
7
+ push:
8
+ branches:
9
+ - master
10
+
11
+ jobs:
12
+ specs:
13
+ runs-on: ${{ matrix.os }}
14
+ name: specs ruby-${{ matrix.ruby }} ${{ matrix.os }}
15
+ strategy:
16
+ matrix:
17
+ os: [ ubuntu-20.04, macos-11 ]
18
+ ruby: [ 2.7, 3.0, 3.1 ]
19
+ fail-fast: false
20
+
21
+ steps:
22
+ - uses: actions/checkout@master
23
+
24
+ - name: Set up Ruby
25
+ uses: ruby/setup-ruby@v1
26
+ with:
27
+ ruby-version: ${{ matrix.ruby }}
28
+ bundler: default
29
+ bundler-cache: true
30
+
31
+ - name: Run specs
32
+ run: |
33
+ bundle exec rspec spec
data/.gitignore CHANGED
@@ -1,3 +1,11 @@
1
- *~
2
- *.swp
3
- pkg/*
1
+ /.bundle/
2
+ /.yardoc
3
+ /_yardoc/
4
+ /coverage/
5
+ /doc/
6
+ /pkg/
7
+ /spec/reports/
8
+ /tmp/
9
+
10
+ # rspec failure tracking
11
+ .rspec_status
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ 3.1.0
data/CHANGELOG CHANGED
@@ -1,3 +1,16 @@
1
+ === 0.3.0 2022-04-05
2
+ * Add Ukrainian alphabet
3
+ * Add Github Actions build script
4
+
5
+ === 0.2.3 2015-10-16
6
+ * Make alphabet conversion not depend on letters order
7
+
8
+ === 0.2.2 2015-08-02
9
+ * Support for custom alphabet
10
+
11
+ === 0.2.1 2015-07-26
12
+ * Add more alphabets
13
+
1
14
  === 0.2.0 2013-08-28
2
15
  * Multi-language support
3
16
  * Add Gemfile
data/Gemfile.lock CHANGED
@@ -1,24 +1,32 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- cyrillizer (0.2.1)
4
+ cyrillizer (0.3.0)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
8
8
  specs:
9
- diff-lcs (1.2.4)
10
- rspec (2.14.1)
11
- rspec-core (~> 2.14.0)
12
- rspec-expectations (~> 2.14.0)
13
- rspec-mocks (~> 2.14.0)
14
- rspec-core (2.14.5)
15
- rspec-expectations (2.14.2)
16
- diff-lcs (>= 1.1.3, < 2.0)
17
- rspec-mocks (2.14.3)
9
+ diff-lcs (1.5.0)
10
+ rspec (3.11.0)
11
+ rspec-core (~> 3.11.0)
12
+ rspec-expectations (~> 3.11.0)
13
+ rspec-mocks (~> 3.11.0)
14
+ rspec-core (3.11.0)
15
+ rspec-support (~> 3.11.0)
16
+ rspec-expectations (3.11.0)
17
+ diff-lcs (>= 1.2.0, < 2.0)
18
+ rspec-support (~> 3.11.0)
19
+ rspec-mocks (3.11.1)
20
+ diff-lcs (>= 1.2.0, < 2.0)
21
+ rspec-support (~> 3.11.0)
22
+ rspec-support (3.11.0)
18
23
 
19
24
  PLATFORMS
20
25
  ruby
21
26
 
22
27
  DEPENDENCIES
23
28
  cyrillizer!
24
- rspec
29
+ rspec (~> 3.11.0)
30
+
31
+ BUNDLED WITH
32
+ 2.3.10
data/README.md CHANGED
@@ -1,5 +1,3 @@
1
- ![Travis status](https://travis-ci.org/dalibor/cyrillizer.png)
2
-
3
1
  # cyrillizer
4
2
 
5
3
  Character conversion from latin to cyrillic and vice versa.
@@ -17,8 +15,8 @@ Character conversion from latin to cyrillic and vice versa.
17
15
  Specify conversion language:
18
16
 
19
17
  Cyrillizer.language = :russian
20
- puts "пульт управления" # => "pul't upravleniya"
21
- puts "pul't upravleniya" # => "пульт управления"
18
+ puts "пульт управления".to_lat # => "pul't upravleniya"
19
+ puts "pul't upravleniya".to_cyr # => "пульт управления"
22
20
 
23
21
  Contribute conversion alphabets if you want yours built into the gem.
24
22
 
data/cyrillizer.gemspec CHANGED
@@ -16,5 +16,5 @@ Gem::Specification.new do |gem|
16
16
  gem.version = Cyrillizer::VERSION
17
17
  gem.license = "MIT"
18
18
 
19
- gem.add_development_dependency "rspec"
19
+ gem.add_development_dependency "rspec", "~> 3.11.0"
20
20
  end
@@ -1,61 +1,61 @@
1
1
  ---
2
- 'Щ': 'Sht'
3
- 'щ': 'sht'
4
- 'Ш': 'Sh'
5
- 'ш': 'sh'
2
+ 'А': 'A'
3
+ 'Б': 'B'
4
+ 'В': 'V'
5
+ 'Г': 'G'
6
+ 'Д': 'D'
7
+ 'Е': 'E'
6
8
  'Ж': 'Zh'
7
- 'ж': 'zh'
9
+ 'З': 'Z'
10
+ 'И': 'I'
11
+ 'Й': 'J'
12
+ 'К': 'K'
13
+ 'Л': 'L'
14
+ 'М': 'M'
15
+ 'Н': 'N'
16
+ 'О': 'O'
17
+ 'П': 'P'
18
+ 'Р': 'R'
19
+ 'С': 'S'
20
+ 'Т': 'T'
21
+ 'У': 'U'
22
+ 'Ф': 'F'
23
+ 'Х': 'H'
8
24
  'Ц': 'Ts'
9
- 'ц': 'ts'
25
+ 'Ч': 'Ch'
26
+ 'Ш': 'Sh'
27
+ 'Щ': 'Sht'
28
+ 'Ъ': 'Y'
10
29
  'Ю': 'Yu'
11
- 'ю': 'yu'
12
- 'я': 'Ya'
13
30
  'Я': 'Ya'
14
- 'Ч': 'Ch'
15
- 'ч': 'ch'
16
- 'Й': 'J'
17
- 'й': 'j'
18
- 'ь': 'x'
19
- 'ѝ': 'X'
20
- 'А': 'A'
21
31
  'а': 'a'
22
- 'Б': 'B'
23
32
  'б': 'b'
24
- 'В': 'V'
25
33
  'в': 'v'
26
- 'Г': 'G'
27
34
  'г': 'g'
28
- 'Д': 'D'
29
35
  'д': 'd'
30
- 'Е': 'E'
31
36
  'е': 'e'
32
- 'З': 'Z'
37
+ 'ж': 'zh'
33
38
  'з': 'x'
34
- 'И': 'I'
35
39
  'и': 'i'
36
- 'К': 'K'
40
+ 'й': 'j'
37
41
  'к': 'k'
38
- 'Л': 'L'
39
42
  'л': 'l'
40
- 'М': 'M'
41
43
  'м': 'm'
42
- 'Н': 'N'
43
44
  'н': 'n'
44
- 'О': 'O'
45
45
  'о': 'o'
46
- 'П': 'P'
47
46
  'п': 'p'
48
- 'Р': 'R'
49
47
  'р': 'r'
50
- 'С': 'S'
51
48
  'с': 's'
52
- 'Т': 'T'
53
49
  'т': 't'
54
- 'У': 'U'
55
50
  'у': 'u'
56
- 'Ф': 'F'
57
51
  'ф': 'f'
58
- 'Х': 'H'
59
52
  'х': 'h'
60
- 'Ъ': 'Y'
53
+ 'ц': 'ts'
54
+ 'ч': 'ch'
55
+ 'ш': 'sh'
56
+ 'щ': 'sht'
61
57
  'ъ': 'y'
58
+ 'ь': 'x'
59
+ 'ю': 'yu'
60
+ 'я': 'Ya'
61
+ 'ѝ': 'X'
@@ -1,63 +1,63 @@
1
1
  ---
2
- 'Џ': 'Dzh'
3
- 'џ': 'dzh'
4
2
  'Ѓ': 'Gj'
5
- 'ѓ': 'gj'
6
- 'Ж': 'Zh'
7
- 'ж': 'zh'
8
3
  'Ѕ': 'Dz'
9
- 'ѕ': 'dz'
4
+ 'Ј': 'J'
10
5
  'Љ': 'Lj'
11
- 'љ': 'lj'
12
6
  'Њ': 'Nj'
13
- 'њ': 'nj'
14
7
  'Ќ': 'Kj'
15
- 'ќ': 'kj'
8
+ 'Џ': 'Dzh'
9
+ 'А': 'A'
10
+ 'Б': 'B'
11
+ 'В': 'V'
12
+ 'Г': 'G'
13
+ 'Д': 'D'
14
+ 'Е': 'E'
15
+ 'Ж': 'Zh'
16
+ 'З': 'Z'
17
+ 'И': 'I'
18
+ 'К': 'K'
19
+ 'Л': 'L'
20
+ 'М': 'M'
21
+ 'Н': 'N'
22
+ 'О': 'O'
23
+ 'П': 'P'
24
+ 'Р': 'R'
25
+ 'С': 'S'
26
+ 'Т': 'T'
27
+ 'У': 'U'
28
+ 'Ф': 'F'
29
+ 'Х': 'H'
30
+ 'Ц': 'C'
16
31
  'Ч': 'Ch'
17
- 'ч': 'ch'
18
32
  'Ш': 'Sh'
19
- 'ш': 'sh'
20
- 'А': 'A'
21
33
  'а': 'a'
22
- 'Б': 'B'
23
34
  'б': 'b'
24
- 'В': 'V'
25
35
  'в': 'v'
26
- 'Г': 'G'
27
36
  'г': 'g'
28
- 'Д': 'D'
29
37
  'д': 'd'
30
- 'Е': 'E'
31
38
  'е': 'e'
32
- 'З': 'Z'
39
+ 'ж': 'zh'
33
40
  'з': 'z'
34
- 'И': 'I'
35
41
  'и': 'i'
36
- 'Ј': 'J'
37
- 'ј': 'j'
38
- 'К': 'K'
39
42
  'к': 'k'
40
- 'Л': 'L'
41
43
  'л': 'l'
42
- 'М': 'M'
43
44
  'м': 'm'
44
- 'Н': 'N'
45
45
  'н': 'n'
46
- 'О': 'O'
47
46
  'о': 'o'
48
- 'П': 'P'
49
47
  'п': 'p'
50
- 'Р': 'R'
51
48
  'р': 'r'
52
- 'С': 'S'
53
49
  'с': 's'
54
- 'Т': 'T'
55
50
  'т': 't'
56
- 'У': 'U'
57
51
  'у': 'u'
58
- 'Ф': 'F'
59
52
  'ф': 'f'
60
- 'Х': 'H'
61
53
  'х': 'h'
62
- 'Ц': 'C'
63
54
  'ц': 'c'
55
+ 'ч': 'ch'
56
+ 'ш': 'sh'
57
+ 'ѓ': 'gj'
58
+ 'ѕ': 'dz'
59
+ 'ј': 'j'
60
+ 'љ': 'lj'
61
+ 'њ': 'nj'
62
+ 'ќ': 'kj'
63
+ 'џ': 'dzh'
@@ -1,66 +1,66 @@
1
1
  ---
2
- 'Э': 'E'
3
- 'э': 'e'
4
- 'Щ': 'Shch'
5
- 'щ': 'Shch'
2
+ 'Ё': 'Ye'
3
+ 'А': 'A'
4
+ 'Б': 'B'
5
+ 'В': 'V'
6
+ 'Г': 'G'
7
+ 'Д': 'D'
8
+ 'Е': 'E'
9
+ 'Ж': 'Zh'
10
+ 'З': 'Z'
11
+ 'И': 'I'
12
+ 'Й': 'Y'
13
+ 'К': 'K'
14
+ 'Л': 'L'
15
+ 'М': 'M'
16
+ 'Н': 'N'
17
+ 'О': 'O'
18
+ 'П': 'P'
19
+ 'Р': 'R'
20
+ 'С': 'S'
21
+ 'Т': 'T'
22
+ 'У': 'U'
23
+ 'Ф': 'F'
24
+ 'Х': 'H'
6
25
  'Ц': 'Ts'
7
- 'ц': 'ts'
8
26
  'Ч': 'Ch'
9
- 'ч': 'ch'
10
27
  'Ш': 'Sh'
11
- 'ш': 'sh'
28
+ 'Щ': 'Shch'
29
+ 'Ъ': 'ʺ'
30
+ 'Ь': "ʹ"
31
+ 'Э': 'E'
12
32
  'Ю': 'Yu'
13
- 'ю': 'yu'
14
33
  'Я': 'Ya'
15
- 'я': 'ya'
16
- 'Ё': 'Ye'
17
- 'ё': 'ye'
18
- 'Ж': 'Zh'
19
- 'ж': 'zh'
20
- 'А': 'A'
21
34
  'а': 'a'
22
- 'Б': 'B'
23
35
  'б': 'b'
24
- 'В': 'V'
25
36
  'в': 'v'
26
- 'Г': 'G'
27
37
  'г': 'g'
28
- 'Д': 'D'
29
38
  'д': 'd'
30
- 'Е': 'e'
31
39
  'е': 'e'
32
- 'З': 'Z'
40
+ 'ж': 'zh'
33
41
  'з': 'z'
34
- 'И': 'I'
35
42
  'и': 'i'
36
- 'Й': 'Y'
37
43
  'й': 'y'
38
- 'К': 'k'
39
44
  'к': 'k'
40
- 'Л': 'L'
41
45
  'л': 'l'
42
- 'М': 'M'
43
46
  'м': 'm'
44
- 'Н': 'N'
45
47
  'н': 'n'
46
- 'О': 'o'
47
48
  'о': 'o'
48
- 'П': 'P'
49
49
  'п': 'p'
50
- 'Р': 'R'
51
50
  'р': 'r'
52
- 'С': 'S'
53
51
  'с': 's'
54
- 'Т': 'T'
55
52
  'т': 't'
56
- 'У': 'U'
57
53
  'у': 'u'
58
- 'Ф': 'F'
59
54
  'ф': 'f'
60
- 'Х': 'H'
61
55
  'х': 'h'
62
- 'Ъ': "'"
63
- 'ъ': "'"
64
- 'Ь': "'"
65
- 'ь': "'"
56
+ 'ц': 'ts'
57
+ 'ч': 'ch'
58
+ 'ш': 'sh'
59
+ 'щ': 'Shch'
60
+ 'ъ': '"'
66
61
  'ы': "y"
62
+ 'ь': "'"
63
+ 'э': 'e'
64
+ 'ю': 'yu'
65
+ 'я': 'ya'
66
+ 'ё': 'ye'
@@ -1,62 +1,62 @@
1
1
  ---
2
- 'а': 'a'
3
- 'б': 'b'
4
- 'в': 'v'
5
- 'г': 'g'
6
- 'џ': ''
7
- 'д': 'd'
8
- 'е': 'e'
9
- 'ђ': 'đ'
10
- 'ж': 'ž'
11
- 'з': 'z'
12
- 'и': 'i'
13
- 'ј': 'j'
14
- 'к': 'k'
15
- 'љ': 'lj'
16
- 'л': 'l'
17
- 'м': 'm'
18
- 'њ': 'nj'
19
- 'н': 'n'
20
- 'о': 'o'
21
- 'п': 'p'
22
- 'р': 'r'
23
- 'с': 's'
24
- 'т': 't'
25
- 'ћ': 'ć'
26
- 'у': 'u'
27
- 'ф': 'f'
28
- 'х': 'h'
29
- 'ц': 'c'
30
- 'ч': 'č'
31
- 'ш': 'š'
2
+ 'Ђ': 'Đ'
3
+ 'Ј': 'J'
4
+ 'Љ': 'Lj'
5
+ 'Њ': 'Nj'
6
+ 'Ћ': 'Ć'
7
+ 'Џ': ''
32
8
  'А': 'A'
33
9
  'Б': 'B'
34
10
  'В': 'V'
35
11
  'Г': 'G'
36
- 'Џ': 'Dž'
37
12
  'Д': 'D'
38
- 'Ђ': 'Đ'
39
13
  'Е': 'E'
40
14
  'Ж': 'Ž'
41
15
  'З': 'Z'
42
16
  'И': 'I'
43
- 'Ј': 'J'
44
17
  'К': 'K'
45
- 'Љ': 'Lj'
46
18
  'Л': 'L'
47
19
  'М': 'M'
48
- 'Њ': 'Nj'
49
20
  'Н': 'N'
50
21
  'О': 'O'
51
22
  'П': 'P'
52
23
  'Р': 'R'
53
24
  'С': 'S'
54
25
  'Т': 'T'
55
- 'Ћ': 'Ć'
56
26
  'У': 'U'
57
27
  'Ф': 'F'
58
28
  'Х': 'H'
59
29
  'Ц': 'C'
60
30
  'Ч': 'Č'
61
31
  'Ш': 'Š'
32
+ 'а': 'a'
33
+ 'б': 'b'
34
+ 'в': 'v'
35
+ 'г': 'g'
36
+ 'д': 'd'
37
+ 'е': 'e'
38
+ 'ж': 'ž'
39
+ 'з': 'z'
40
+ 'и': 'i'
41
+ 'к': 'k'
42
+ 'л': 'l'
43
+ 'м': 'm'
44
+ 'н': 'n'
45
+ 'о': 'o'
46
+ 'п': 'p'
47
+ 'р': 'r'
48
+ 'с': 's'
49
+ 'т': 't'
50
+ 'у': 'u'
51
+ 'ф': 'f'
52
+ 'х': 'h'
53
+ 'ц': 'c'
54
+ 'ч': 'č'
55
+ 'ш': 'š'
56
+ 'ђ': 'đ'
57
+ 'ј': 'j'
58
+ 'љ': 'lj'
59
+ 'њ': 'nj'
60
+ 'ћ': 'ć'
61
+ 'џ': 'dž'
62
62
  ---
@@ -0,0 +1,72 @@
1
+ ---
2
+ 'А': 'A'
3
+ 'Б': 'B'
4
+ 'В': 'V'
5
+ 'Г': 'H'
6
+ 'Ґ': 'G'
7
+ 'Д': 'D'
8
+ 'Е': 'E'
9
+ 'Є': 'Ye'
10
+ 'Ж': 'Zh'
11
+ 'З': 'Z'
12
+ 'И': 'Y'
13
+ 'І': 'I'
14
+ 'Ї': 'Yi'
15
+ 'Й': 'Y'
16
+ 'К': 'K'
17
+ 'Л': 'L'
18
+ 'М': 'M'
19
+ 'Н': 'N'
20
+ 'О': 'O'
21
+ 'П': 'P'
22
+ 'Р': 'R'
23
+ 'С': 'S'
24
+ 'Т': 'T'
25
+ 'У': 'U'
26
+ 'Ф': 'F'
27
+ 'Х': 'Kh'
28
+ 'Ц': 'Ts'
29
+ 'Ч': 'Ch'
30
+ 'Ш': 'Sh'
31
+ 'Щ': 'Shch'
32
+ 'Ь': "ʹ"
33
+ 'Ю': 'Yu'
34
+ 'Я': 'Ya'
35
+ 'Shch': 'Щ'
36
+ 'а': 'a'
37
+ 'б': 'b'
38
+ 'в': 'v'
39
+ 'г': 'h'
40
+ 'ґ': 'g'
41
+ 'д': 'd'
42
+ 'е': 'e'
43
+ 'є': 'ye'
44
+ 'ж': 'zh'
45
+ 'з': 'z'
46
+ 'и': 'y'
47
+ 'і': 'i'
48
+ 'ї': 'yi'
49
+ 'й': 'y'
50
+ 'к': 'k'
51
+ 'л': 'l'
52
+ 'м': 'm'
53
+ 'н': 'n'
54
+ 'о': 'o'
55
+ 'п': 'p'
56
+ 'р': 'r'
57
+ 'с': 's'
58
+ 'т': 't'
59
+ 'у': 'u'
60
+ 'ф': 'f'
61
+ 'х': 'kh'
62
+ 'ц': 'ts'
63
+ 'ч': 'ch'
64
+ 'ш': 'sh'
65
+ 'щ': 'shch'
66
+ 'ь': "'"
67
+ 'ю': 'yu'
68
+ 'я': 'ya'
69
+ 'shch': 'щ'
70
+ "'": 'ь'
71
+ # '`': '`'
72
+ # "'": "'"
@@ -1,71 +1,71 @@
1
1
  ---
2
+ 'Ё': 'Yo'
2
3
  'Ў': 'Oʻ'
3
- 'ў': ''
4
- 'Қ': 'Q'
5
- 'қ': 'q'
6
- 'Ғ': ''
7
- 'ғ': ''
8
- 'Ҳ': 'H'
9
- 'ҳ': 'h'
10
- 'Э': 'E'
11
- 'э': 'e'
4
+ 'А': 'A'
5
+ 'Б': 'B'
6
+ 'В': 'V'
7
+ 'Г': 'G'
8
+ 'Д': 'D'
9
+ 'Е': 'e'
10
+ 'Ж': 'J'
11
+ 'З': 'Z'
12
+ 'И': 'I'
13
+ 'Й': 'Y'
14
+ 'К': 'k'
15
+ 'Л': 'L'
16
+ 'М': 'M'
17
+ 'Н': 'N'
18
+ 'О': 'o'
19
+ 'П': 'P'
20
+ 'Р': 'R'
21
+ 'С': 'S'
22
+ 'Т': 'T'
23
+ 'У': 'U'
24
+ 'Ф': 'F'
25
+ 'Х': 'X'
12
26
  'Ц': 'S'
13
- 'ц': 's'
14
27
  'Ч': 'Ch'
15
- 'ч': 'ch'
16
28
  'Ш': 'Sh'
17
- 'ш': 'sh'
29
+ 'Ъ': 'ʻ'
30
+ 'Ь': 'ʻ'
31
+ 'Э': 'E'
18
32
  'Ю': 'Yu'
19
- 'ю': 'yu'
20
33
  'Я': 'Ya'
21
- 'я': 'ya'
22
- 'Ё': 'Yo'
23
- 'ё': 'yo'
24
- 'Ж': 'J'
25
- 'ж': 'j'
26
- 'А': 'A'
27
34
  'а': 'a'
28
- 'Б': 'B'
29
35
  'б': 'b'
30
- 'В': 'V'
31
36
  'в': 'v'
32
- 'Г': 'G'
33
37
  'г': 'g'
34
- 'Д': 'D'
35
38
  'д': 'd'
36
- 'Е': 'e'
37
39
  'е': 'e'
38
- 'З': 'Z'
40
+ 'ж': 'j'
39
41
  'з': 'z'
40
- 'И': 'I'
41
42
  'и': 'i'
42
- 'Й': 'Y'
43
43
  'й': 'y'
44
- 'К': 'k'
45
44
  'к': 'k'
46
- 'Л': 'L'
47
45
  'л': 'l'
48
- 'М': 'M'
49
46
  'м': 'm'
50
- 'Н': 'N'
51
47
  'н': 'n'
52
- 'О': 'o'
53
48
  'о': 'o'
54
- 'П': 'P'
55
49
  'п': 'p'
56
- 'Р': 'R'
57
50
  'р': 'r'
58
- 'С': 'S'
59
51
  'с': 's'
60
- 'Т': 'T'
61
52
  'т': 't'
62
- 'У': 'U'
63
53
  'у': 'u'
64
- 'Ф': 'F'
65
54
  'ф': 'f'
66
- 'Х': 'X'
67
55
  'х': 'x'
68
- 'Ъ': 'ʻ'
56
+ 'ц': 's'
57
+ 'ч': 'ch'
58
+ 'ш': 'sh'
69
59
  'ъ': 'ʻ'
70
- 'Ь': 'ʻ'
71
60
  'ь': 'ʻ'
61
+ 'э': 'e'
62
+ 'ю': 'yu'
63
+ 'я': 'ya'
64
+ 'ё': 'yo'
65
+ 'ў': 'oʻ'
66
+ 'Ғ': 'Gʻ'
67
+ 'ғ': 'gʻ'
68
+ 'Қ': 'Q'
69
+ 'қ': 'q'
70
+ 'Ҳ': 'H'
71
+ 'ҳ': 'h'
@@ -4,11 +4,11 @@ module Cyrillizer
4
4
  module Converter
5
5
 
6
6
  def to_cyr
7
- code(self.dup, alphabet.invert)
7
+ code(self.dup, inverted_alphabet)
8
8
  end
9
9
 
10
10
  def to_cyr!
11
- code(self, alphabet.invert)
11
+ code(self, inverted_alphabet)
12
12
  end
13
13
 
14
14
  def to_lat
@@ -29,7 +29,15 @@ module Cyrillizer
29
29
  end
30
30
 
31
31
  def alphabet
32
- Cyrillizer.alphabet
32
+ @alphabet ||= sort(Cyrillizer.alphabet)
33
+ end
34
+
35
+ def inverted_alphabet
36
+ @inverted_alphabet ||= sort(alphabet.invert)
37
+ end
38
+
39
+ def sort(alphabet)
40
+ alphabet.sort_by { |k, v| k.length }.reverse.to_h
33
41
  end
34
42
  end
35
43
  end
@@ -1,3 +1,3 @@
1
1
  module Cyrillizer
2
- VERSION = "0.2.2"
2
+ VERSION = "0.3.1"
3
3
  end
@@ -2,35 +2,44 @@
2
2
 
3
3
  require 'spec_helper'
4
4
 
5
- describe Cyrillizer do
5
+ RSpec.describe Cyrillizer do
6
6
  after :each do
7
7
  Cyrillizer.language = nil
8
8
  end
9
9
 
10
10
  describe ".language" do
11
11
  it "defaults to macedonian language" do
12
- Cyrillizer.language.should == :macedonian
12
+ expect(Cyrillizer.language).to eq(:macedonian)
13
13
  end
14
14
  end
15
15
 
16
16
  describe ".language=" do
17
17
  it "can specify existing language" do
18
18
  Cyrillizer.language = :russian
19
- Cyrillizer.language.should == :russian
19
+ expect(Cyrillizer.language).to eq(:russian)
20
+ end
21
+
22
+ it "can load all defined languages" do
23
+ Dir.children("lib/alphabets").each do |file|
24
+ language = file.chomp('.yml')
25
+ Cyrillizer.language = language
26
+ expect('Б'.to_lat).to eq('B')
27
+ expect('B'.to_cyr).to eq('Б')
28
+ end
20
29
  end
21
30
  end
22
31
 
23
32
  describe ".alphabet" do
24
33
  it "can load alphabet for a language" do
25
- Cyrillizer.alphabet["Џ"].should == "Dzh"
34
+ expect(Cyrillizer.alphabet['Џ']).to eq('Dzh')
26
35
  end
27
36
  end
28
37
 
29
38
  describe ".alphabet=" do
30
39
  it "can set alphabet and language with alphabet file" do
31
- Cyrillizer.alphabet = File.join(File.dirname(__FILE__), "../../lib/alphabets/russian.yml")
32
- Cyrillizer.alphabet['Щ'].should == "Shch"
33
- Cyrillizer.language.should == 'russian'
40
+ Cyrillizer.alphabet = File.join(File.dirname(__FILE__), '../../lib/alphabets/russian.yml')
41
+ expect(Cyrillizer.alphabet['Щ']).to eq('Shch')
42
+ expect(Cyrillizer.language).to eq('russian')
34
43
  end
35
44
  end
36
45
  end
@@ -2,66 +2,66 @@
2
2
 
3
3
  require 'spec_helper'
4
4
 
5
- describe Cyrillizer::Converter do
5
+ RSpec.describe Cyrillizer::Converter do
6
6
  let(:string) { 'anything' }
7
7
 
8
8
 
9
9
  describe "#to_cyr" do
10
10
  it "converts latin to cyrillic" do
11
- "Cela rechenica na latinica".to_cyr.should == "Цела реченица на латиница"
11
+ expect('Cela rechenica na latinica'.to_cyr).to eq('Цела реченица на латиница')
12
12
  end
13
13
 
14
14
  it "converts letters with multiple characters" do
15
- "Kjeljav Dzhip".to_cyr.should == "Ќељав Џип"
15
+ expect('Kjeljav Dzhip'.to_cyr).to eq('Ќељав Џип')
16
16
  end
17
17
 
18
18
  it "it copies string before changing" do
19
- string.to_cyr.object_id.should_not == string.object_id
19
+ expect(string.to_cyr.object_id).not_to eq(string.object_id)
20
20
  end
21
21
  end
22
22
 
23
23
  describe "#to_cyr!" do
24
24
  it "converts latin to cyrilic" do
25
- "Cela rechenica na latinica".to_cyr!.should == "Цела реченица на латиница"
25
+ expect('Cela rechenica na latinica'.to_cyr!).to eq('Цела реченица на латиница')
26
26
  end
27
27
 
28
28
  it "changes original string" do
29
- string.to_cyr!.object_id.should == string.object_id
29
+ expect(string.to_cyr!.object_id).to eq(string.object_id)
30
30
  end
31
31
  end
32
32
 
33
33
  describe "#to_lat" do
34
34
  it "converts cyrillic to latin" do
35
- "Цела реченица на латиница".to_lat.should == "Cela rechenica na latinica"
35
+ expect('Цела реченица на латиница'.to_lat).to eq('Cela rechenica na latinica')
36
36
  end
37
37
 
38
38
  it "converts letters with multiple characters" do
39
- "Ќељав Џип".to_lat.should == "Kjeljav Dzhip"
39
+ expect('Ќељав Џип'.to_lat).to eq('Kjeljav Dzhip')
40
40
  end
41
41
 
42
42
  it "it copies string before changing" do
43
- string.to_lat.object_id.should_not == string.object_id
43
+ expect(string.to_lat.object_id).not_to eq(string.object_id)
44
44
  end
45
45
  end
46
46
 
47
47
  describe "#to_lat!" do
48
48
  it "converts cyrilic to latin" do
49
- "Цела реченица на латиница".to_lat!.should == "Cela rechenica na latinica"
49
+ expect('Цела реченица на латиница'.to_lat!).to eq('Cela rechenica na latinica')
50
50
  end
51
51
 
52
52
  it "changes original string" do
53
- string.to_lat!.object_id.should == string.object_id
53
+ expect(string.to_lat!.object_id).to eq(string.object_id)
54
54
  end
55
55
  end
56
56
 
57
57
  context "conversion" do
58
58
  it "converts to latin" do
59
- "Цела реченица на латиница".to_lat.should == "Cela rechenica na latinica"
60
- "Ќељав Џип".to_lat.should == "Kjeljav Dzhip"
59
+ expect('Цела реченица на латиница'.to_lat).to eq('Cela rechenica na latinica')
60
+ expect('Ќељав Џип'.to_lat).to eq('Kjeljav Dzhip')
61
61
  end
62
62
  end
63
63
 
64
- describe "using a different language" do
64
+ describe "using russion language" do
65
65
  before :each do
66
66
  Cyrillizer.language = :russian
67
67
  end
@@ -71,8 +71,23 @@ describe Cyrillizer::Converter do
71
71
  end
72
72
 
73
73
  it "can convert from different language" do
74
- "пульт управления".to_lat.should == "pul't upravleniya"
75
- "pul't upravleniya".to_cyr.should == "пульт управления"
74
+ expect("пульт управления".to_lat).to eq("pul't upravleniya")
75
+ expect("pul't upravleniya".to_cyr).to eq("пульт управления")
76
+ end
77
+ end
78
+
79
+ describe "using serbian language" do
80
+ before :each do
81
+ Cyrillizer.language = :serbian
82
+ end
83
+
84
+ after :each do
85
+ Cyrillizer.language = nil
86
+ end
87
+
88
+ it "can convert from different language" do
89
+ expect('њ'.to_lat).to eq('nj')
90
+ expect('nj'.to_cyr).to eq('њ')
76
91
  end
77
92
  end
78
93
  end
data/spec/spec_helper.rb CHANGED
@@ -1 +1,15 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'cyrillizer'
4
+
5
+ RSpec.configure do |config|
6
+ # Enable flags like --only-failures and --next-failure
7
+ config.example_status_persistence_file_path = '.rspec_status'
8
+
9
+ # Disable RSpec exposing methods globally on `Module` and `main`
10
+ config.disable_monkey_patching!
11
+
12
+ config.expect_with :rspec do |c|
13
+ c.syntax = :expect
14
+ end
15
+ end
metadata CHANGED
@@ -1,29 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cyrillizer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dalibor Nasevic
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-08-02 00:00:00.000000000 Z
11
+ date: 2022-04-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0'
19
+ version: 3.11.0
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ">="
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '0'
26
+ version: 3.11.0
27
27
  description: Character conversion from latin to cyrillic.
28
28
  email:
29
29
  - dalibor.nasevic@gmail.com
@@ -31,9 +31,10 @@ executables: []
31
31
  extensions: []
32
32
  extra_rdoc_files: []
33
33
  files:
34
+ - ".github/workflows/build.yml"
34
35
  - ".gitignore"
35
36
  - ".rspec"
36
- - ".travis.yml"
37
+ - ".ruby-version"
37
38
  - CHANGELOG
38
39
  - Gemfile
39
40
  - Gemfile.lock
@@ -44,6 +45,7 @@ files:
44
45
  - lib/alphabets/macedonian.yml
45
46
  - lib/alphabets/russian.yml
46
47
  - lib/alphabets/serbian.yml
48
+ - lib/alphabets/ukrainian.yml
47
49
  - lib/alphabets/uzbek.yml
48
50
  - lib/cyrillizer.rb
49
51
  - lib/cyrillizer/alphabet.rb
@@ -71,8 +73,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
71
73
  - !ruby/object:Gem::Version
72
74
  version: '0'
73
75
  requirements: []
74
- rubyforge_project:
75
- rubygems_version: 2.2.2
76
+ rubygems_version: 3.3.3
76
77
  signing_key:
77
78
  specification_version: 4
78
79
  summary: Character conversion from latin to cyrillic and vice versa.
data/.travis.yml DELETED
@@ -1,8 +0,0 @@
1
- rvm:
2
- - 2.1.0
3
- cache:
4
- - bundler
5
- notifications:
6
- email:
7
- - dalibor.nasevic@gmail.com
8
- script: bundle exec rspec spec