discourse/lib/slug.rb

31 lines
609 B
Ruby
Raw Normal View History

2013-02-05 14:16:51 -05:00
# 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
end
end