permalink 1.2.0 → 1.2.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- permalink (1.2.0)
4
+ permalink (1.2.1)
5
5
 
6
6
  GEM
7
7
  remote: http://rubygems.org/
@@ -37,19 +37,19 @@ module Permalink
37
37
  end
38
38
 
39
39
  private
40
- def next_available_permalink(_permalink)
41
- the_permalink = _permalink
40
+ def next_available_permalink(permalink)
41
+ unique_permalink = permalink
42
42
 
43
43
  if self.class.permalink_options[:unique]
44
44
  suffix = 2
45
45
 
46
- while self.class.where(to_permalink_name => the_permalink).first
47
- the_permalink = "#{_permalink}-#{suffix}"
46
+ while self.class.where(to_permalink_name => unique_permalink).first
47
+ unique_permalink = "#{permalink}-#{suffix}"
48
48
  suffix += 1
49
49
  end
50
50
  end
51
51
 
52
- the_permalink
52
+ unique_permalink
53
53
  end
54
54
 
55
55
  def from_permalink_name
@@ -69,7 +69,7 @@ module Permalink
69
69
  end
70
70
 
71
71
  def update_permalink?
72
- self.class.permalink_options[:force] || to_permalink_value.blank?
72
+ changes[from_permalink_name] && (self.class.permalink_options[:force] || to_permalink_value.blank?)
73
73
  end
74
74
 
75
75
  def create_permalink
@@ -2,7 +2,7 @@ module Permalink
2
2
  module Version
3
3
  MAJOR = 1
4
4
  MINOR = 2
5
- PATCH = 0
5
+ PATCH = 1
6
6
  STRING = "#{MAJOR}.#{MINOR}.#{PATCH}"
7
7
  end
8
8
  end
@@ -1,5 +1,5 @@
1
1
  ActiveRecord::Schema.define(:version => 0) do
2
2
  create_table :posts do |t|
3
- t.string :title, :permalink, :slug
3
+ t.string :title, :permalink, :description, :slug
4
4
  end
5
5
  end
@@ -92,4 +92,26 @@ shared_examples_for "orm" do
92
92
 
93
93
  record.permalink.should == "awesome-post"
94
94
  end
95
+
96
+ it "should force permalink and keep unique" do
97
+ model.permalink :title, :force => true, :unique => true
98
+
99
+ record = model.create(:title => "Some nice post")
100
+
101
+ record.update_attributes :title => "Awesome post"
102
+ record.permalink.should == "awesome-post"
103
+
104
+ record = model.create(:title => "Awesome post")
105
+ record.permalink.should == "awesome-post-2"
106
+ end
107
+
108
+ it "should keep same permalink when another field changes" do
109
+ model.permalink :title, :force => true, :unique => true
110
+
111
+ record = model.create(:title => "Some nice post")
112
+ record.update_attributes :description => "some description"
113
+
114
+ record.permalink.should == "some-nice-post"
115
+ end
116
+
95
117
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: permalink
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.2.1
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-10-21 00:00:00.000000000 Z
12
+ date: 2011-10-25 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activerecord
16
- requirement: &70099538008620 !ruby/object:Gem::Requirement
16
+ requirement: &70228101514700 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *70099538008620
24
+ version_requirements: *70228101514700
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: sqlite3-ruby
27
- requirement: &70099537997320 !ruby/object:Gem::Requirement
27
+ requirement: &70228101512180 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *70099537997320
35
+ version_requirements: *70228101512180
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: test-unit
38
- requirement: &70099538001440 !ruby/object:Gem::Requirement
38
+ requirement: &70228101510700 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *70099538001440
46
+ version_requirements: *70228101510700
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rspec
49
- requirement: &70099537985380 !ruby/object:Gem::Requirement
49
+ requirement: &70228101509420 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '2.7'
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *70099537985380
57
+ version_requirements: *70228101509420
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: mongoid
60
- requirement: &70099537969500 !ruby/object:Gem::Requirement
60
+ requirement: &70228101525920 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ~>
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: '2.3'
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *70099537969500
68
+ version_requirements: *70228101525920
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: mongo_mapper
71
- requirement: &70099537975840 !ruby/object:Gem::Requirement
71
+ requirement: &70228101524760 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ~>
@@ -76,10 +76,10 @@ dependencies:
76
76
  version: '0.9'
77
77
  type: :development
78
78
  prerelease: false
79
- version_requirements: *70099537975840
79
+ version_requirements: *70228101524760
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: bson_ext
82
- requirement: &70099537055460 !ruby/object:Gem::Requirement
82
+ requirement: &70228101524280 !ruby/object:Gem::Requirement
83
83
  none: false
84
84
  requirements:
85
85
  - - ! '>='
@@ -87,10 +87,10 @@ dependencies:
87
87
  version: '0'
88
88
  type: :development
89
89
  prerelease: false
90
- version_requirements: *70099537055460
90
+ version_requirements: *70228101524280
91
91
  - !ruby/object:Gem::Dependency
92
92
  name: pry
93
- requirement: &70099537034980 !ruby/object:Gem::Requirement
93
+ requirement: &70228101523620 !ruby/object:Gem::Requirement
94
94
  none: false
95
95
  requirements:
96
96
  - - ! '>='
@@ -98,10 +98,10 @@ dependencies:
98
98
  version: '0'
99
99
  type: :development
100
100
  prerelease: false
101
- version_requirements: *70099537034980
101
+ version_requirements: *70228101523620
102
102
  - !ruby/object:Gem::Dependency
103
103
  name: rake
104
- requirement: &70099537034280 !ruby/object:Gem::Requirement
104
+ requirement: &70228101522800 !ruby/object:Gem::Requirement
105
105
  none: false
106
106
  requirements:
107
107
  - - ! '>='
@@ -109,7 +109,7 @@ dependencies:
109
109
  version: '0'
110
110
  type: :development
111
111
  prerelease: false
112
- version_requirements: *70099537034280
112
+ version_requirements: *70228101522800
113
113
  description: Generate permalink attributes on ActiveRecord
114
114
  email:
115
115
  - fnando.vieira@gmail.com
@@ -155,7 +155,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
155
155
  version: '0'
156
156
  segments:
157
157
  - 0
158
- hash: 232250411774848879
158
+ hash: -1346400587143548814
159
159
  required_rubygems_version: !ruby/object:Gem::Requirement
160
160
  none: false
161
161
  requirements:
@@ -164,7 +164,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
164
164
  version: '0'
165
165
  segments:
166
166
  - 0
167
- hash: 232250411774848879
167
+ hash: -1346400587143548814
168
168
  requirements: []
169
169
  rubyforge_project:
170
170
  rubygems_version: 1.8.10