acts_more_seo 0.4.3 → 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.
- 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: []
|