Class: Kotoshu::Algorithms::Capitalization::TurkicCasing
- Defined in:
- lib/kotoshu/algorithms/capitalization.rb
Overview
Redefines upper and lower, because in Turkic languages lowercase “i” is uppercased as “İ”, and uppercase “I” is downcased as “ı”.
Example:
turkic = Kotoshu::Algorithms::Capitalization::TurkicCasing.new
turkic.lower('Izmir') # => ['ızmir']
turkic.upper('Izmir') # => 'IZMİR'
Constant Summary collapse
- U2L =
{ 'İ' => 'i', 'I' => 'ı' }.freeze
- L2U =
{ 'i' => 'İ', 'ı' => 'I' }.freeze
Instance Method Summary collapse
-
#lower(word) ⇒ Array<String>
Translate uppercase Turkic characters to lowercase.
-
#upper(word) ⇒ String
Translate lowercase Turkic characters to uppercase.
Methods inherited from Casing
#capitalize, #coerce, #corrections, #guess, #lowerfirst, #variants
Instance Method Details
#lower(word) ⇒ Array<String>
Translate uppercase Turkic characters to lowercase.
208 209 210 211 |
# File 'lib/kotoshu/algorithms/capitalization.rb', line 208 def lower(word) translated = word.chars.map { |c| U2L[c] || c }.join super(translated) end |
#upper(word) ⇒ String
Translate lowercase Turkic characters to uppercase.
217 218 219 220 |
# File 'lib/kotoshu/algorithms/capitalization.rb', line 217 def upper(word) translated = word.chars.map { |c| L2U[c] || c }.join super(translated) end |