translitter 1.0.0 → 1.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 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