babosa 2.0.0 → 2.1.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 +4 -4
- data/README.md +6 -4
- data/Rakefile +4 -3
- data/lib/babosa/identifier.rb +10 -10
- data/lib/babosa/transliterator/base.rb +27 -44
- data/lib/babosa/transliterator/bulgarian.rb +2 -0
- data/lib/babosa/transliterator/danish.rb +2 -0
- data/lib/babosa/transliterator/german.rb +2 -0
- data/lib/babosa/transliterator/macedonian.rb +2 -0
- data/lib/babosa/transliterator/norwegian.rb +2 -0
- data/lib/babosa/transliterator/romanian.rb +2 -0
- data/lib/babosa/transliterator/russian.rb +2 -0
- data/lib/babosa/transliterator/serbian.rb +2 -0
- data/lib/babosa/transliterator/spanish.rb +2 -0
- data/lib/babosa/transliterator/swedish.rb +2 -0
- data/lib/babosa/transliterator/turkish.rb +2 -0
- data/lib/babosa/transliterator/ukrainian.rb +2 -0
- data/lib/babosa/transliterator/vietnamese.rb +2 -0
- data/lib/babosa/version.rb +1 -1
- data/lib/babosa.rb +1 -1
- data/spec/identifier_spec.rb +4 -0
- data/spec/transliterators/bulgarian_spec.rb +4 -4
- data/spec/transliterators/danish_spec.rb +1 -1
- data/spec/transliterators/greek_spec.rb +2 -2
- data/spec/transliterators/hindi_spec.rb +2 -2
- data/spec/transliterators/norwegian_spec.rb +3 -3
- data/spec/transliterators/romanian_spec.rb +3 -3
- data/spec/transliterators/serbian_spec.rb +5 -5
- data/spec/transliterators/swedish_spec.rb +3 -3
- data/spec/transliterators/turkish_spec.rb +9 -9
- data/spec/transliterators/ukrainian_spec.rb +70 -70
- data/spec/transliterators/vietnamese_spec.rb +3 -3
- metadata +8 -37
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- metadata.gz.sig +0 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: e6de59c464f0cd00297b2bbca81610e0ec301d6bef8039fb9f870b8a2abdd835
|
|
4
|
+
data.tar.gz: 9c109fd2f33b8be82144a80f0e5cd5f58b41ab1bbb250234690551b17b2d3774
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 758abf426c3dbb9f1be3e2fdda9a8376a8c94815ef7966823df68e27f342d6cf2fd9c78254a8011a5e31b54ebaf90d21ce0d73ad446bd085a68013a163b66454
|
|
7
|
+
data.tar.gz: a264b31b6a21bfd3df62611a4c81e301e62bf7b3bf97259b4b6fa6856b24c194440d4b76cd0b5e8a557f7009ccb7cae96e450c2a37413b16894764a749bd01b6
|
data/README.md
CHANGED
|
@@ -95,7 +95,7 @@ class Person < ActiveRecord::Base
|
|
|
95
95
|
friendly_id :name, use: :slugged
|
|
96
96
|
|
|
97
97
|
def normalize_friendly_id(input)
|
|
98
|
-
input.
|
|
98
|
+
input.to_slug.transliterate(:ukrainian).normalize.to_s
|
|
99
99
|
end
|
|
100
100
|
end
|
|
101
101
|
```
|
|
@@ -193,9 +193,10 @@ tracker](http://github.com/norman/babosa/issues).
|
|
|
193
193
|
|
|
194
194
|
"Babosa" means "slug" in Spanish.
|
|
195
195
|
|
|
196
|
-
##
|
|
196
|
+
## Maintainers
|
|
197
197
|
|
|
198
|
-
[
|
|
198
|
+
* [Philip Arndt](https://github.com/parndt)
|
|
199
|
+
* [Norman Clarke](https://github.com/norman/)
|
|
199
200
|
|
|
200
201
|
## Contributors
|
|
201
202
|
|
|
@@ -217,10 +218,11 @@ Many thanks to the following people for their help:
|
|
|
217
218
|
* [Martin Petrov](https://github.com/martin-petrov) - Bulgarian support
|
|
218
219
|
* [Molte Emil Strange Andersen](https://github.com/molte) - Danish support
|
|
219
220
|
* [Milan Dobrota](https://github.com/milandobrota) - Serbian support
|
|
221
|
+
* [Norman Clarke](https://github.com/norman) - Original author
|
|
220
222
|
|
|
221
223
|
## Copyright
|
|
222
224
|
|
|
223
|
-
Copyright (c) 2010-
|
|
225
|
+
Copyright (c) 2010-2021 Norman Clarke and contributors
|
|
224
226
|
|
|
225
227
|
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
|
226
228
|
this software and associated documentation files (the "Software"), to deal in
|
data/Rakefile
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
require "rubygems"
|
|
4
|
+
require "bundler/gem_helper"
|
|
4
5
|
require "rake/testtask"
|
|
5
6
|
require "rake/clean"
|
|
6
7
|
require "rubygems/package_task"
|
|
7
|
-
require "rubocop/rake_task"
|
|
8
8
|
|
|
9
|
-
task default: [:
|
|
9
|
+
task default: [:spec]
|
|
10
10
|
task test: :spec
|
|
11
11
|
|
|
12
12
|
CLEAN << "pkg" << "doc" << "coverage" << ".yardoc"
|
|
@@ -32,4 +32,5 @@ end
|
|
|
32
32
|
|
|
33
33
|
require "rspec/core/rake_task"
|
|
34
34
|
RSpec::Core::RakeTask.new(:spec)
|
|
35
|
-
|
|
35
|
+
|
|
36
|
+
Bundler::GemHelper.install_tasks(name: "babosa")
|
data/lib/babosa/identifier.rb
CHANGED
|
@@ -22,7 +22,7 @@ module Babosa
|
|
|
22
22
|
Error = Class.new(StandardError)
|
|
23
23
|
|
|
24
24
|
attr_reader :wrapped_string
|
|
25
|
-
|
|
25
|
+
alias_method :to_s, :wrapped_string
|
|
26
26
|
|
|
27
27
|
def method_missing(symbol, *args, &block)
|
|
28
28
|
@wrapped_string.__send__(symbol, *args, &block)
|
|
@@ -109,8 +109,8 @@ module Babosa
|
|
|
109
109
|
def word_chars!
|
|
110
110
|
# `^\p{letter}` = Any non-Unicode letter
|
|
111
111
|
# `&&` = add the following character class
|
|
112
|
-
# `[^ _\n\r]` = Anything other than space, underscore, newline or
|
|
113
|
-
gsub!(/[[^\p{letter}]&&[^ \d_\-\n\r]]/, "")
|
|
112
|
+
# `[^ _\n\r\p{Extended_Pictographic}]` = Anything other than space, underscore, newline, linefeed or emojis
|
|
113
|
+
gsub!(/[[^\p{letter}]&&[^ \d_\-\n\r\p{Extended_Pictographic}]]/, "")
|
|
114
114
|
to_s
|
|
115
115
|
end
|
|
116
116
|
|
|
@@ -226,8 +226,8 @@ module Babosa
|
|
|
226
226
|
end
|
|
227
227
|
|
|
228
228
|
%w[clean downcase normalize normalize_utf8 strip_leading_digits
|
|
229
|
-
|
|
230
|
-
|
|
229
|
+
tidy_bytes to_ascii transliterate truncate truncate_bytes upcase
|
|
230
|
+
with_separators word_chars].each do |method|
|
|
231
231
|
class_eval(<<-METHOD, __FILE__, __LINE__ + 1)
|
|
232
232
|
def #{method}(*args)
|
|
233
233
|
with_new_instance { |id| id.send(:#{method}!, *args) }
|
|
@@ -248,11 +248,11 @@ module Babosa
|
|
|
248
248
|
{transliterate: :latin, max_length: 255, separator: "-"}
|
|
249
249
|
end
|
|
250
250
|
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
251
|
+
alias_method :approximate_ascii, :transliterate
|
|
252
|
+
alias_method :approximate_ascii!, :transliterate!
|
|
253
|
+
alias_method :with_dashes, :with_separators
|
|
254
|
+
alias_method :with_dashes!, :with_separators!
|
|
255
|
+
alias_method :to_slug, :to_identifier
|
|
256
256
|
|
|
257
257
|
private
|
|
258
258
|
|
|
@@ -40,40 +40,36 @@ module Babosa
|
|
|
40
40
|
";" => ";",
|
|
41
41
|
":" => ":",
|
|
42
42
|
"《" => "<",
|
|
43
|
-
"》" => ">"
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
"\xe3\x80\x80" => " "
|
|
61
|
-
}
|
|
62
|
-
).freeze
|
|
43
|
+
"》" => ">",
|
|
44
|
+
# various kinds of space characters
|
|
45
|
+
"\xc2\xa0" => " ",
|
|
46
|
+
"\xe2\x80\x80" => " ",
|
|
47
|
+
"\xe2\x80\x81" => " ",
|
|
48
|
+
"\xe2\x80\x82" => " ",
|
|
49
|
+
"\xe2\x80\x83" => " ",
|
|
50
|
+
"\xe2\x80\x84" => " ",
|
|
51
|
+
"\xe2\x80\x85" => " ",
|
|
52
|
+
"\xe2\x80\x86" => " ",
|
|
53
|
+
"\xe2\x80\x87" => " ",
|
|
54
|
+
"\xe2\x80\x88" => " ",
|
|
55
|
+
"\xe2\x80\x89" => " ",
|
|
56
|
+
"\xe2\x80\x8a" => " ",
|
|
57
|
+
"\xe2\x81\x9f" => " ",
|
|
58
|
+
"\xe3\x80\x80" => " "
|
|
59
|
+
}.freeze
|
|
63
60
|
|
|
64
61
|
attr_reader :approximations
|
|
65
62
|
|
|
66
63
|
def initialize
|
|
67
|
-
if self.class < Base
|
|
68
|
-
|
|
64
|
+
@approximations = if self.class < Base
|
|
65
|
+
self.class.superclass.instance.approximations.dup
|
|
69
66
|
else
|
|
70
|
-
|
|
67
|
+
{}
|
|
71
68
|
end
|
|
72
|
-
self.class.const_get(:APPROXIMATIONS).
|
|
73
|
-
index
|
|
74
|
-
value
|
|
69
|
+
self.class.const_get(:APPROXIMATIONS).each_with_object(@approximations) do |object, memo|
|
|
70
|
+
index = object[0].codepoints.shift
|
|
71
|
+
value = object[1].codepoints
|
|
75
72
|
memo[index] = value.length == 1 ? value[0] : value
|
|
76
|
-
memo
|
|
77
73
|
end
|
|
78
74
|
@approximations.freeze
|
|
79
75
|
end
|
|
@@ -92,20 +88,7 @@ module Babosa
|
|
|
92
88
|
end
|
|
93
89
|
end
|
|
94
90
|
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
require
|
|
99
|
-
require "babosa/transliterator/german"
|
|
100
|
-
require "babosa/transliterator/hindi"
|
|
101
|
-
require "babosa/transliterator/macedonian"
|
|
102
|
-
require "babosa/transliterator/norwegian"
|
|
103
|
-
require "babosa/transliterator/romanian"
|
|
104
|
-
require "babosa/transliterator/russian"
|
|
105
|
-
require "babosa/transliterator/serbian"
|
|
106
|
-
require "babosa/transliterator/spanish"
|
|
107
|
-
require "babosa/transliterator/swedish"
|
|
108
|
-
require "babosa/transliterator/ukrainian"
|
|
109
|
-
require "babosa/transliterator/greek"
|
|
110
|
-
require "babosa/transliterator/vietnamese"
|
|
111
|
-
require "babosa/transliterator/turkish"
|
|
91
|
+
Dir[File.expand_path("*.rb", __dir__)]
|
|
92
|
+
.reject { |f| f.end_with?("base.rb") }
|
|
93
|
+
.sort
|
|
94
|
+
.each(&method(:require))
|
data/lib/babosa/version.rb
CHANGED
data/lib/babosa.rb
CHANGED
data/spec/identifier_spec.rb
CHANGED
|
@@ -98,6 +98,10 @@ describe Babosa::Identifier do
|
|
|
98
98
|
expect("検 索".to_slug.normalize).to eql("検-索")
|
|
99
99
|
end
|
|
100
100
|
|
|
101
|
+
it "should work with emoji chars" do
|
|
102
|
+
expect("Emojis on slug 😋".to_slug.normalize).to eql("emojis-on-slug-😋")
|
|
103
|
+
end
|
|
104
|
+
|
|
101
105
|
context "with to_ascii option" do
|
|
102
106
|
it "should approximate and strip non ascii" do
|
|
103
107
|
ss = "カタカナ: katakana is über cool".to_slug
|
|
@@ -8,10 +8,10 @@ describe Babosa::Transliterator::Bulgarian do
|
|
|
8
8
|
|
|
9
9
|
it "should transliterate Cyrillic characters" do
|
|
10
10
|
examples = {
|
|
11
|
-
"Ютия"
|
|
12
|
-
"Чушка"
|
|
13
|
-
"кьорав"
|
|
14
|
-
"Щъркел"
|
|
11
|
+
"Ютия" => "Iutiia",
|
|
12
|
+
"Чушка" => "Chushka",
|
|
13
|
+
"кьорав" => "kiorav",
|
|
14
|
+
"Щъркел" => "Shturkel",
|
|
15
15
|
"полицай" => "policai"
|
|
16
16
|
}
|
|
17
17
|
examples.each { |k, v| expect(t.transliterate(k)).to eql(v) }
|
|
@@ -9,7 +9,7 @@ describe Babosa::Transliterator::Danish do
|
|
|
9
9
|
it "should transliterate various characters" do
|
|
10
10
|
examples = {
|
|
11
11
|
"Ærøskøbing" => "Aeroeskoebing",
|
|
12
|
-
"Årslev"
|
|
12
|
+
"Årslev" => "Aarslev"
|
|
13
13
|
}
|
|
14
14
|
examples.each { |k, v| expect(t.transliterate(k)).to eql(v) }
|
|
15
15
|
end
|
|
@@ -9,8 +9,8 @@ describe Babosa::Transliterator::Greek do
|
|
|
9
9
|
it "should transliterate various characters" do
|
|
10
10
|
examples = {
|
|
11
11
|
"Γερμανία" => "Germania",
|
|
12
|
-
"Αυστρία"
|
|
13
|
-
"Ιταλία"
|
|
12
|
+
"Αυστρία" => "Aystria",
|
|
13
|
+
"Ιταλία" => "Italia"
|
|
14
14
|
}
|
|
15
15
|
examples.each { |k, v| expect(t.transliterate(k)).to eql(v) }
|
|
16
16
|
end
|
|
@@ -8,9 +8,9 @@ describe Babosa::Transliterator::Hindi do
|
|
|
8
8
|
|
|
9
9
|
it "should transliterate hindi characters" do
|
|
10
10
|
examples = {
|
|
11
|
-
"आदित्य"
|
|
11
|
+
"आदित्य" => "aadity",
|
|
12
12
|
"सबरीमाला करवाना पायसम" => "sbriimaalaa krvaanaa paaysm",
|
|
13
|
-
"सक्रांति आँख"
|
|
13
|
+
"सक्रांति आँख" => "skraanti aankh"
|
|
14
14
|
}
|
|
15
15
|
examples.each { |k, v| expect(t.transliterate(k)).to eql(v) }
|
|
16
16
|
end
|
|
@@ -9,9 +9,9 @@ describe Babosa::Transliterator::Norwegian do
|
|
|
9
9
|
it "should transliterate various characters" do
|
|
10
10
|
examples = {
|
|
11
11
|
"Øivind" => "Oeivind",
|
|
12
|
-
"Bø"
|
|
13
|
-
"Åre"
|
|
14
|
-
"Håkon"
|
|
12
|
+
"Bø" => "Boe",
|
|
13
|
+
"Åre" => "Aare",
|
|
14
|
+
"Håkon" => "Haakon"
|
|
15
15
|
}
|
|
16
16
|
examples.each { |k, v| expect(t.transliterate(k)).to eql(v) }
|
|
17
17
|
end
|
|
@@ -8,10 +8,10 @@ describe Babosa::Transliterator::Romanian do
|
|
|
8
8
|
|
|
9
9
|
it "should transliterate various characters" do
|
|
10
10
|
examples = {
|
|
11
|
-
"Iași"
|
|
11
|
+
"Iași" => "Iasi",
|
|
12
12
|
"Mehedinți" => "Mehedinti",
|
|
13
|
-
"Țară"
|
|
14
|
-
"Șanț"
|
|
13
|
+
"Țară" => "Tara",
|
|
14
|
+
"Șanț" => "Sant"
|
|
15
15
|
}
|
|
16
16
|
examples.each { |k, v| expect(t.transliterate(k)).to eql(v) }
|
|
17
17
|
end
|
|
@@ -9,15 +9,15 @@ describe Babosa::Transliterator::Serbian do
|
|
|
9
9
|
|
|
10
10
|
it "should transliterate Latin characters" do
|
|
11
11
|
examples = {
|
|
12
|
-
"Ðorđe"
|
|
12
|
+
"Ðorđe" => "Djordje",
|
|
13
13
|
"Inđija" => "Indjija",
|
|
14
14
|
"Četiri" => "Chetiri",
|
|
15
15
|
"četiri" => "chetiri",
|
|
16
|
-
"Škola"
|
|
17
|
-
"škola"
|
|
18
|
-
"Ђорђе"
|
|
16
|
+
"Škola" => "Shkola",
|
|
17
|
+
"škola" => "shkola",
|
|
18
|
+
"Ђорђе" => "Djordje",
|
|
19
19
|
"Инђија" => "Indjija",
|
|
20
|
-
"Школа"
|
|
20
|
+
"Школа" => "Shkola"
|
|
21
21
|
}
|
|
22
22
|
examples.each { |k, v| expect(t.transliterate(k)).to eql(v) }
|
|
23
23
|
end
|
|
@@ -9,9 +9,9 @@ describe Babosa::Transliterator::Swedish do
|
|
|
9
9
|
it "should transliterate various characters" do
|
|
10
10
|
examples = {
|
|
11
11
|
"Räksmörgås" => "Raeksmoergaas",
|
|
12
|
-
"Öre"
|
|
13
|
-
"Åre"
|
|
14
|
-
"Älskar"
|
|
12
|
+
"Öre" => "Oere",
|
|
13
|
+
"Åre" => "Aare",
|
|
14
|
+
"Älskar" => "Aelskar"
|
|
15
15
|
}
|
|
16
16
|
examples.each { |k, v| expect(t.transliterate(k)).to eql(v) }
|
|
17
17
|
end
|
|
@@ -8,16 +8,16 @@ describe Babosa::Transliterator::Turkish do
|
|
|
8
8
|
|
|
9
9
|
it "should transliterate various characters" do
|
|
10
10
|
examples = {
|
|
11
|
-
"Nâzım"
|
|
12
|
-
"sükûnet"
|
|
11
|
+
"Nâzım" => "Nazim",
|
|
12
|
+
"sükûnet" => "sukunet",
|
|
13
13
|
"millîleştirmek" => "millilestirmek",
|
|
14
|
-
"mêmur"
|
|
15
|
-
"lôkman"
|
|
16
|
-
"yoğurt"
|
|
17
|
-
"şair"
|
|
18
|
-
"İzmir"
|
|
19
|
-
"yığın"
|
|
20
|
-
"çarşı"
|
|
14
|
+
"mêmur" => "memur",
|
|
15
|
+
"lôkman" => "lokman",
|
|
16
|
+
"yoğurt" => "yogurt",
|
|
17
|
+
"şair" => "sair",
|
|
18
|
+
"İzmir" => "Izmir",
|
|
19
|
+
"yığın" => "yigin",
|
|
20
|
+
"çarşı" => "carsi"
|
|
21
21
|
}
|
|
22
22
|
examples.each { |k, v| expect(t.transliterate(k)).to eql(v) }
|
|
23
23
|
end
|
|
@@ -8,79 +8,79 @@ describe Babosa::Transliterator::Ukrainian do
|
|
|
8
8
|
|
|
9
9
|
it "should transliterate Cyrillic characters" do
|
|
10
10
|
examples = {
|
|
11
|
-
"Алушта"
|
|
12
|
-
"Андрій"
|
|
13
|
-
"Борщагівка"
|
|
14
|
-
"Борисенко"
|
|
15
|
-
"Вінниця"
|
|
16
|
-
"Володимир"
|
|
17
|
-
"Гадяч"
|
|
18
|
-
"Богдан"
|
|
19
|
-
"Ґалаґан"
|
|
20
|
-
"Ґорґани"
|
|
21
|
-
"Донецьк"
|
|
22
|
-
"Дмитро"
|
|
23
|
-
"Рівне"
|
|
24
|
-
"Олег"
|
|
25
|
-
"Есмань"
|
|
26
|
-
"Єнакієве"
|
|
27
|
-
"Гаєвич"
|
|
28
|
-
"Короп'є"
|
|
29
|
-
"Житомир"
|
|
30
|
-
"Жанна"
|
|
31
|
-
"Жежелів"
|
|
32
|
-
"Закарпаття"
|
|
33
|
-
"Казимирчук"
|
|
34
|
-
"Медвин"
|
|
35
|
-
"Михайленко"
|
|
36
|
-
"Іванків"
|
|
37
|
-
"Іващенко"
|
|
38
|
-
"Їжакевич"
|
|
39
|
-
"Кадиївка"
|
|
40
|
-
"Мар'їне"
|
|
41
|
-
"Йосипівка"
|
|
42
|
-
"Стрий"
|
|
43
|
-
"Олексій"
|
|
44
|
-
"Київ"
|
|
45
|
-
"Коваленко"
|
|
46
|
-
"Лебедин"
|
|
47
|
-
"Леонід"
|
|
48
|
-
"Миколаїв"
|
|
49
|
-
"Маринич"
|
|
50
|
-
"Ніжин"
|
|
51
|
-
"Наталія"
|
|
52
|
-
"Одеса"
|
|
53
|
-
"Онищенко"
|
|
54
|
-
"Полтава"
|
|
55
|
-
"Петро"
|
|
11
|
+
"Алушта" => "Alushta",
|
|
12
|
+
"Андрій" => "Andrii",
|
|
13
|
+
"Борщагівка" => "Borshchahivka",
|
|
14
|
+
"Борисенко" => "Borysenko",
|
|
15
|
+
"Вінниця" => "Vinnytsia",
|
|
16
|
+
"Володимир" => "Volodymyr",
|
|
17
|
+
"Гадяч" => "Hadiach",
|
|
18
|
+
"Богдан" => "Bohdan",
|
|
19
|
+
"Ґалаґан" => "Galagan",
|
|
20
|
+
"Ґорґани" => "Gorgany",
|
|
21
|
+
"Донецьк" => "Donetsk",
|
|
22
|
+
"Дмитро" => "Dmytro",
|
|
23
|
+
"Рівне" => "Rivne",
|
|
24
|
+
"Олег" => "Oleh",
|
|
25
|
+
"Есмань" => "Esman",
|
|
26
|
+
"Єнакієве" => "Yenakiieve",
|
|
27
|
+
"Гаєвич" => "Haievych",
|
|
28
|
+
"Короп'є" => "Koropie",
|
|
29
|
+
"Житомир" => "Zhytomyr",
|
|
30
|
+
"Жанна" => "Zhanna",
|
|
31
|
+
"Жежелів" => "Zhezheliv",
|
|
32
|
+
"Закарпаття" => "Zakarpattia",
|
|
33
|
+
"Казимирчук" => "Kazymyrchuk",
|
|
34
|
+
"Медвин" => "Medvyn",
|
|
35
|
+
"Михайленко" => "Mykhailenko",
|
|
36
|
+
"Іванків" => "Ivankiv",
|
|
37
|
+
"Іващенко" => "Ivashchenko",
|
|
38
|
+
"Їжакевич" => "Yizhakevych",
|
|
39
|
+
"Кадиївка" => "Kadyivka",
|
|
40
|
+
"Мар'їне" => "Marine",
|
|
41
|
+
"Йосипівка" => "Yosypivka",
|
|
42
|
+
"Стрий" => "Stryi",
|
|
43
|
+
"Олексій" => "Oleksii",
|
|
44
|
+
"Київ" => "Kyiv",
|
|
45
|
+
"Коваленко" => "Kovalenko",
|
|
46
|
+
"Лебедин" => "Lebedyn",
|
|
47
|
+
"Леонід" => "Leonid",
|
|
48
|
+
"Миколаїв" => "Mykolaiv",
|
|
49
|
+
"Маринич" => "Marynych",
|
|
50
|
+
"Ніжин" => "Nizhyn",
|
|
51
|
+
"Наталія" => "Nataliia",
|
|
52
|
+
"Одеса" => "Odesa",
|
|
53
|
+
"Онищенко" => "Onyshchenko",
|
|
54
|
+
"Полтава" => "Poltava",
|
|
55
|
+
"Петро" => "Petro",
|
|
56
56
|
"Решетилівка" => "Reshetylivka",
|
|
57
57
|
"Рибчинський" => "Rybchynskyi",
|
|
58
|
-
"Суми"
|
|
59
|
-
"Соломія"
|
|
60
|
-
"Тернопіль"
|
|
61
|
-
"Троць"
|
|
62
|
-
"Ужгород"
|
|
63
|
-
"Уляна"
|
|
64
|
-
"Фастів"
|
|
65
|
-
"Філіпчук"
|
|
66
|
-
"Харків"
|
|
67
|
-
"Христина"
|
|
58
|
+
"Суми" => "Sumy",
|
|
59
|
+
"Соломія" => "Solomiia",
|
|
60
|
+
"Тернопіль" => "Ternopil",
|
|
61
|
+
"Троць" => "Trots",
|
|
62
|
+
"Ужгород" => "Uzhhorod",
|
|
63
|
+
"Уляна" => "Uliana",
|
|
64
|
+
"Фастів" => "Fastiv",
|
|
65
|
+
"Філіпчук" => "Filipchuk",
|
|
66
|
+
"Харків" => "Kharkiv",
|
|
67
|
+
"Христина" => "Khrystyna",
|
|
68
68
|
"Біла Церква" => "Bila Tserkva",
|
|
69
|
-
"Стеценко"
|
|
70
|
-
"Чернівці"
|
|
71
|
-
"Шевченко"
|
|
72
|
-
"Шостка"
|
|
73
|
-
"Кишеньки"
|
|
74
|
-
"Щербухи"
|
|
75
|
-
"Гоща"
|
|
76
|
-
"Гаращенко"
|
|
77
|
-
"Юрій"
|
|
78
|
-
"Корюківка"
|
|
79
|
-
"Яготин"
|
|
80
|
-
"Ярошенко"
|
|
81
|
-
"Костянтин"
|
|
82
|
-
"Знам'янка"
|
|
83
|
-
"Феодосія"
|
|
69
|
+
"Стеценко" => "Stetsenko",
|
|
70
|
+
"Чернівці" => "Chernivtsi",
|
|
71
|
+
"Шевченко" => "Shevchenko",
|
|
72
|
+
"Шостка" => "Shostka",
|
|
73
|
+
"Кишеньки" => "Kyshenky",
|
|
74
|
+
"Щербухи" => "Shcherbukhy",
|
|
75
|
+
"Гоща" => "Hoshcha",
|
|
76
|
+
"Гаращенко" => "Harashchenko",
|
|
77
|
+
"Юрій" => "Yurii",
|
|
78
|
+
"Корюківка" => "Koriukivka",
|
|
79
|
+
"Яготин" => "Yahotyn",
|
|
80
|
+
"Ярошенко" => "Yaroshenko",
|
|
81
|
+
"Костянтин" => "Kostiantyn",
|
|
82
|
+
"Знам'янка" => "Znamianka",
|
|
83
|
+
"Феодосія" => "Feodosiia"
|
|
84
84
|
}
|
|
85
85
|
examples.each { |k, v| expect(t.transliterate(k)).to eql(v) }
|
|
86
86
|
end
|
|
@@ -8,10 +8,10 @@ describe Babosa::Transliterator::Vietnamese do
|
|
|
8
8
|
|
|
9
9
|
it "should transliterate various characters" do
|
|
10
10
|
examples = {
|
|
11
|
-
"làm"
|
|
11
|
+
"làm" => "lam",
|
|
12
12
|
"đàn ông" => "dan ong",
|
|
13
|
-
"thật"
|
|
14
|
-
"khổ"
|
|
13
|
+
"thật" => "that",
|
|
14
|
+
"khổ" => "kho"
|
|
15
15
|
}
|
|
16
16
|
examples.each { |k, v| expect(t.transliterate(k)).to eql(v) }
|
|
17
17
|
end
|
metadata
CHANGED
|
@@ -1,40 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: babosa
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.
|
|
4
|
+
version: 2.1.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Norman Clarke
|
|
8
|
-
autorequire:
|
|
9
8
|
bindir: bin
|
|
10
|
-
cert_chain:
|
|
11
|
-
-
|
|
12
|
-
-----BEGIN CERTIFICATE-----
|
|
13
|
-
MIIEMjCCApqgAwIBAgIBATANBgkqhkiG9w0BAQsFADAjMSEwHwYDVQQDDBhnZW1z
|
|
14
|
-
L0RDPXAvREM9YXJuZHQvREM9aW8wHhcNMjEwNjIzMDkyNzU2WhcNMjIwNjIzMDky
|
|
15
|
-
NzU2WjAjMSEwHwYDVQQDDBhnZW1zL0RDPXAvREM9YXJuZHQvREM9aW8wggGiMA0G
|
|
16
|
-
CSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQD0CYnD37uLlJ3Urla2EnnUQ8S6s16k
|
|
17
|
-
AGMpAzpmARo8YwSqtYMJVGyBzUeI7y93Fk9ncswhIFSH/hnh/Ouat/ki9flHlZ+w
|
|
18
|
-
anv0M+9v3wCLyZSC5BQIWpoduFM/fuvLoDUJDWxL50RjwMS0qo2x2LvfQdHN8gn3
|
|
19
|
-
JdSIV5WLJKIvlmIl9S3pw0JO5KRUGn1PcBO7C0S0SlbhVjRHtlao1ycWUULsX109
|
|
20
|
-
hCh39MPGtnZpdCcxheh0TH/UA/jV0/du9/rQdoidkNHkaC24pPfBJ3nS+rAbWaHP
|
|
21
|
-
WmP+0rjfk/XnGBu/HZpKvlnwQjP3QdK4UMtWl8zewqFMNcIiBRALQugnL/SfrP/4
|
|
22
|
-
CSlha9LwkiE6ByeY4WGnNjNqpi5J3IzjEkZRAxG7u9gCB3FzTaBTyXZYI6jplYNw
|
|
23
|
-
TcCJIBHuoPaa+m9brpjb3Uv94nfM97ZP+OmpGYCCAMq4TT7OOV+t8wJc0w8bb0FO
|
|
24
|
-
ROhmVNTxrBaNcl6MkZn88EMRCsGgoWklOG0CAwEAAaNxMG8wCQYDVR0TBAIwADAL
|
|
25
|
-
BgNVHQ8EBAMCBLAwHQYDVR0OBBYEFGu7pbmeILyHnBmannuaNRfdN8MsMBoGA1Ud
|
|
26
|
-
EQQTMBGBD2dlbXNAcC5hcm5kdC5pbzAaBgNVHRIEEzARgQ9nZW1zQHAuYXJuZHQu
|
|
27
|
-
aW8wDQYJKoZIhvcNAQELBQADggGBANlxc4uAnkPC3zbztG7uZfBfn4HSuvv655Pa
|
|
28
|
-
UaYZ6hNETFrqg78mGs3PkFe2Ru7cVWwckbmH46aq50QoNnx4ClxT03vr03n76Jg1
|
|
29
|
-
8WWHkf0+rcINFlbtIFcmcFrois5Ow3n7pH+xstDtzoWcbh41WwuZStNhrIYsnjAK
|
|
30
|
-
/ovz8D5JlboxceOpVLB/0NiqNEWltK+EMQHmX25Sqf/r5o5rAL9zwEKPFp1Y5X+z
|
|
31
|
-
t2jBjYt2ymr1eMWxux6e+N2uKZL4MblHawxvKlI8UHsIiV9xrc4BwlwlbitcvNIL
|
|
32
|
-
ZykdSlpTJd0Guy92iYjCJMC09tMRUNxiVBwD3jRGSeW9YAPIZGXIcVlm6srIRDjJ
|
|
33
|
-
o8wB6oOvHAkRXnntOo/4bBDH+ehmgvhh/O/mI+au6C0M430fv+ooH0w08LEXLx1k
|
|
34
|
-
e17ZNASZffbQRP09MH2GZ2AOlkildTX6looWRforZEZi+qamognrozd3MI5QHi1W
|
|
35
|
-
UAZUzHLrrFu7gnkFvLVpxOUf4ItOkA==
|
|
36
|
-
-----END CERTIFICATE-----
|
|
37
|
-
date: 2021-08-01 00:00:00.000000000 Z
|
|
9
|
+
cert_chain: []
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
38
11
|
dependencies:
|
|
39
12
|
- !ruby/object:Gem::Dependency
|
|
40
13
|
name: rake
|
|
@@ -65,19 +38,19 @@ dependencies:
|
|
|
65
38
|
- !ruby/object:Gem::Version
|
|
66
39
|
version: 3.7.0
|
|
67
40
|
- !ruby/object:Gem::Dependency
|
|
68
|
-
name:
|
|
41
|
+
name: standard
|
|
69
42
|
requirement: !ruby/object:Gem::Requirement
|
|
70
43
|
requirements:
|
|
71
44
|
- - ">="
|
|
72
45
|
- !ruby/object:Gem::Version
|
|
73
|
-
version:
|
|
46
|
+
version: 1.1.7
|
|
74
47
|
type: :development
|
|
75
48
|
prerelease: false
|
|
76
49
|
version_requirements: !ruby/object:Gem::Requirement
|
|
77
50
|
requirements:
|
|
78
51
|
- - ">="
|
|
79
52
|
- !ruby/object:Gem::Version
|
|
80
|
-
version:
|
|
53
|
+
version: 1.1.7
|
|
81
54
|
- !ruby/object:Gem::Dependency
|
|
82
55
|
name: simplecov
|
|
83
56
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -151,7 +124,6 @@ homepage: http://github.com/norman/babosa
|
|
|
151
124
|
licenses:
|
|
152
125
|
- MIT
|
|
153
126
|
metadata: {}
|
|
154
|
-
post_install_message:
|
|
155
127
|
rdoc_options: []
|
|
156
128
|
require_paths:
|
|
157
129
|
- lib
|
|
@@ -159,15 +131,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
159
131
|
requirements:
|
|
160
132
|
- - ">="
|
|
161
133
|
- !ruby/object:Gem::Version
|
|
162
|
-
version: 2.
|
|
134
|
+
version: 2.6.0
|
|
163
135
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
164
136
|
requirements:
|
|
165
137
|
- - ">="
|
|
166
138
|
- !ruby/object:Gem::Version
|
|
167
139
|
version: '0'
|
|
168
140
|
requirements: []
|
|
169
|
-
rubygems_version:
|
|
170
|
-
signing_key:
|
|
141
|
+
rubygems_version: 4.0.6
|
|
171
142
|
specification_version: 4
|
|
172
143
|
summary: A library for creating slugs.
|
|
173
144
|
test_files: []
|
checksums.yaml.gz.sig
DELETED
|
Binary file
|
data.tar.gz.sig
DELETED
|
Binary file
|
metadata.gz.sig
DELETED