Merge pull request #148 from danneu/slug-simplify
replace reinvention of #parameterize
This commit is contained in:
commit
a9da9c5fde
22
lib/slug.rb
22
lib/slug.rb
|
@ -6,27 +6,7 @@
|
|||
module Slug
|
||||
|
||||
def self.for(string)
|
||||
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
|
||||
string.parameterize
|
||||
end
|
||||
|
||||
end
|
||||
|
|
|
@ -13,8 +13,8 @@ describe Slug do
|
|||
Slug.for('àllo').should == 'allo'
|
||||
end
|
||||
|
||||
it 'removes symbols' do
|
||||
Slug.for('evil#trout').should == 'eviltrout'
|
||||
it 'replaces symbols' do
|
||||
Slug.for('evil#trout').should == 'evil-trout'
|
||||
end
|
||||
|
||||
it 'handles a.b.c properly' do
|
||||
|
|
Loading…
Reference in New Issue