cyrillizer 0.2.1 → 0.3.0

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 3f117016e6b3389f49f4574cbf168e32e9f2a773
4
- data.tar.gz: 65bc0d3df3d335a06bb7a49ea01f5d413c9f23d2
2
+ SHA256:
3
+ metadata.gz: 30501fa01e5a66e293feb886192ac4c4be5e7695b2fbd96ef3639e694cb4f08c
4
+ data.tar.gz: 8e991c76fe111535573ad63438e8f08d47587bd5afaf833f03334d3c259cb07b
5
5
  SHA512:
6
- metadata.gz: a2c417167c522e2ebe587df56f31a84630c7eb058bfe427026c0a644c781f4faa0b42f97b320c273fbf785df8c0c0f2ec9bf0219ad81b85e5218b520a3080fea
7
- data.tar.gz: d9aaa1eff3d84115cad39e6901b501f7859d4119ae6e675ea17203a3bef9c49f27dd07bcd3bb6ce719c836ea2fd889669ed09723c264f6bdfb4a448f928c142c
6
+ metadata.gz: a3c66b1783f6653ed40facfc1362da83632f98ac563e3ee1fadd4fc44f573cb7678d36a4ba1a7f961d4be956d88c325de86c4a6a1941b63a407e05b3241bc79a
7
+ data.tar.gz: ca7795a15009e96947ed986503bde142c7c9a9c4ed6283f91a488c61151d76fa867cdaccdc4c0ae0dd56ee01016561cf6f017d7dcc03cadf5cb55a26e3732808
@@ -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.0)
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,11 +1,7 @@
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.
6
4
 
7
- Please contribute conversion alphabets if yours is missing.
8
-
9
5
  ## INSTALL
10
6
 
11
7
  gem install cyrillizer
@@ -16,11 +12,17 @@ Please contribute conversion alphabets if yours is missing.
16
12
  puts 'kirilica'.to_cyr # => 'кирилица'
17
13
  puts 'латиница'.to_lat # => 'latinica'
18
14
 
19
- Or change conversion language:
15
+ Specify conversion language:
20
16
 
21
17
  Cyrillizer.language = :russian
22
- puts "пульт управления" # => "pul't upravleniya"
23
- puts "pul't upravleniya" # => "пульт управления"
18
+ puts "пульт управления".to_lat # => "pul't upravleniya"
19
+ puts "pul't upravleniya".to_cyr # => "пульт управления"
20
+
21
+ Contribute conversion alphabets if you want yours built into the gem.
22
+
23
+ Or use your own custom alphabet:
24
+
25
+ Cyrillizer.alphabet = "alphabet/russian.yml" # path to the alphabet
24
26
 
25
27
  ## TESTS
26
28
 
@@ -29,14 +31,13 @@ Or change conversion language:
29
31
 
30
32
  ## CONTRIBUTORS
31
33
 
