slugorize 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -4,10 +4,11 @@ module Slugorize
4
4
  def slugorize
5
5
  result = self.downcase
6
6
  result.gsub!(/&(#?[0-9a-z])+;/, '') # Ditch Entities
7
- result.gsub!(/[^a-z0-9\_]/, '_') # Get rid of anything we don't like
7
+ result.gsub!(/[^a-z0-9\_]/, ' ') # Get rid of anything we don't like
8
+ result.gsub!(/\ +$/, '') # trim trailing spaces
9
+ result.gsub!(/^\ +/, '') # trim leading spaces
10
+ result.gsub!(/\ /, '_') # underscore!
8
11
  result.gsub!(/_+/, '_') # collapse underscores
9
- result.gsub!(/_$/, '') # trim underscores
10
- result.gsub!(/^_/, '') # trim underscores
11
12
  result
12
13
  end
13
14
 
@@ -1,3 +1,3 @@
1
1
  module Slugorize
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
@@ -2,36 +2,40 @@ require 'slugorize'
2
2
 
3
3
  describe String do
4
4
  describe "#slugorize" do
5
- it "should lowercase everything" do
5
+ it "lowercases everything" do
6
6
  "FANTASTIC".slugorize.should == "fantastic"
7
7
  end
8
8
 
9
- it "should leave alphanumerics and underscores alone" do
9
+ it "leaves alphanumerics and underscores alone" do
10
10
  "abc_123".slugorize.should == "abc_123"
11
11
  end
12
12
 
13
- it "should ditch entities" do
13
+ it "ditches entities" do
14
14
  "abcæ_bxyz".slugorize.should == "abc_xyz"
15
15
  end
16
16
 
17
- it "should strip all non_alphanumeric characters except _" do
18
- 'abc\'""!@#$%^*()/=+|\[],.<&>123'.slugorize.should == "abc_123"
17
+ it "strips all non_alphanumeric characters except _" do
18
+ '#$%^&*abc\'""!@#$%^*()/=+|\[],.<&>123#$%^&*'.slugorize.should == "abc_123"
19
19
  end
20
20
 
21
- it "should replace all whitespace with an underscore" do
21
+ it "replaces whitespace with an underscore" do
22
22
  "abc\n\t xyz".slugorize.should == "abc_xyz"
23
23
  end
24
24
 
25
- it "should trim underscores at the tail" do
26
- "abc_".slugorize.should == "abc"
25
+ it "trims spaces at the tail" do
26
+ "abc ".slugorize.should == "abc"
27
27
  end
28
28
 
29
- it "should trim underscores at the head" do
30
- "_abc".slugorize.should == "abc"
29
+ it "trims spaces at the head" do
30
+ " abc".slugorize.should == "abc"
31
31
  end
32
32
 
33
- it "should collapse multiple dashes" do
34
- "abc___xyz".slugorize.should == "abc_xyz"
33
+ it "allows an underscore at the head" do
34
+ "_abc".slugorize.should == "_abc"
35
+ end
36
+
37
+ it "collapses multiple underscores" do
38
+ "___abc___xyz___".slugorize.should == "_abc_xyz_"
35
39
  end
36
40
  end
37
41
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: slugorize
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-11-22 00:00:00.000000000Z
12
+ date: 2011-12-07 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec
16
- requirement: &2153405800 !ruby/object:Gem::Requirement
16
+ requirement: &2164685060 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,7 +21,7 @@ dependencies:
21
21
  version: '0'
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *2153405800
24
+ version_requirements: *2164685060
25
25
  description: Small string extension which normalizes strings making them suitable
26
26
  for usage as a slug in a url. Based on code from Xavier Shay's Enki.
27
27
  email: