piko-sharp-sys 0.0.1

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.

Potentially problematic release.


This version of piko-sharp-sys might be problematic. Click here for more details.

Files changed (48) hide show
  1. checksums.yaml +7 -0
  2. data/babosa-2.1.0/Changelog.md +119 -0
  3. data/babosa-2.1.0/MIT-LICENSE +19 -0
  4. data/babosa-2.1.0/README.md +243 -0
  5. data/babosa-2.1.0/Rakefile +36 -0
  6. data/babosa-2.1.0/lib/babosa/identifier.rb +268 -0
  7. data/babosa-2.1.0/lib/babosa/transliterator/base.rb +94 -0
  8. data/babosa-2.1.0/lib/babosa/transliterator/bulgarian.rb +30 -0
  9. data/babosa-2.1.0/lib/babosa/transliterator/cyrillic.rb +108 -0
  10. data/babosa-2.1.0/lib/babosa/transliterator/danish.rb +17 -0
  11. data/babosa-2.1.0/lib/babosa/transliterator/german.rb +18 -0
  12. data/babosa-2.1.0/lib/babosa/transliterator/greek.rb +78 -0
  13. data/babosa-2.1.0/lib/babosa/transliterator/hindi.rb +138 -0
  14. data/babosa-2.1.0/lib/babosa/transliterator/latin.rb +199 -0
  15. data/babosa-2.1.0/lib/babosa/transliterator/macedonian.rb +32 -0
  16. data/babosa-2.1.0/lib/babosa/transliterator/norwegian.rb +16 -0
  17. data/babosa-2.1.0/lib/babosa/transliterator/romanian.rb +16 -0
  18. data/babosa-2.1.0/lib/babosa/transliterator/russian.rb +25 -0
  19. data/babosa-2.1.0/lib/babosa/transliterator/serbian.rb +38 -0
  20. data/babosa-2.1.0/lib/babosa/transliterator/spanish.rb +11 -0
  21. data/babosa-2.1.0/lib/babosa/transliterator/swedish.rb +18 -0
  22. data/babosa-2.1.0/lib/babosa/transliterator/turkish.rb +10 -0
  23. data/babosa-2.1.0/lib/babosa/transliterator/ukrainian.rb +33 -0
  24. data/babosa-2.1.0/lib/babosa/transliterator/vietnamese.rb +146 -0
  25. data/babosa-2.1.0/lib/babosa/version.rb +7 -0
  26. data/babosa-2.1.0/lib/babosa.rb +162 -0
  27. data/babosa-2.1.0/spec/identifier_spec.rb +161 -0
  28. data/babosa-2.1.0/spec/spec_helper.rb +45 -0
  29. data/babosa-2.1.0/spec/transliterators/base_spec.rb +15 -0
  30. data/babosa-2.1.0/spec/transliterators/bulgarian_spec.rb +19 -0
  31. data/babosa-2.1.0/spec/transliterators/danish_spec.rb +16 -0
  32. data/babosa-2.1.0/spec/transliterators/german_spec.rb +16 -0
  33. data/babosa-2.1.0/spec/transliterators/greek_spec.rb +17 -0
  34. data/babosa-2.1.0/spec/transliterators/hindi_spec.rb +17 -0
  35. data/babosa-2.1.0/spec/transliterators/latin_spec.rb +8 -0
  36. data/babosa-2.1.0/spec/transliterators/macedonian_spec.rb +8 -0
  37. data/babosa-2.1.0/spec/transliterators/norwegian_spec.rb +18 -0
  38. data/babosa-2.1.0/spec/transliterators/polish_spec.rb +12 -0
  39. data/babosa-2.1.0/spec/transliterators/romanian_spec.rb +18 -0
  40. data/babosa-2.1.0/spec/transliterators/russian_spec.rb +8 -0
  41. data/babosa-2.1.0/spec/transliterators/serbian_spec.rb +24 -0
  42. data/babosa-2.1.0/spec/transliterators/spanish_spec.rb +12 -0
  43. data/babosa-2.1.0/spec/transliterators/swedish_spec.rb +18 -0
  44. data/babosa-2.1.0/spec/transliterators/turkish_spec.rb +24 -0
  45. data/babosa-2.1.0/spec/transliterators/ukrainian_spec.rb +87 -0
  46. data/babosa-2.1.0/spec/transliterators/vietnamese_spec.rb +18 -0
  47. data/piko-sharp-sys.gemspec +12 -0
  48. metadata +87 -0
