Set up slug.rb for obvious method extractions.

This commit is contained in:
Dan Neumann 2013-02-11 20:36:54 -06:00
parent 9daf53df73
commit 50cf8cd4d5
2 changed files with 10 additions and 8 deletions

View file

@ -6,20 +6,24 @@
module Slug
def self.for(string)
str = string.dup
str.gsub!(/^\s+|\s+$/, '')
str.downcase!
str = string.dup.strip.downcase
# The characters we want to replace with a hyphen
str.tr!("·/_,:;.", "\-")
# Convert to ASCII or remove if transliteration is unknown.
str = ActiveSupport::Inflector.transliterate(str, '')
# Remove everything except alphanumberic, space, and hyphen characters.
str.gsub!(/[^a-z0-9 -]/, '')
# Replace multiple spaces with one hyphen.
str.gsub!(/\s+/, '-')
# Replace multiple hyphens with one hyphen.
str.gsub!(/\-+/, '-')
# Remove leading and trailing hyphens
str.gsub!(/^-|-$/, '')
str

View file

@ -1,12 +1,10 @@
# encoding: utf-8
require 'spec_helper'
require 'slug'
describe Slug do
it 'replaces spaces with hyphens' do
Slug.for("hello world").should == 'hello-world'
end