lib/unaccent.rb
# frozen_string_literal: true
require 'unaccent/version'
# Replace accented characters with unaccented characters in a string.
module Unaccent
autoload :ACCENTMAP, 'unaccent/accentmap'
class << self
# Replace a string's accented characters with unaccented characters.
#
# @example
# str = 'Å Ç ß'
# Unaccent.unaccent(str) = > 'AA C ss'
#
# @return [String] a string that has no accents
def unaccent(str)
return str if str.ascii_only?
str.gsub(/[^[:ascii:]]/) { |char| ACCENTMAP.fetch(char, char) }
end
end
end