# encoding: utf-8

# Generates a slug. This is annoying beacuse it's duplicating what the javascript 
# does, but on the other hand slugs are never matched so it's okay if they differ
# a little.
module Slug

  def self.for(string)

    str = string.dup
    str.gsub!(/^\s+|\s+$/, '')
    str.downcase!

    from = "àáäâèéëêìíïîòóöôùúüûñç·/_,:;."
    to   = "aaaaeeeeiiiioooouuuunc-------"

    idx = 0
    from.each_char do |c|
      str.gsub!(c, to[idx])
      idx += 1
    end

    str.gsub!(/[^a-z0-9 -]/, '')
    str.gsub!(/\s+/, '-')
    str.gsub!(/\-+/, '-')
    str.gsub!(/^-|-$/, '')

    str
  end

end