gtl-sluggable 0.0.0 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/gtl-sluggable.rb +27 -2
  3. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0b1e125ace6888e5dcf5bc3b66007a1972fcb947
4
- data.tar.gz: 35db62799fbc8c1a2f412de013b879f4a0e1e5c8
3
+ metadata.gz: 67a0b5d73d3a09358887500464bf123e9422480b
4
+ data.tar.gz: 87596dbad0a70863bbb5a2134b1bf2cda2bc7a96
5
5
  SHA512:
6
- metadata.gz: 9204366df87b0482623f88ccc63779df557fb8389f3206e72e3185f4555837f04205498027772bcd4e5dd33ffcf78c8115eaed684c7b849ac860681aa3988d84
7
- data.tar.gz: b6fe5c9ffdbf6d5ebe52075f319ac75396bc9eda018f00ee6e7d88fae8fb2db0451a9abc0a772ea36b67c0b43b24602cc5ba49542f5418797e34199bba75b7b6
6
+ metadata.gz: 5d95067b0d2368c7e1a411a7ecd4fed39508e6794ec92362e4598a92833d02f09bab033abb73b0bdc11f8ca0a3aba671e3c2c55e94622813026608a8762a681f
7
+ data.tar.gz: 83ee3a3ede3fa5d66f63fd306b10e8458cf5a2daa797b21c4731732cc6dfac9ffa98063473c2a69d7debc1f19a387bc479e2faeb3df8bbb7813ed806b2618938
data/lib/gtl-sluggable.rb CHANGED
@@ -9,9 +9,34 @@ module Sluggable
9
9
  end
10
10
 
11
11
  module InstanceMethods
12
- def generate_slug
13
- self.slug = self.sluggable.gsub(' ', '-').downcase
12
+
13
+ def generate_slug
14
+ self.slug = to_slug(self.sluggable)
15
+ end
16
+
17
+ def to_slug(name)
18
+ #strip the string
19
+ ret = name.strip
20
+
21
+ #blow away apostrophes
22
+ ret.gsub! /['`]/,""
23
+
24
+ # @ --> at, and & --> and
25
+ ret.gsub! /\s*@\s*/, " at "
26
+ ret.gsub! /\s*&\s*/, " and "
27
+
28
+ #replace all non alphanumeric with dash
29
+ ret.gsub! /\s*[^A-Za-z0-9]\s*/, '-'
30
+
31
+ #convert double dashes to single
32
+ ret.gsub! /-+/,"-"
33
+
34
+ #strip off leading/trailing dash
35
+ ret.gsub! /\A[-\.]+|[-\.]+\z/,""
36
+
37
+ ret.downcase
14
38
  end
39
+
15
40
  end
16
41
 
17
42
  module ClassMethods
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gtl-sluggable
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.0
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Craig Tran
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2103-09-27 00:00:00.000000000 Z
11
+ date: 2103-09-30 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: A slug creation gem
14
14
  email: cntran@gmail.com