Module: StringExt
- Extended by:
- StringExt
- Included in:
- StringExt
- Defined in:
- lib/string_ext.rb,
lib/string_ext/version.rb
Constant Summary collapse
- ACCENTS =
{ 'A' => { upcase: 'ÁÀÄÂÃÅĀĂǍ', downcase: 'áàäâãåāăǎ' }, 'E' => { upcase: 'ÉÈËÊĒĔĖĚ', downcase: 'éèëêēĕėě' }, 'I' => { upcase: 'ÍÌÏÎĨĬǏ', downcase: 'íìïîĩĭǐ' }, 'O' => { upcase: 'ÓÒÖÔÕŌŎŐǑ', downcase: 'óòöôõōŏőǒ' }, 'U' => { upcase: 'ÚÙÜÛŨŪŬŮŰǓ', downcase: 'úùüûũūŭůűǔ' } }
- CASES =
{ downcase: 'ñç' + ACCENTS.values.map { |a| a[:downcase] }.join, upcase: 'ÑÇ' + ACCENTS.values.map { |a| a[:upcase] }.join }
- UNACCENT_REPLACEMENTS =
ACCENTS.each_with_object({accented: '', unaccented: ''}) do |(char, cases), replacements| replacements[:accented] += cases[:upcase] + cases[:downcase] replacements[:unaccented] += (char * cases[:upcase].size) + (char.downcase * cases[:downcase].size) end
- VERSION =
'0.1.1'
Instance Method Summary collapse
Instance Method Details
#downcase(string) ⇒ Object
45 46 47 |
# File 'lib/string_ext.rb', line 45 def downcase(string) string.tr(CASES[:upcase], CASES[:downcase]).downcase end |
#unaccented(string) ⇒ Object
49 50 51 |
# File 'lib/string_ext.rb', line 49 def unaccented(string) string.tr(UNACCENT_REPLACEMENTS[:accented], UNACCENT_REPLACEMENTS[:unaccented]) end |
#upcase(string) ⇒ Object
41 42 43 |
# File 'lib/string_ext.rb', line 41 def upcase(string) string.tr(CASES[:downcase], CASES[:upcase]).upcase end |