acts_more_seo 0.4.3 → 1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/CHANGELOG.rdoc +2 -0
- data/Gemfile +1 -0
- data/Rakefile +3 -3
- data/acts_more_seo.gemspec +8 -8
- data/init.rb +0 -1
- data/lib/seo_finder.rb +4 -4
- data/spec/acts_more_seo_spec.rb +32 -32
- metadata +30 -23
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: f08c3bede0d31c1308f305c064c968dc0d87dd38
|
4
|
+
data.tar.gz: c2cabffcb04a922af38fa87b55ed762ac0f2d94c
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 38bb4fc54d82262168ea60e8c9528eb077657b71ba5248a1eb2d780de28b73e416d17f47580ceca2c1106fb65cbbbdd62962440ad28dcfa239ce09c8808c591d
|
7
|
+
data.tar.gz: e930f8f58c5e8e43955c24c90fef8eceab5195593ac8f07090293a7025440ef24bd9015205edb3b28989425d96e58c969e76667a8bf1db3b63a881cc1c2b0293
|
data/CHANGELOG.rdoc
CHANGED
data/Gemfile
CHANGED
data/Rakefile
CHANGED
@@ -3,13 +3,13 @@ require 'rubygems'
|
|
3
3
|
require 'rake'
|
4
4
|
require 'echoe'
|
5
5
|
|
6
|
-
Echoe.new('acts_more_seo', '
|
6
|
+
Echoe.new('acts_more_seo', '1') do |p|
|
7
7
|
p.description = "Gem makes your ActiveRecord models more SEO friendly. Changes URL to look way better"
|
8
|
-
p.url = "https://github.com/mensfeld/
|
8
|
+
p.url = "https://github.com/mensfeld/Acts-more-SEO"
|
9
9
|
p.author = "Maciej Mensfeld"
|
10
10
|
p.email = "maciej@mensfeld.pl"
|
11
11
|
p.ignore_pattern = ["tmp/*", "script/*"]
|
12
12
|
p.dependencies = ["babosa"]
|
13
|
-
p.development_dependencies = ["rspec >=2.0.0", "activerecord"]
|
13
|
+
p.development_dependencies = ["rspec >=2.0.0", "activerecord >=4.0.0"]
|
14
14
|
end
|
15
15
|
|
data/acts_more_seo.gemspec
CHANGED
@@ -2,37 +2,37 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = "acts_more_seo"
|
5
|
-
s.version = "
|
5
|
+
s.version = "1"
|
6
6
|
|
7
7
|
s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
|
8
8
|
s.authors = ["Maciej Mensfeld"]
|
9
|
-
s.date = "2013-
|
9
|
+
s.date = "2013-06-27"
|
10
10
|
s.description = "Gem makes your ActiveRecord models more SEO friendly. Changes URL to look way better"
|
11
11
|
s.email = "maciej@mensfeld.pl"
|
12
12
|
s.extra_rdoc_files = ["CHANGELOG.rdoc", "README.md", "lib/acts_more_seo.rb", "lib/generators/acts_more_seo/install_generator.rb", "lib/generators/acts_more_seo/templates/create_seo_history_migration.rb", "lib/seo_finder.rb", "lib/seo_formatter.rb", "lib/seo_history.rb", "lib/string_ext.rb"]
|
13
13
|
s.files = ["CHANGELOG.rdoc", "Gemfile", "MIT-LICENSE", "Manifest", "README.md", "Rakefile", "acts_more_seo.gemspec", "init.rb", "lib/acts_more_seo.rb", "lib/generators/acts_more_seo/install_generator.rb", "lib/generators/acts_more_seo/templates/create_seo_history_migration.rb", "lib/seo_finder.rb", "lib/seo_formatter.rb", "lib/seo_history.rb", "lib/string_ext.rb", "spec/acts_more_seo_spec.rb", "spec/spec_helper.rb"]
|
14
|
-
s.homepage = "https://github.com/mensfeld/
|
14
|
+
s.homepage = "https://github.com/mensfeld/Acts-more-SEO"
|
15
15
|
s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Acts_more_seo", "--main", "README.md"]
|
16
16
|
s.require_paths = ["lib"]
|
17
17
|
s.rubyforge_project = "acts_more_seo"
|
18
|
-
s.rubygems_version = "
|
18
|
+
s.rubygems_version = "2.0.0"
|
19
19
|
s.summary = "Gem makes your ActiveRecord models more SEO friendly. Changes URL to look way better"
|
20
20
|
|
21
21
|
if s.respond_to? :specification_version then
|
22
|
-
s.specification_version =
|
22
|
+
s.specification_version = 4
|
23
23
|
|
24
24
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
25
25
|
s.add_runtime_dependency(%q<babosa>, [">= 0"])
|
26
26
|
s.add_development_dependency(%q<rspec>, [">= 2.0.0"])
|
27
|
-
s.add_development_dependency(%q<activerecord>, [">= 0"])
|
27
|
+
s.add_development_dependency(%q<activerecord>, [">= 4.0.0"])
|
28
28
|
else
|
29
29
|
s.add_dependency(%q<babosa>, [">= 0"])
|
30
30
|
s.add_dependency(%q<rspec>, [">= 2.0.0"])
|
31
|
-
s.add_dependency(%q<activerecord>, [">= 0"])
|
31
|
+
s.add_dependency(%q<activerecord>, [">= 4.0.0"])
|
32
32
|
end
|
33
33
|
else
|
34
34
|
s.add_dependency(%q<babosa>, [">= 0"])
|
35
35
|
s.add_dependency(%q<rspec>, [">= 2.0.0"])
|
36
|
-
s.add_dependency(%q<activerecord>, [">= 0"])
|
36
|
+
s.add_dependency(%q<activerecord>, [">= 4.0.0"])
|
37
37
|
end
|
38
38
|
end
|
data/init.rb
CHANGED
data/lib/seo_finder.rb
CHANGED
@@ -35,9 +35,9 @@ module Acts
|
|
35
35
|
# Try to find element in an instance class table
|
36
36
|
def search_in_table(name)
|
37
37
|
if @klass.seo_use_id
|
38
|
-
@klass.
|
38
|
+
@klass.find_by(:id => name)
|
39
39
|
else
|
40
|
-
@klass.
|
40
|
+
@klass.find_by(:seo_url => name)
|
41
41
|
end
|
42
42
|
end
|
43
43
|
|
@@ -47,14 +47,14 @@ module Acts
|
|
47
47
|
if @klass.seo_use_id
|
48
48
|
@klass.find(name)
|
49
49
|
else
|
50
|
-
@klass.
|
50
|
+
@klass.find_by!(:seo_url => name)
|
51
51
|
end
|
52
52
|
end
|
53
53
|
|
54
54
|
# Try to find element in its seo history
|
55
55
|
def search_in_history(name)
|
56
56
|
sql = 'seo_url = ? AND seo_historable_type = ?'
|
57
|
-
ret = Acts::MoreSeo::SeoHistory.where(sql, name, @klass.to_s).
|
57
|
+
ret = Acts::MoreSeo::SeoHistory.where(sql, name, @klass.to_s).first
|
58
58
|
ret = ret.seo_historable if ret
|
59
59
|
ret
|
60
60
|
end
|
data/spec/acts_more_seo_spec.rb
CHANGED
@@ -4,26 +4,26 @@ require 'spec_helper'
|
|
4
4
|
ROOT = File.expand_path(File.dirname(__FILE__))
|
5
5
|
|
6
6
|
class CoolElement < ActiveRecord::Base
|
7
|
-
|
7
|
+
acts_more_seo
|
8
8
|
end
|
9
9
|
|
10
10
|
class CoolerElement < ActiveRecord::Base
|
11
|
-
|
11
|
+
acts_more_seo :title
|
12
12
|
end
|
13
13
|
|
14
14
|
class SpecialElement < ActiveRecord::Base
|
15
|
-
|
15
|
+
acts_more_seo :columns => [:name, :surname, :title]
|
16
16
|
end
|
17
17
|
|
18
18
|
class BestElement < ActiveRecord::Base
|
19
|
-
|
19
|
+
acts_more_seo :columns => [:name, :surname, :title], :use_id => false
|
20
20
|
end
|
21
21
|
|
22
22
|
class HistorableElement < ActiveRecord::Base
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
23
|
+
acts_more_seo :columns => :name,
|
24
|
+
:use_id => false,
|
25
|
+
:history => true,
|
26
|
+
:case_sensitive => true
|
27
27
|
end
|
28
28
|
|
29
29
|
class IntegerElement < ActiveRecord::Base
|
@@ -40,12 +40,12 @@ describe CoolElement do
|
|
40
40
|
a.name.to_url.should == 'kraj-zelaza'
|
41
41
|
end
|
42
42
|
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
43
|
+
context 'when we add some pauses in the name' do
|
44
|
+
it "should replace them and leave only one" do
|
45
|
+
a = subject.create(:name => 'Kraj - Żelaza')
|
46
|
+
a.name.to_url.should == 'kraj-zelaza'
|
47
|
+
end
|
48
|
+
end
|
49
49
|
end
|
50
50
|
|
51
51
|
context "when we have a class which has use_id => true" do
|
@@ -100,7 +100,7 @@ describe CoolerElement do
|
|
100
100
|
|
101
101
|
it "should raise error when there is no element" do
|
102
102
|
a = subject.create
|
103
|
-
|
103
|
+
lambda { subject.find_by_seo!(a.id+1) }.should raise_error(ActiveRecord::RecordNotFound)
|
104
104
|
end
|
105
105
|
end
|
106
106
|
|
@@ -142,8 +142,8 @@ describe SpecialElement do
|
|
142
142
|
|
143
143
|
context "when there are all the params" do
|
144
144
|
it "should return nice url" do
|
145
|
-
|
146
|
-
|
145
|
+
a = subject.create({:name => 'maciej', :surname => 'mensfeld', :title => 'test abc'})
|
146
|
+
a.to_param.should eql("#{a.id}-maciej-mensfeld-test-abc")
|
147
147
|
end
|
148
148
|
end
|
149
149
|
end
|
@@ -184,10 +184,10 @@ describe BestElement do
|
|
184
184
|
|
185
185
|
context "when there are all the params" do
|
186
186
|
it "should return nice url" do
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
187
|
+
a = subject.create({:name => 'maciej', :surname => 'mensfeld', :title => 'test abc'})
|
188
|
+
a.seo_url.should eql("maciej-mensfeld-test-abc")
|
189
|
+
a.reload
|
190
|
+
a.seo_url.should eql("maciej-mensfeld-test-abc")
|
191
191
|
end
|
192
192
|
end
|
193
193
|
|
@@ -202,22 +202,22 @@ describe BestElement do
|
|
202
202
|
|
203
203
|
context "when updating object" do
|
204
204
|
it "should have refreshed seo_url" do
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
205
|
+
a = subject.create({:name => 'mensfeld', :title => 'test abc'})
|
206
|
+
a.seo_url.should eql("mensfeld-test-abc")
|
207
|
+
a.name = 'kowalski'
|
208
|
+
a.save
|
209
|
+
a.seo_url.should eql("kowalski-test-abc")
|
210
|
+
subject.find_by_seo("kowalski-test-abc").should eql(a)
|
211
211
|
end
|
212
212
|
end
|
213
213
|
|
214
214
|
context "when we have two objects" do
|
215
215
|
it "should assing to the second - seo url with id" do
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
216
|
+
a = subject.create({:name => 'mensfeld', :title => 'test abc'})
|
217
|
+
b = subject.create({:name => 'mensfeld ', :title => 'test abc'})
|
218
|
+
a.seo_url.should eql("mensfeld-test-abc")
|
219
|
+
b.reload
|
220
|
+
b.seo_url.should eql("#{b.id}-mensfeld-test-abc")
|
221
221
|
end
|
222
222
|
|
223
223
|
context "and we change name in a second one" do
|
metadata
CHANGED
@@ -1,49 +1,57 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: acts_more_seo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
5
|
-
prerelease:
|
4
|
+
version: '1'
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Maciej Mensfeld
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date: 2013-
|
11
|
+
date: 2013-06-27 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: babosa
|
16
|
-
requirement:
|
17
|
-
none: false
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - '>='
|
20
18
|
- !ruby/object:Gem::Version
|
21
19
|
version: '0'
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
|
-
version_requirements:
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - '>='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
25
27
|
- !ruby/object:Gem::Dependency
|
26
28
|
name: rspec
|
27
|
-
requirement:
|
28
|
-
none: false
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
29
30
|
requirements:
|
30
|
-
- -
|
31
|
+
- - '>='
|
31
32
|
- !ruby/object:Gem::Version
|
32
33
|
version: 2.0.0
|
33
34
|
type: :development
|
34
35
|
prerelease: false
|
35
|
-
version_requirements:
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - '>='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 2.0.0
|
36
41
|
- !ruby/object:Gem::Dependency
|
37
42
|
name: activerecord
|
38
|
-
requirement:
|
39
|
-
none: false
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
40
44
|
requirements:
|
41
|
-
- -
|
45
|
+
- - '>='
|
42
46
|
- !ruby/object:Gem::Version
|
43
|
-
version:
|
47
|
+
version: 4.0.0
|
44
48
|
type: :development
|
45
49
|
prerelease: false
|
46
|
-
version_requirements:
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 4.0.0
|
47
55
|
description: Gem makes your ActiveRecord models more SEO friendly. Changes URL to
|
48
56
|
look way better
|
49
57
|
email: maciej@mensfeld.pl
|
@@ -77,8 +85,9 @@ files:
|
|
77
85
|
- lib/string_ext.rb
|
78
86
|
- spec/acts_more_seo_spec.rb
|
79
87
|
- spec/spec_helper.rb
|
80
|
-
homepage: https://github.com/mensfeld/
|
88
|
+
homepage: https://github.com/mensfeld/Acts-more-SEO
|
81
89
|
licenses: []
|
90
|
+
metadata: {}
|
82
91
|
post_install_message:
|
83
92
|
rdoc_options:
|
84
93
|
- --line-numbers
|
@@ -90,22 +99,20 @@ rdoc_options:
|
|
90
99
|
require_paths:
|
91
100
|
- lib
|
92
101
|
required_ruby_version: !ruby/object:Gem::Requirement
|
93
|
-
none: false
|
94
102
|
requirements:
|
95
|
-
- -
|
103
|
+
- - '>='
|
96
104
|
- !ruby/object:Gem::Version
|
97
105
|
version: '0'
|
98
106
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
99
|
-
none: false
|
100
107
|
requirements:
|
101
|
-
- -
|
108
|
+
- - '>='
|
102
109
|
- !ruby/object:Gem::Version
|
103
110
|
version: '1.2'
|
104
111
|
requirements: []
|
105
112
|
rubyforge_project: acts_more_seo
|
106
|
-
rubygems_version:
|
113
|
+
rubygems_version: 2.0.0
|
107
114
|
signing_key:
|
108
|
-
specification_version:
|
115
|
+
specification_version: 4
|
109
116
|
summary: Gem makes your ActiveRecord models more SEO friendly. Changes URL to look
|
110
117
|
way better
|
111
118
|
test_files: []
|