translitter 1.0.0 → 1.1.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
2
  SHA256:
3
- metadata.gz: da46961c02a493d89f02c894de694d04bc73b28fdfbed37f54d37097e520ab84
4
- data.tar.gz: 3c5c89f76410fb591f325533f284ca381b34fed83466f4cfd885f1e8b1c58118
3
+ metadata.gz: 0aa4e817b0f70def9668e77516e9dcd105d87b6454339c5e64b194a33973fc04
4
+ data.tar.gz: 8e1a0bd1a07b5e7da59292c6649ed27628ffcdf219aa7a63edba6233b29d32bf
5
5
  SHA512:
6
- metadata.gz: 71147165ed9b68c17a32c29d8f8fb1f689e66a685e3b9a194442f9cbb3c4c4882b5fbca4e628ea33716db7a6a798216a3ee84cc5722a8a9137f6f78ebf7c559a
7
- data.tar.gz: 1d3248f3e9e1275932dc0f54fe5eb4e8cee31627c009cd64bc52b05619999fb2943d4d1536f879d86a3365babfa6413be7b778f860cf6447fc825bc523596df8
6
+ metadata.gz: 0a2637b943cbe9a7bf5d951890a4738391331dba6b4edd9594f839639330f9e0ebd565ab26ac48e912caeda995aeb35055d32e002a3b97205bf75f022c1710c0
7
+ data.tar.gz: fe97f73afaf3d7f4710907247b38df4c1b1d321adb69312f65ffacc4e8d28cfbb7fc2ef2aa2a3fc4f83fca2bcc09155c67a2394e8c7fdbeb17b10de6d14f7e11
data/CHANGELOG.md CHANGED
@@ -1,5 +1,10 @@
1
1
  # Changelog
2
2
 
3
+ # v1.1.0
4
+
5
+ * Add `replacement` option to initializer as well
6
+ * Keep special characters when `replacement` is `nil`
7
+
3
8
  # v1.0.0
4
9
 
5
10
  * Initial release
data/Gemfile CHANGED
@@ -6,5 +6,4 @@ source "https://rubygems.org"
6
6
  gemspec
7
7
 
8
8
  gem "rake", "~> 13.0"
9
-
10
9
  gem "rspec", "~> 3.0"
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- translitter (1.0.0)
4
+ translitter (1.1.0)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
data/README.md CHANGED
@@ -19,13 +19,19 @@ Using translitter is super easy. For german you'd e.g. do:
19
19
  ```ruby
20
20
  translitter = Translitter.new(
21
21
  default_rules: true,
22
- custom_rules: { 'Ä' => 'Ae', 'Ö' => 'Oe', 'Ü' => 'Ue', 'ä' => 'ae', 'ö' => 'oe', 'ü' => 'ue', 'ß' => 'ss' }
22
+ custom_rules: { 'Ä' => 'Ae', 'Ö' => 'Oe', 'Ü' => 'Ue', 'ä' => 'ae', 'ö' => 'oe', 'ü' => 'ue', 'ß' => 'ss' },
23
+ replacement: "?"
23
24
  )
24
25
 
25
- translitter.transliterate("Äpfél") #=> "Aepfel"
26
+ translitter.transliterate("Äpfél 🍎") #=> "Aepfel ?"
26
27
  ```
27
28
 
28
- The default rules are taken from `i18n-ruby`.
29
+ The default rules are taken from `i18n-ruby`. If you pass `nil` as
30
+ `replacement`, special characters will be kept in the result.
31
+
32
+ ```ruby
33
+ translitter.transliterate("Äpfél 🍎", replacement: nil) #=> "Aepfel 🍎"
34
+ ```
29
35
 
30
36
  ## Development
31
37
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class Translitter
4
- VERSION = "1.0.0"
4
+ VERSION = "1.1.0"
5
5
  end
data/lib/translitter.rb CHANGED
@@ -34,15 +34,17 @@ class Translitter
34
34
  "Ž" => "Z", "ž" => "z"
35
35
  }.freeze
36
36
 
37
- def initialize(default_rules: true, custom_rules: {})
37
+ def initialize(default_rules: true, custom_rules: {}, replacement: "?")
38
38
  @rules = {}
39
39
  @rules.merge!(DEFAULT_RULES) if default_rules
40
40
  @rules.merge!(custom_rules)
41
+
42
+ @replacement = replacement
41
43
  end
42
44
 
43
- def transliterate(str, replacement: "?")
45
+ def transliterate(str, replacement: @replacement)
44
46
  str.gsub(/[^\x00-\x7f]/u) do |char|
45
- @rules[char] || replacement
47
+ @rules[char] || replacement || char
46
48
  end
47
49
  end
48
50
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: translitter
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Benjamin Vetter
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-07-08 00:00:00.000000000 Z
11
+ date: 2024-06-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rubocop