couchrest_model_slug 0.0.2 → 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Gemfile +2 -2
- data/README.rdoc +3 -2
- data/lib/couchrest/model/slug.rb +19 -21
- data/lib/couchrest/model/slug/version.rb +1 -1
- metadata +43 -41
data/Gemfile
CHANGED
data/README.rdoc
CHANGED
@@ -1,4 +1,5 @@
|
|
1
|
-
== CouchRest Model Slug
|
1
|
+
== CouchRest Model Slug {<img src="https://secure.travis-ci.org/lucasrenan/couchrest-model-slug.png?branch=master" alt="Build Status" />}[http://travis-ci.org/lucasrenan/couchrest-model-slug] {<img src="https://gemnasium.com/lucasrenan/couchrest-model-slug.png" alt="Dependency Status" />}[https://gemnasium.com/lucasrenan/couchrest-model-slug]
|
2
|
+
|
2
3
|
|
3
4
|
CouchRest Model Slug is a simple gem to generate better urls using CouchRest Model in an easy way.
|
4
5
|
It's based on Mongoid Slug https://github.com/papercavalier/mongoid-slug
|
@@ -9,7 +10,7 @@ Time to relax with beautiful urls.
|
|
9
10
|
|
10
11
|
Add to Gemfile
|
11
12
|
|
12
|
-
gem "couchrest_model_slug", "~> 0.0.
|
13
|
+
gem "couchrest_model_slug", "~> 0.0.3"
|
13
14
|
|
14
15
|
A model example
|
15
16
|
|
data/lib/couchrest/model/slug.rb
CHANGED
@@ -22,27 +22,6 @@ module CouchRest
|
|
22
22
|
cattr_accessor :slugged_props
|
23
23
|
end
|
24
24
|
|
25
|
-
module InstanceMethods
|
26
|
-
def to_param
|
27
|
-
result = self.send :slug
|
28
|
-
return super if result.blank?
|
29
|
-
result
|
30
|
-
end
|
31
|
-
|
32
|
-
private
|
33
|
-
def generate_slug
|
34
|
-
if new_record? || slugged_props_changed?
|
35
|
-
slug = self.slugged_props.collect{ |prop| read_attribute(prop) }.join(", ").to_url
|
36
|
-
slug = self.class.generate_count_for_slug(slug)
|
37
|
-
self.slug = slug
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
41
|
-
def slugged_props_changed?
|
42
|
-
self.slugged_props.any? { |p| self.send("#{p}_changed?") }
|
43
|
-
end
|
44
|
-
end
|
45
|
-
|
46
25
|
module ClassMethods
|
47
26
|
def slug(*props)
|
48
27
|
self.slugged_props = props.map(&:to_s)
|
@@ -57,6 +36,25 @@ module CouchRest
|
|
57
36
|
hash.nil? ? slug_without_count : "#{slug_without_count}-#{hash['value']}"
|
58
37
|
end
|
59
38
|
end
|
39
|
+
|
40
|
+
def to_param
|
41
|
+
result = self.send :slug
|
42
|
+
return super if result.blank?
|
43
|
+
result
|
44
|
+
end
|
45
|
+
|
46
|
+
private
|
47
|
+
def generate_slug
|
48
|
+
if new_record? || slugged_props_changed?
|
49
|
+
slug = self.slugged_props.collect{ |prop| read_attribute(prop) }.join(", ").to_url
|
50
|
+
slug = self.class.generate_count_for_slug(slug)
|
51
|
+
self.slug = slug
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
def slugged_props_changed?
|
56
|
+
self.slugged_props.any? { |p| self.send("#{p}_changed?") }
|
57
|
+
end
|
60
58
|
|
61
59
|
end
|
62
60
|
end
|
metadata
CHANGED
@@ -1,48 +1,54 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: couchrest_model_slug
|
3
|
-
version: !ruby/object:Gem::Version
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.3
|
4
5
|
prerelease:
|
5
|
-
version: 0.0.2
|
6
6
|
platform: ruby
|
7
|
-
authors:
|
7
|
+
authors:
|
8
8
|
- Lucas Renan
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2012-05-14 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
16
15
|
name: couchrest_model
|
17
|
-
|
18
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
19
17
|
none: false
|
20
|
-
requirements:
|
18
|
+
requirements:
|
21
19
|
- - ~>
|
22
|
-
- !ruby/object:Gem::Version
|
23
|
-
version: 1.1.
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: 1.1.2
|
24
22
|
type: :runtime
|
25
|
-
version_requirements: *id001
|
26
|
-
- !ruby/object:Gem::Dependency
|
27
|
-
name: stringex
|
28
23
|
prerelease: false
|
29
|
-
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ~>
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 1.1.2
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: stringex
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
30
33
|
none: false
|
31
|
-
requirements:
|
34
|
+
requirements:
|
32
35
|
- - ~>
|
33
|
-
- !ruby/object:Gem::Version
|
34
|
-
version: 1.
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: '1.3'
|
35
38
|
type: :runtime
|
36
|
-
|
39
|
+
prerelease: false
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ~>
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '1.3'
|
37
46
|
description:
|
38
47
|
email: contato@lucasrenan.com
|
39
48
|
executables: []
|
40
|
-
|
41
49
|
extensions: []
|
42
|
-
|
43
50
|
extra_rdoc_files: []
|
44
|
-
|
45
|
-
files:
|
51
|
+
files:
|
46
52
|
- lib/couchrest/model/slug/version.rb
|
47
53
|
- lib/couchrest/model/slug.rb
|
48
54
|
- lib/couchrest_model_slug.rb
|
@@ -52,30 +58,26 @@ files:
|
|
52
58
|
- README.rdoc
|
53
59
|
homepage: https://github.com/lucasrenan/couchrest-model-slug
|
54
60
|
licenses: []
|
55
|
-
|
56
61
|
post_install_message:
|
57
62
|
rdoc_options: []
|
58
|
-
|
59
|
-
require_paths:
|
63
|
+
require_paths:
|
60
64
|
- lib
|
61
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
65
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
62
66
|
none: false
|
63
|
-
requirements:
|
64
|
-
- -
|
65
|
-
- !ruby/object:Gem::Version
|
66
|
-
version:
|
67
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
67
|
+
requirements:
|
68
|
+
- - ! '>='
|
69
|
+
- !ruby/object:Gem::Version
|
70
|
+
version: '0'
|
71
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
68
72
|
none: false
|
69
|
-
requirements:
|
70
|
-
- -
|
71
|
-
- !ruby/object:Gem::Version
|
72
|
-
version:
|
73
|
+
requirements:
|
74
|
+
- - ! '>='
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '0'
|
73
77
|
requirements: []
|
74
|
-
|
75
78
|
rubyforge_project:
|
76
|
-
rubygems_version: 1.8.
|
79
|
+
rubygems_version: 1.8.24
|
77
80
|
signing_key:
|
78
81
|
specification_version: 3
|
79
82
|
summary: A simple gem to generate slugs using couchrest model, based on mongoid_slug.
|
80
83
|
test_files: []
|
81
|
-
|