sluggable_kyle 0.0.0 → 0.0.1

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/sluggable_kyle.rb +10 -12
  3. metadata +3 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2e1e1106263f59fd92cd4aaf57ec95b44df3d839
4
- data.tar.gz: 2e6cb46419e02162ac7ce1782d4665e98c14fc97
3
+ metadata.gz: c0ee948cc6ed4238206464a506000813d045332c
4
+ data.tar.gz: c8f7a192b1c40b7b75fe9076cfd73bb00168be50
5
5
  SHA512:
6
- metadata.gz: 2a572586d76a06a676d1d42252a6955e67fe474c8308d60941506508c262d91cd98342c21f9f44641106379f60bb27db34ad53219b4c00add6d6b7b350c614ca
7
- data.tar.gz: 631b08dddab7c6ab7d17c8098262d92d7a7b9433d4e0665d97f869ebaa3bc95b491bd1b0c5fdb513d05a3cf9496834fae707dafdbaa860dca9b6c4269ab8d889
6
+ metadata.gz: e9f21fba3ca39ec99b411e07992383aaa65350a88078ec7ecebfc39e1f8c5e9e107116e1b1e821888b98a1b0dbbdb8b8282491280ca885d6e654adbfc705cc96
7
+ data.tar.gz: 5f2e0e2f9d9f29f8220d3065f852276b9dec4d1135fee1b51e10e2b409f6544224c0eb3fe4f5be2ce49b365c55fe598b91158b7b1044a5c81ce5f8e202346df3
@@ -1,26 +1,30 @@
1
1
  module Sluggable
2
2
  extend ActiveSupport::Concern
3
3
 
4
- included do
4
+ included do
5
5
  before_save :generate_slug!
6
6
  class_attribute :slug_column
7
7
  end
8
8
 
9
+ def to_param
10
+ self.slug
11
+ end
12
+
9
13
  def generate_slug!
10
14
  the_slug = to_slug(self.send(self.class.slug_column.to_sym))
11
15
  obj = self.class.find_by slug: the_slug
12
16
  count = 2
13
17
  while obj && obj != self
14
18
  the_slug = append_suffix(the_slug, count)
19
+ count += 1
15
20
  obj = self.class.find_by slug: the_slug
16
- count+=1
17
21
  end
18
- self.slug = the_slug.downcase
22
+ self.slug = the_slug
19
23
  end
20
24
 
21
25
  def append_suffix(str, count)
22
26
  if str.split('-').last.to_i != 0
23
- return str.split('-').slice(0...-1).join('-') + "-" + count.to_s
27
+ return str.split('-').slice(0..-1).join('-') + "-" + count.to_s
24
28
  else
25
29
  return str + "-" + count.to_s
26
30
  end
@@ -29,19 +33,13 @@ module Sluggable
29
33
  def to_slug(name)
30
34
  str = name.strip
31
35
  str.gsub! /\s*[^A-Za-z0-9]\s*/, '-'
32
- str.gsub! /-+/, "-"
33
- return str.downcase
34
- end
35
-
36
- def to_param
37
- self.slug
36
+ str.gsub! /-+/, '-'
37
+ str.downcase
38
38
  end
39
39
 
40
40
  module ClassMethods
41
-
42
41
  def sluggable_column(col_name)
43
42
  self.slug_column = col_name
44
43
  end
45
44
  end
46
-
47
45
  end
metadata CHANGED
@@ -1,16 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sluggable_kyle
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.0
4
+ version: 0.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kyle Packard
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-12-16 00:00:00.000000000 Z
11
+ date: 2015-01-31 00:00:00.000000000 Z
12
12
  dependencies: []
13
- description: A gem that helps with slugs.
13
+ description: A gem that handles creation of slugs
14
14
  email: godoflame@hotmail.com
15
15
  executables: []
16
16
  extensions: []