cyrillizer 0.2.1 → 0.3.0

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: 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