32
- - Vitaly Zemlyansky ([@vzemlyansky](https://github.com/vzemlyansky))
33
- - Peco Danajlovski ([@Vortex](https://github.com/Vortex))
34
+ See [contributors](https://github.com/dalibor/cyrillizer/graphs/contributors) list.
34
35
 
35
36
  ## LICENSE:
36
37
 
37
38
  (The MIT License)
38
39
 
39
- Copyright (c) 2009-2013 Dalibor Nasevic
40
+ Copyright (c) 2009-2015 Dalibor Nasevic
40
41
 
41
42
  Permission is hereby granted, free of charge, to any person obtaining
42
43
  a copy of this software and associated documentation files (the
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,53 +1,62 @@
1
1
  ---
2
+ 'Ђ': 'Đ'
3
+ 'Ј': 'J'
4
+ 'Љ': 'Lj'
5
+ 'Њ': 'Nj'
6
+ 'Ћ': 'Ć'
7
+ 'Џ': 'Dž'
8
+ 'А': 'A'
9
+ 'Б': 'B'
10
+ 'В': 'V'
11
+ 'Г': 'G'
12
+ 'Д': 'D'
13
+ 'Е': 'E'
14
+ 'Ж': 'Ž'
15
+ 'З': 'Z'
16
+ 'И': 'I'
17
+ 'К': 'K'
18
+ 'Л': 'L'
19
+ 'М': 'M'
20
+ 'Н': 'N'
21
+ 'О': 'O'
22
+ 'П': 'P'
23
+ 'Р': 'R'
24
+ 'С': 'S'
25
+ 'Т': 'T'
26
+ 'У': 'U'
27
+ 'Ф': 'F'
28
+ 'Х': 'H'
29
+ 'Ц': 'C'
30
+ 'Ч': 'Č'
31
+ 'Ш': 'Š'
2
32
  'а': 'a'
3
33
  'б': 'b'
4
34
  'в': 'v'
5
35
  'г': 'g'
6
- 'џ': 'dž'
7
36
  'д': 'd'
8
- 'ђ': 'đ'
37
+ 'е': 'e'
9
38
  'ж': 'ž'
10
39
  'з': 'z'
11
40
  'и': 'i'
12
41
  'к': 'k'
13
- 'љ': 'lj'
14
42
  'л': 'l'
15
43
  'м': 'm'
16
- 'њ': 'nj'
17
44
  'н': 'n'
45
+ 'о': 'o'
18
46
  'п': 'p'
19
47
  'р': 'r'
20
48
  'с': 's'
21
49
  'т': 't'
22
- 'ћ': 'ć'
23
50
  'у': 'u'
24
51
  'ф': 'f'
25
52
  'х': 'h'
26
53
  'ц': 'c'
27
54
  'ч': 'č'
28
55
  'ш': 'š'
29
- 'Б': 'B'
30
- 'В': 'V'
31
- 'Г': 'G'
32
- 'Џ': ''
33
- 'Д': 'D'
34
- 'Ђ': 'Đ'
35
- 'Ж': 'Ž'
36
- 'З': 'Z'
37
- 'И': 'I'
38
- 'Љ': 'Lj'
39
- 'Л': 'L'
40
- 'М': 'M'
41
- 'Њ': 'Nj'
42
- 'Н': 'N'
43
- 'П': 'P'
44
- 'Р': 'R'
45
- 'С': 'S'
46
- 'Ћ': 'Ć'
47
- 'У': 'U'
48
- 'Ф': 'F'
49
- 'Х': 'H'
50
- 'Ц': 'C'
51
- 'Ч': 'Č'
52
- 'Ш': 'Š'
56
+ 'ђ': 'đ'
57
+ 'ј': 'j'
58
+ 'љ': 'lj'
59
+ 'њ': 'nj'
60
+ 'ћ': 'ć'
61
+ 'џ': ''
53
62
  ---
@@ -0,0 +1,69 @@
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
+ '`': '`'
36
+ "'": "'"
37
+ 'а': 'a'
38
+ 'б': 'b'
39
+ 'в': 'v'
40
+ 'г': 'g'
41
+ 'ґ': 'g'
42
+ 'д': 'd'
43
+ 'е': 'e'
44
+ 'є': 'ye'
45
+ 'ж': 'zh'
46
+ 'з': 'z'
47
+ 'и': 'y'
48
+ 'і': 'i'
49
+ 'ї': 'yi'
50
+ 'й': 'y'
51
+ 'к': 'k'
52
+ 'л': 'l'
53
+ 'м': 'm'
54
+ 'н': 'n'
55
+ 'о': 'o'
56
+ 'п': 'p'
57
+ 'р': 'r'
58
+ 'с': 's'
59
+ 'т': 't'
60
+ 'у': 'u'
61
+ 'ф': 'f'
62
+ 'х': 'h'
63
+ 'ц': 'ts'
64
+ 'ч': 'ch'
65
+ 'ш': 'sh'
66
+ 'щ': 'Shch'
67
+ 'ь': "'"
68
+ 'ю': 'yu'
69
+ 'я': 'ya'
@@ -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'
@@ -15,6 +15,13 @@ module Cyrillizer
15
15
  @alphabet = nil
16
16
  end
17
17
 
18
+ def alphabet=(file)
19
+ if file
20
+ @alphabet = YAML.load_file(file)
21
+ @language = File.basename(file, File.extname(file))
22
+ end
23
+ end
24
+
18
25
  def alphabet
19
26
  @alphabet ||= YAML.load_file(File.join(File.dirname(__FILE__), "../alphabets/#{language.to_s}.yml"))
20
27
  end
@@ -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.1"
2
+ VERSION = "0.3.0"
3
3
  end
@@ -2,31 +2,44 @@
2
2
 
3
3
  require 'spec_helper'
4
4
 
5
- describe Cyrillizer do
5
+ RSpec.describe Cyrillizer do
6
+ after :each do
7
+ Cyrillizer.language = nil
8
+ end
9
+
6
10
  describe ".language" do
7
- it "defaults to macedonian" do
8
- Cyrillizer.language.should == :macedonian
11
+ it "defaults to macedonian language" do
12
+ expect(Cyrillizer.language).to eq(:macedonian)
9
13
  end
10
14
  end
11
15
 
12
16
  describe ".language=" do
13
- before :each do
14
- Cyrillizer.language = nil
17
+ it "can specify existing language" do
18
+ Cyrillizer.language = :russian
19
+ expect(Cyrillizer.language).to eq(:russian)
15
20
  end
16
21
 
17
- after :each do
18
- Cyrillizer.language = nil
19
- end
20
-
21
- it "can change language" do
22
- Cyrillizer.language = :russian
23
- Cyrillizer.language.should == :russian
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
24
29
  end
25
30
  end
26
31
 
27
32
  describe ".alphabet" do
28
33
  it "can load alphabet for a language" do
29
- Cyrillizer.alphabet["Џ"].should == "Dzh"
34
+ expect(Cyrillizer.alphabet['Џ']).to eq('Dzh')
35
+ end
36
+ end
37
+
38
+ describe ".alphabet=" do
39
+ it "can set alphabet and language with alphabet file" do
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')
30
43
  end
31
44
  end
32
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.1
4
+ version: 0.3.0
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-07-26 00:00:00.000000000 Z
11
+ date: 2022-04-05 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