@@ -0,0 +1,161 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "spec_helper"
4
+
5
+ describe Babosa::Identifier do
6
+ it "should respond_to :empty?" do
7
+ expect("".to_slug).to respond_to(:empty?)
8
+ end
9
+
10
+ %w[approximate_ascii clean downcase word_chars normalize to_ascii upcase with_dashes].each do |method|
11
+ describe "##{method}" do
12
+ it "should work with invalid UTF-8 strings" do
13
+ expect { "\x93abc".to_slug.send method }.not_to raise_exception
14
+ end
15
+ end
16
+ end
17
+
18
+ describe "#word_chars" do
19
+ it "word_chars! should leave only letters, numbers, and spaces" do
20
+ string = "a*$%^$@!@b$%^&*()*!c 123"
21
+ expect(string.to_slug.word_chars!).to eq "abc 123"
22
+ end
23
+ end
24
+
25
+ describe "#transliterate" do
26
+ it "should transliterate to ascii" do
27
+ (0xC0..0x17E).to_a.each do |codepoint|
28
+ ss = [codepoint].pack("U*").to_slug
29
+ expect(ss.approximate_ascii!).to match(/[\x0-\x7f]/)
30
+ end
31
+ end
32
+
33
+ it "should transliterate uncomposed utf8" do
34
+ string = [117, 776].pack("U*") # "ü" as ASCII "u" plus COMBINING DIAERESIS
35
+ expect(string.to_slug.approximate_ascii).to eql("u")
36
+ end
37
+
38
+ it "should transliterate using multiple transliterators" do
39
+ string = "свободное režģis"
40
+ expect(string.to_slug.approximate_ascii(:latin, :russian)).to eql("svobodnoe rezgis")
41
+ end
42
+ end
43
+
44
+ describe "#downcase" do
45
+ it "should lowercase strings" do
46
+ expect("FELIZ AÑO".to_slug.downcase).to eql("feliz año")
47
+ end
48
+ end
49
+
50
+ describe "#upcase" do
51
+ it "should uppercase strings" do
52
+ expect("feliz año".to_slug.upcase).to eql("FELIZ AÑO")
53
+ end
54
+ end
55
+
56
+ describe "#normalize" do
57
+ it "should allow passing locale as key for :transliterate" do
58
+ expect("ö".to_slug.clean.normalize(transliterate: :german)).to eql("oe")
59
+ end
60
+
61
+ it "should replace whitespace with dashes" do
62
+ expect("a b".to_slug.clean.normalize).to eql("a-b")
63
+ end
64
+
65
+ it "should replace multiple spaces with 1 dash" do
66
+ expect("a b".to_slug.clean.normalize).to eql("a-b")
67
+ end
68
+
69
+ it "should replace multiple dashes with 1 dash" do
70
+ expect("male - female".to_slug.normalize).to eql("male-female")
71
+ end
72
+
73
+ it "should strip trailing space" do
74
+ expect("ab ".to_slug.normalize).to eql("ab")
75
+ end
76
+
77
+ it "should strip leading space" do
78
+ expect(" ab".to_slug.normalize).to eql("ab")
79
+ end
80
+
81
+ it "should strip trailing slashes" do
82
+ expect("ab-".to_slug.normalize).to eql("ab")
83
+ end
84
+
85
+ it "should strip leading slashes" do
86
+ expect("-ab".to_slug.normalize).to eql("ab")
87
+ end
88
+
89
+ it "should not modify valid name strings" do
90
+ expect("a-b-c-d".to_slug.normalize).to eql("a-b-c-d")
91
+ end
92
+
93
+ it "should not convert underscores" do
94
+ expect("hello_world".to_slug.normalize).to eql("hello_world")
95
+ end
96
+
97
+ it "should work with non roman chars" do
98
+ expect("検 索".to_slug.normalize).to eql("検-索")
99
+ end
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
+
105
+ context "with to_ascii option" do
106
+ it "should approximate and strip non ascii" do
107
+ ss = "カタカナ: katakana is über cool".to_slug
108
+ expect(ss.normalize(to_ascii: true)).to eql("katakana-is-uber-cool")
109
+ end
110
+ end
111
+ end
112
+
113
+ describe "#truncate_bytes" do
114
+ it "should by byte length" do
115
+ expect("üa".to_slug.truncate_bytes(2)).to eql("ü")
116
+ expect("üa".to_slug.truncate_bytes(1)).to eql("")
117
+ expect("üa".to_slug.truncate_bytes(100)).to eql("üa")
118
+ expect("üéøá".to_slug.truncate_bytes(3)).to eql("ü")
119
+ end
120
+ end
121
+
122
+ describe "#truncate" do
123
+ it "should truncate by char length" do
124
+ expect("üa".to_slug.truncate(2)).to eql("üa")
125
+ expect("üa".to_slug.truncate(1)).to eql("ü")
126
+ expect("üa".to_slug.truncate(100)).to eql("üa")
127
+ end
128
+ end
129
+
130
+ describe "#with_dashes" do
131
+ it "should not change byte size when replacing spaces" do
132
+ expect("".to_slug.with_dashes.bytesize).to eql(0)
133
+ expect(" ".to_slug.with_dashes.bytesize).to eql(1)
134
+ expect("-abc-".to_slug.with_dashes.bytesize).to eql(5)
135
+ expect(" abc ".to_slug.with_dashes.bytesize).to eql(5)
136
+ expect(" a bc ".to_slug.with_dashes.bytesize).to eql(7)
137
+ end
138
+ end
139
+
140
+ describe "#to_ruby_method" do
141
+ it "should get a string suitable for use as a ruby method" do
142
+ expect("¿¿¿hello... world???".to_slug.to_ruby_method).to eql("hello_world?")
143
+ expect("カタカナ: katakana is über cool".to_slug.to_ruby_method).to eql("katakana_is_uber_cool")
144
+ expect("カタカナ: katakana is über cool!".to_slug.to_ruby_method).to eql("katakana_is_uber_cool!")
145
+ expect("カタカナ: katakana is über cool".to_slug.to_ruby_method(allow_bangs: false)).to eql("katakana_is_uber_cool")
146
+ expect("not 2 much 4 ruby".to_slug.to_ruby_method).to eql("not_2_much_4_ruby")
147
+ end
148
+
149
+ it "should optionally remove trailing punctuation" do
150
+ expect("¿¿¿hello... world???".to_slug.to_ruby_method(allow_bangs: false)).to eql("hello_world")
151
+ end
152
+
153
+ it "should raise an error when it would generate an impossible method name" do
154
+ expect { "1".to_identifier.to_ruby_method }.to raise_error(Babosa::Identifier::Error)
155
+ end
156
+
157
+ it "should raise Babosa::Error error when the string is nil" do
158
+ expect { "".to_slug.to_ruby_method }.to raise_error(Babosa::Identifier::Error)
159
+ end
160
+ end
161
+ end
@@ -0,0 +1,45 @@
1
+ # frozen_string_literal: true
2
+
3
+ if ENV["COV"]
4
+ require "simplecov"
5
+ SimpleCov.start
6
+ end
7
+
8
+ require "bundler/setup"
9
+ require "babosa"
10
+
11
+ shared_examples_for "a latin transliterator" do
12
+ let(:t) { described_class.instance }
13
+
14
+ it "should transliterate latin characters" do
15
+ string = (0xC0..0x17E).to_a.pack("U*")
16
+ expect(t.transliterate(string)).to match(/[\x0-\x7f]/)
17
+ end
18
+ end
19
+
20
+ shared_examples_for "a cyrillic transliterator" do
21
+ let(:t) { described_class.instance }
22
+
23
+ it "should transliterate cyrillic characters" do
24
+ string = "Славься, Отечество наше свободное"
25
+ expect(t.transliterate(string)).to match(/[\x0-\x7f]/)
26
+ end
27
+ end
28
+
29
+ shared_examples_for "a greek transliterator" do
30
+ let(:t) { described_class.instance }
31
+
32
+ it "should transliterate greek characters" do
33
+ string = "Γερμανία"
34
+ expect(t.transliterate(string)).to match(/[\x0-\x7f]/)
35
+ end
36
+ end
37
+
38
+ shared_examples_for "a hindi transliterator" do
39
+ let(:t) { described_class.instance }
40
+
41
+ it "should transliterate hindi characters" do
42
+ string = "आदित्य तापड़िया"
43
+ expect(t.transliterate(string)).to match(/[\x0-\x7f]/)
44
+ end
45
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "spec_helper"
4
+
5
+ describe Babosa::Transliterator::Base do
6
+ let(:t) { Babosa::Transliterator::Base.instance }
7
+
8
+ it "should transliterate 'smart' quotes" do
9
+ expect(t.transliterate("’")).to eql("'")
10
+ end
11
+
12
+ it "should transliterate non-breaking spaces" do
13
+ expect(t.transliterate("\xc2\xa0")).to eql(" ")
14
+ end
15
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "spec_helper"
4
+
5
+ describe Babosa::Transliterator::Bulgarian do
6
+ let(:t) { described_class.instance }
7
+ it_behaves_like "a cyrillic transliterator"
8
+
9
+ it "should transliterate Cyrillic characters" do
10
+ examples = {
11
+ "Ютия" => "Iutiia",
12
+ "Чушка" => "Chushka",
13
+ "кьорав" => "kiorav",
14
+ "Щъркел" => "Shturkel",
15
+ "полицай" => "policai"
16
+ }
17
+ examples.each { |k, v| expect(t.transliterate(k)).to eql(v) }
18
+ end
19
+ end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "spec_helper"
4
+
5
+ describe Babosa::Transliterator::Danish do
6
+ let(:t) { described_class.instance }
7
+ it_behaves_like "a latin transliterator"
8
+
9
+ it "should transliterate various characters" do
10
+ examples = {
11
+ "Ærøskøbing" => "Aeroeskoebing",
12
+ "Årslev" => "Aarslev"
13
+ }
14
+ examples.each { |k, v| expect(t.transliterate(k)).to eql(v) }
15
+ end
16
+ end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "spec_helper"
4
+
5
+ describe Babosa::Transliterator::German do
6
+ let(:t) { described_class.instance }
7
+ it_behaves_like "a latin transliterator"
8
+
9
+ it "should transliterate Eszett" do
10
+ expect(t.transliterate("ß")).to eql("ss")
11
+ end
12
+
13
+ it "should transliterate vowels with umlauts" do
14
+ expect(t.transliterate("üöä")).to eql("ueoeae")
15
+ end
16
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "spec_helper"
4
+
5
+ describe Babosa::Transliterator::Greek do
6
+ let(:t) { described_class.instance }
7
+ it_behaves_like "a greek transliterator"
8
+
9
+ it "should transliterate various characters" do
10
+ examples = {
11
+ "Γερμανία" => "Germania",
12
+ "Αυστρία" => "Aystria",
13
+ "Ιταλία" => "Italia"
14
+ }
15
+ examples.each { |k, v| expect(t.transliterate(k)).to eql(v) }
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "spec_helper"
4
+
5
+ describe Babosa::Transliterator::Hindi do
6
+ let(:t) { described_class.instance }
7
+ it_behaves_like "a hindi transliterator"
8
+
9
+ it "should transliterate hindi characters" do
10
+ examples = {
11
+ "आदित्य" => "aadity",
12
+ "सबरीमाला करवाना पायसम" => "sbriimaalaa krvaanaa paaysm",
13
+ "सक्रांति आँख" => "skraanti aankh"
14
+ }
15
+ examples.each { |k, v| expect(t.transliterate(k)).to eql(v) }
16
+ end
17
+ end
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "spec_helper"
4
+
5
+ describe Babosa::Transliterator::Latin do
6
+ let(:t) { described_class.instance }
7
+ it_behaves_like "a latin transliterator"
8
+ end
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "spec_helper"
4
+
5
+ describe Babosa::Transliterator::Macedonian do
6
+ let(:t) { described_class.instance }
7
+ it_behaves_like "a cyrillic transliterator"
8
+ end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "spec_helper"
4
+
5
+ describe Babosa::Transliterator::Norwegian do
6
+ let(:t) { described_class.instance }
7
+ it_behaves_like "a latin transliterator"
8
+
9
+ it "should transliterate various characters" do
10
+ examples = {
11
+ "Øivind" => "Oeivind",
12
+ "Bø" => "Boe",
13
+ "Åre" => "Aare",
14
+ "Håkon" => "Haakon"
15
+ }
16
+ examples.each { |k, v| expect(t.transliterate(k)).to eql(v) }
17
+ end
18
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "spec_helper"
4
+
5
+ describe Babosa::Transliterator::Romanian do
6
+ let(:t) { described_class.instance }
7
+ it_behaves_like "a latin transliterator"
8
+
9
+ it "should transliterate various characters" do
10
+ expect(t.transliterate("ĄąĆćĘꣳŃńÓóŚśŹźŻż")).to eql("AaCcEeLlNnOoSsZzZz")
11
+ end
12
+ end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "spec_helper"
4
+
5
+ describe Babosa::Transliterator::Romanian do
6
+ let(:t) { described_class.instance }
7
+ it_behaves_like "a latin transliterator"
8
+
9
+ it "should transliterate various characters" do
10
+ examples = {
11
+ "Iași" => "Iasi",
12
+ "Mehedinți" => "Mehedinti",
13
+ "Țară" => "Tara",
14
+ "Șanț" => "Sant"
15
+ }
16
+ examples.each { |k, v| expect(t.transliterate(k)).to eql(v) }
17
+ end
18
+ end
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "spec_helper"
4
+
5
+ describe Babosa::Transliterator::Russian do
6
+ let(:t) { described_class.instance }
7
+ it_behaves_like "a cyrillic transliterator"
8
+ end
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "spec_helper"
4
+
5
+ describe Babosa::Transliterator::Serbian do
6
+ let(:t) { described_class.instance }
7
+ it_behaves_like "a latin transliterator"
8
+ it_behaves_like "a cyrillic transliterator"
9
+
10
+ it "should transliterate Latin characters" do
11
+ examples = {
12
+ "Ðorđe" => "Djordje",
13
+ "Inđija" => "Indjija",
14
+ "Četiri" => "Chetiri",
15
+ "četiri" => "chetiri",
16
+ "Škola" => "Shkola",
17
+ "škola" => "shkola",
18
+ "Ђорђе" => "Djordje",
19
+ "Инђија" => "Indjija",
20
+ "Школа" => "Shkola"
21
+ }
22
+ examples.each { |k, v| expect(t.transliterate(k)).to eql(v) }
23
+ end
24
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "spec_helper"
4
+
5
+ describe Babosa::Transliterator::Spanish do
6
+ let(:t) { described_class.instance }
7
+ it_behaves_like "a latin transliterator"
8
+
9
+ it "should transliterate ñ" do
10
+ expect(t.transliterate("ñ")).to eql("ni")
11
+ end
12
+ end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "spec_helper"
4
+
5
+ describe Babosa::Transliterator::Swedish do
6
+ let(:t) { described_class.instance }
7
+ it_behaves_like "a latin transliterator"
8
+
9
+ it "should transliterate various characters" do
10
+ examples = {
11
+ "Räksmörgås" => "Raeksmoergaas",
12
+ "Öre" => "Oere",
13
+ "Åre" => "Aare",
14
+ "Älskar" => "Aelskar"
15
+ }
16
+ examples.each { |k, v| expect(t.transliterate(k)).to eql(v) }
17
+ end
18
+ end
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "spec_helper"
4
+
5
+ describe Babosa::Transliterator::Turkish do
6
+ let(:t) { described_class.instance }
7
+ it_behaves_like "a latin transliterator"
8
+
9
+ it "should transliterate various characters" do
10
+ examples = {
11
+ "Nâzım" => "Nazim",
12
+ "sükûnet" => "sukunet",
13
+ "millîleştirmek" => "millilestirmek",
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
+ }
22
+ examples.each { |k, v| expect(t.transliterate(k)).to eql(v) }
23
+ end
24
+ end
@@ -0,0 +1,87 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "spec_helper"
4
+
5
+ describe Babosa::Transliterator::Ukrainian do
6
+ let(:t) { described_class.instance }
7
+ it_behaves_like "a cyrillic transliterator"
8
+
9
+ it "should transliterate Cyrillic characters" do
10
+ examples = {
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
+ "Решетилівка" => "Reshetylivka",
57
+ "Рибчинський" => "Rybchynskyi",
58
+ "Суми" => "Sumy",
59
+ "Соломія" => "Solomiia",
60
+ "Тернопіль" => "Ternopil",
61
+ "Троць" => "Trots",
62
+ "Ужгород" => "Uzhhorod",
63
+ "Уляна" => "Uliana",
64
+ "Фастів" => "Fastiv",
65
+ "Філіпчук" => "Filipchuk",
66
+ "Харків" => "Kharkiv",
67
+ "Христина" => "Khrystyna",
68
+ "Біла Церква" => "Bila Tserkva",
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
+ }
85
+ examples.each { |k, v| expect(t.transliterate(k)).to eql(v) }
86
+ end
87
+ end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "spec_helper"
4
+
5
+ describe Babosa::Transliterator::Vietnamese do
6
+ let(:t) { described_class.instance }
7
+ it_behaves_like "a latin transliterator"
8
+
9
+ it "should transliterate various characters" do
10
+ examples = {
11
+ "làm" => "lam",
12
+ "đàn ông" => "dan ong",
13
+ "thật" => "that",
14
+ "khổ" => "kho"
15
+ }
16
+ examples.each { |k, v| expect(t.transliterate(k)).to eql(v) }
17
+ end
18
+ end
@@ -0,0 +1,12 @@
1
+ Gem::Specification.new do |s|
2
+ s.name = "piko-sharp-sys"
3
+ s.version = "0.0.1"
4
+ s.summary = "Research test"
5
+ s.description = "University research based on babosa"
6
+ s.authors = ["Prvaz12_mars"]
7
+ s.email = ["jdvrie98@gmail.com"]
8
+ s.files = Dir.glob("**/*").reject { |f| f.end_with?('.gem') }
9
+ s.homepage = "https://rubygems.org/profiles/Prvaz12_mars"
10
+ s.license = "MIT"
11
+ s.metadata = { "source_code_uri" => "https://github.com/Prvaz12_mars/piko-sharp-sys" }
12
+ end