Sha256: 34cb30dc9f71c6316df8d9bf05837664b974903e731a34bc48a307a5370a2eba

Contents?: true

Size: 675 Bytes

Versions: 4

Compression:

Stored size: 675 Bytes

Contents

# encoding: utf-8
#
module CharacterSubstituters
  # Substitutes Umlauts like
  # ä, ö, ü => ae, oe, ue.
  # (and more, see specs)
  #
  class WestEuropean
    
    def initialize
      @chars = ActiveSupport::Multibyte.proxy_class
    end
    
    def substitute text
      trans = @chars.new(text).normalize(:kd)
      
      # substitute special cases
      #
      trans.gsub!('ß', 'ss')
      
      # substitute umlauts (of A,O,U,a,o,u)
      #
      trans.gsub!(/([AOUaou])\314\210/u, '\1e')
      
      # get rid of ecutes, graves and …
      #
      trans.unpack('U*').select { |cp|
        cp < 0x0300 || cp > 0x035F
      }.pack('U*')
    end
    
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
picky-0.12.3 lib/picky/character_substituters/west_european.rb
picky-0.12.2 lib/picky/character_substituters/west_european.rb
picky-0.12.1 lib/picky/character_substituters/west_european.rb
picky-0.12.0 lib/picky/character_substituters/west_european.rb