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.
Files changed (36) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +6 -4
  3. data/Rakefile +4 -3
  4. data/lib/babosa/identifier.rb +10 -10
  5. data/lib/babosa/transliterator/base.rb +27 -44
  6. data/lib/babosa/transliterator/bulgarian.rb +2 -0
  7. data/lib/babosa/transliterator/danish.rb +2 -0
  8. data/lib/babosa/transliterator/german.rb +2 -0
  9. data/lib/babosa/transliterator/macedonian.rb +2 -0
  10. data/lib/babosa/transliterator/norwegian.rb +2 -0
  11. data/lib/babosa/transliterator/romanian.rb +2 -0
  12. data/lib/babosa/transliterator/russian.rb +2 -0
  13. data/lib/babosa/transliterator/serbian.rb +2 -0
  14. data/lib/babosa/transliterator/spanish.rb +2 -0
  15. data/lib/babosa/transliterator/swedish.rb +2 -0
  16. data/lib/babosa/transliterator/turkish.rb +2 -0
  17. data/lib/babosa/transliterator/ukrainian.rb +2 -0
  18. data/lib/babosa/transliterator/vietnamese.rb +2 -0
  19. data/lib/babosa/version.rb +1 -1
  20. data/lib/babosa.rb +1 -1
  21. data/spec/identifier_spec.rb +4 -0
  22. data/spec/transliterators/bulgarian_spec.rb +4 -4
  23. data/spec/transliterators/danish_spec.rb +1 -1
  24. data/spec/transliterators/greek_spec.rb +2 -2
  25. data/spec/transliterators/hindi_spec.rb +2 -2
  26. data/spec/transliterators/norwegian_spec.rb +3 -3
  27. data/spec/transliterators/romanian_spec.rb +3 -3
  28. data/spec/transliterators/serbian_spec.rb +5 -5
  29. data/spec/transliterators/swedish_spec.rb +3 -3
  30. data/spec/transliterators/turkish_spec.rb +9 -9
  31. data/spec/transliterators/ukrainian_spec.rb +70 -70
  32. data/spec/transliterators/vietnamese_spec.rb +3 -3
  33. metadata +8 -37
  34. checksums.yaml.gz.sig +0 -0
  35. data.tar.gz.sig +0 -0
  36. metadata.gz.sig +0 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 84fa74468828d44925314cc1bcf6d297aa3a94ebfd993bca491686c92c936667
4
- data.tar.gz: 618a52e9d52878fe8bc5933879115d32dd31b212a9cd2178e78bb7320d186c43
3
+ metadata.gz: e6de59c464f0cd00297b2bbca81610e0ec301d6bef8039fb9f870b8a2abdd835
4
+ data.tar.gz: 9c109fd2f33b8be82144a80f0e5cd5f58b41ab1bbb250234690551b17b2d3774
5
5
  SHA512:
6
- metadata.gz: d8d86867859c5af0f8f80631b5d7aefe14cf87d61ec5908fa08d68fa38cc2e287c77c2c59c41377eb41e6524ba723ed511d1d09e5837259aad4a1ced7162c25a
7
- data.tar.gz: 005dbd796a469420ddc905e2fcf4261703f3777ab29000102039e52b907d51d51c3ab69f11779bfc3e76ed19c24fad997733d008c7d08f50dc1446fa230b7e3d
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.to_s.to_slug.normalize(transliterations: :russian).to_s
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
- ## Author
196
+ ## Maintainers
197
197
 
198
- [Norman Clarke](http://njclarke.com)
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-2020 Norman Clarke
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: [:rubocop, :spec]
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
- RuboCop::RakeTask.new
35
+
36
+ Bundler::GemHelper.install_tasks(name: "babosa")
@@ -22,7 +22,7 @@ module Babosa
22
22
  Error = Class.new(StandardError)
23
23
 
24
24
  attr_reader :wrapped_string
25
- alias to_s wrapped_string
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 linefeed
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
- tidy_bytes to_ascii transliterate truncate truncate_bytes upcase
230
- with_separators word_chars].each do |method|
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
- alias approximate_ascii transliterate
252
- alias approximate_ascii! transliterate!
253
- alias with_dashes with_separators
254
- alias with_dashes! with_separators!
255
- alias to_slug to_identifier
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
- }.merge(
45
- {
46
- # various kinds of space characters
47
- "\xc2\xa0" => " ",
48
- "\xe2\x80\x80" => " ",
49
- "\xe2\x80\x81" => " ",
50
- "\xe2\x80\x82" => " ",
51
- "\xe2\x80\x83" => " ",
52
- "\xe2\x80\x84" => " ",
53
- "\xe2\x80\x85" => " ",
54
- "\xe2\x80\x86" => " ",
55
- "\xe2\x80\x87" => " ",
56
- "\xe2\x80\x88" => " ",
57
- "\xe2\x80\x89" => " ",
58
- "\xe2\x80\x8a" => " ",
59
- "\xe2\x81\x9f" => " ",
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
- @approximations = self.class.superclass.instance.approximations.dup
64
+ @approximations = if self.class < Base
65
+ self.class.superclass.instance.approximations.dup
69
66
  else
70
- @approximations = {}
67
+ {}
71
68
  end
72
- self.class.const_get(:APPROXIMATIONS).inject(@approximations) do |memo, object|
73
- index = object[0].codepoints.shift
74
- value = object[1].codepoints
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
- require "babosa/transliterator/cyrillic"
96
- require "babosa/transliterator/latin"
97
- require "babosa/transliterator/bulgarian"
98
- require "babosa/transliterator/danish"
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))
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require_relative "cyrillic"
4
+
3
5
  module Babosa
