permalink 1.2.0 → 1.2.1

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.
@@ -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