Sha256: 3e033e8210f8d7ce108e5a90d19cb85b78a16eb7fac7bb0cf1efe058945b84b7

Contents?: true

Size: 702 Bytes

Versions: 21

Compression:

Stored size: 702 Bytes

Contents

# encoding: utf-8
#
module CharacterSubstituters # :nodoc:all
  # Substitutes Umlauts like
  # ä, ö, ü => ae, oe, ue.
  # (and more, see specs)
  #
  class WestEuropean

    def initialize
      @chars = ActiveSupport::Multibyte.proxy_class
    end

    def to_s
      self.class.name
    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

21 entries across 21 versions & 1 rubygems

Version Path
picky-2.7.0 lib/picky/character_substituters/west_european.rb
picky-2.6.0 lib/picky/character_substituters/west_european.rb
picky-2.5.2 lib/picky/character_substituters/west_european.rb
picky-2.5.1 lib/picky/character_substituters/west_european.rb
picky-2.5.0 lib/picky/character_substituters/west_european.rb
picky-2.4.3 lib/picky/character_substituters/west_european.rb
picky-2.4.2 lib/picky/character_substituters/west_european.rb
picky-2.4.1 lib/picky/character_substituters/west_european.rb
picky-2.4.0 lib/picky/character_substituters/west_european.rb
picky-2.3.0 lib/picky/character_substituters/west_european.rb
picky-2.2.1 lib/picky/character_substituters/west_european.rb
picky-2.2.0 lib/picky/character_substituters/west_european.rb
picky-2.1.2 lib/picky/character_substituters/west_european.rb
picky-2.1.1 lib/picky/character_substituters/west_european.rb
picky-2.1.0 lib/picky/character_substituters/west_european.rb
picky-2.0.0 lib/picky/character_substituters/west_european.rb
picky-2.0.0.pre3 lib/picky/character_substituters/west_european.rb
picky-2.0.0.pre2 lib/picky/character_substituters/west_european.rb
picky-2.0.0.pre1 lib/picky/character_substituters/west_european.rb
picky-1.5.4 lib/picky/character_substituters/west_european.rb