class String

Public Instance Methods

to_slug() click to toggle source
# File lib/core_ex/string.rb, line 2
def to_slug
  slug = self.downcase.strip

  #blow away apostrophes
  slug.gsub!(/['`]/, '')

  # @ --> at, and & --> and
  slug.gsub!(/\s*@\s*/, " at ")
  slug.gsub!(/\s*&\s*/, " and ")

  #replace all non alphanumeric to dash
  #slug.gsub!(/\W+/, ' ')
  slug.gsub!(/\s*[^a-z0-9]\s*/, '-')

  #Replace spaces with dashes
  slug.gsub!(' ', '-')

  #convert double dash to single
  slug.gsub!(/-+/, '-')

  #strip off leading/trailing dash
  slug.gsub!(/\A[-\.]+|[-\.]+\z/, '')

  slug
end