mirror of
https://github.com/codeninjasllc/discourse.git
synced 2024-12-18 03:25:31 -05:00
31 lines
609 B
Ruby
31 lines
609 B
Ruby
|
# 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
|