4
6
  module Transliterator
5
7
  class Bulgarian < Cyrillic
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require_relative "latin"
4
+
3
5
  module Babosa
4
6
  module Transliterator
5
7
  class Danish < Latin
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require_relative "latin"
4
+
3
5
  module Babosa
4
6
  module Transliterator
5
7
  class German < Latin
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require_relative "cyrillic"
4
+
3
5
  module Babosa
4
6
  module Transliterator
5
7
  class Macedonian < Cyrillic
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require_relative "latin"
4
+
3
5
  module Babosa
4
6
  module Transliterator
5
7
  class Norwegian < Latin
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require_relative "latin"
4
+
3
5
  module Babosa
4
6
  module Transliterator
5
7
  class Romanian < Latin
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require_relative "cyrillic"
4
+
3
5
  module Babosa
4
6
  module Transliterator
5
7
  class Russian < Cyrillic
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require_relative "latin"
4
+
3
5
  module Babosa
4
6
  module Transliterator
5
7
  class Serbian < Latin
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require_relative "latin"
4
+
3
5
  module Babosa
4
6
  module Transliterator
5
7
  class Spanish < Latin
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require_relative "latin"
4
+
3
5
  module Babosa
4
6
  module Transliterator
5
7
  class Swedish < Latin
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require_relative "latin"
4
+
3
5
  module Babosa
4
6
  module Transliterator
5
7
  class Turkish < Latin
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require_relative "cyrillic"
4
+
3
5
  module Babosa
4
6
  module Transliterator
5
7
  class Ukrainian < Cyrillic
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require_relative "latin"
4
+
3
5
  module Babosa
4
6
  module Transliterator
5
7
  class Vietnamese < Latin
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Babosa
4
4
  module Version
5
- STRING = "2.0.0"
5
+ STRING = "2.1.0"
6
6
  end
7
7
  end
data/lib/babosa.rb CHANGED
@@ -7,7 +7,7 @@ class String
7
7
  def to_identifier
8
8
  Babosa::Identifier.new self
9
9
  end
10
- alias to_slug to_identifier
10
+ alias_method :to_slug, :to_identifier
11
11
  end
12
12
 
13
13
  require "babosa/transliterator/base"
@@ -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
- "Ютия" => "Iutiia",
12
- "Чушка" => "Chushka",
13
- "кьорав" => "kiorav",
14
- "Щъркел" => "Shturkel",
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" => "Aarslev"
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
- "Αυστρία" => "Aystria",
13
- "Ιταλία" => "Italia"
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
- "आदित्य" => "aadity",
11
+ "आदित्य" => "aadity",
12
12
  "सबरीमाला करवाना पायसम" => "sbriimaalaa krvaanaa paaysm",
13
- "सक्रांति आँख" => "skraanti aankh"
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ø" => "Boe",
13
- "Åre" => "Aare",
14
- "Håkon" => "Haakon"
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" => "Iasi",
11
+ "Iași" => "Iasi",
12
12
  "Mehedinți" => "Mehedinti",
13
- "Țară" => "Tara",
14
- "Șanț" => "Sant"
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" => "Djordje",
12
+ "Ðorđe" => "Djordje",
13
13
  "Inđija" => "Indjija",
14
14
  "Četiri" => "Chetiri",
15
15
  "četiri" => "chetiri",
16
- "Škola" => "Shkola",
17
- "škola" => "shkola",
18
- "Ђорђе" => "Djordje",
16
+ "Škola" => "Shkola",
17
+ "škola" => "shkola",
18
+ "Ђорђе" => "Djordje",
19
19
  "Инђија" => "Indjija",
20
- "Школа" => "Shkola"
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" => "Oere",
13
- "Åre" => "Aare",
14
- "Älskar" => "Aelskar"
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" => "Nazim",
12
- "sükûnet" => "sukunet",
11
+ "Nâzım" => "Nazim",
12
+ "sükûnet" => "sukunet",
13
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"
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
- "Алушта" => "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",
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
- "Суми" => "Sumy",
59
- "Соломія" => "Solomiia",
60
- "Тернопіль" => "Ternopil",
61
- "Троць" => "Trots",
62
- "Ужгород" => "Uzhhorod",
63
- "Уляна" => "Uliana",
64
- "Фастів" => "Fastiv",
65
- "Філіпчук" => "Filipchuk",
66
- "Харків" => "Kharkiv",
67
- "Христина" => "Khrystyna",
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
- "Стеценко" => "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"
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" => "lam",
11
+ "làm" => "lam",
12
12
  "đàn ông" => "dan ong",
13
- "thật" => "that",
14
- "khổ" => "kho"
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.0.0
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: rubocop
41
+ name: standard
69
42
  requirement: !ruby/object:Gem::Requirement
70
43
  requirements:
71
44
  - - ">="
72
45
  - !ruby/object:Gem::Version
73
- version: 0.93.0
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: 0.93.0
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.5.0
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: 3.1.6
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
@@ -1,2 +0,0 @@
1
- Q/�C�����5-S��D�A
2
- �l@���y]+�/l`� �Rr?