acts_more_seo 0.4.0 → 0.4.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.
- data/CHANGELOG.rdoc +2 -0
- data/Rakefile +1 -1
- data/acts_more_seo.gemspec +2 -2
- data/lib/acts_more_seo.rb +3 -0
- data/lib/seo_finder.rb +2 -0
- data/spec/acts_more_seo_spec.rb +14 -2
- metadata +8 -8
data/CHANGELOG.rdoc
CHANGED
data/Rakefile
CHANGED
|
@@ -3,7 +3,7 @@ require 'rubygems'
|
|
|
3
3
|
require 'rake'
|
|
4
4
|
require 'echoe'
|
|
5
5
|
|
|
6
|
-
Echoe.new('acts_more_seo', '0.4.
|
|
6
|
+
Echoe.new('acts_more_seo', '0.4.1') do |p|
|
|
7
7
|
p.description = "Gem makes your ActiveRecord models more SEO friendly. Changes URL to look way better"
|
|
8
8
|
p.url = "https://github.com/mensfeld/Css-Image-Embedder"
|
|
9
9
|
p.author = "Maciej Mensfeld"
|
data/acts_more_seo.gemspec
CHANGED
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
Gem::Specification.new do |s|
|
|
4
4
|
s.name = "acts_more_seo"
|
|
5
|
-
s.version = "0.4.
|
|
5
|
+
s.version = "0.4.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 = "2012-02-
|
|
9
|
+
s.date = "2012-02-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"]
|
data/lib/acts_more_seo.rb
CHANGED
|
@@ -20,6 +20,7 @@ module Acts
|
|
|
20
20
|
columns = params[:column] || params[:columns] || :name
|
|
21
21
|
use_id = !params[:use_id].nil? ? params[:use_id] : true
|
|
22
22
|
history = params[:history] || false
|
|
23
|
+
case_sensitive = params[:case_sensitive] || false
|
|
23
24
|
|
|
24
25
|
if columns.is_a?(Array)
|
|
25
26
|
columns.collect!{|a| a.to_sym}
|
|
@@ -30,6 +31,7 @@ module Acts
|
|
|
30
31
|
cattr_accessor :seo_columns
|
|
31
32
|
cattr_accessor :seo_use_id
|
|
32
33
|
cattr_accessor :seo_history
|
|
34
|
+
cattr_accessor :case_sensitive
|
|
33
35
|
|
|
34
36
|
before_update :update_seo_url
|
|
35
37
|
after_create :set_seo_url
|
|
@@ -37,6 +39,7 @@ module Acts
|
|
|
37
39
|
self.seo_columns = columns
|
|
38
40
|
self.seo_history = history
|
|
39
41
|
self.seo_use_id = use_id
|
|
42
|
+
self.case_sensitive = case_sensitive
|
|
40
43
|
|
|
41
44
|
if self.seo_history
|
|
42
45
|
has_many :seo_histories,
|
data/lib/seo_finder.rb
CHANGED
|
@@ -9,6 +9,7 @@ module Acts
|
|
|
9
9
|
end
|
|
10
10
|
|
|
11
11
|
def search(name)
|
|
12
|
+
name = name.downcase if !@klass.case_sensitive && name.is_a?(String)
|
|
12
13
|
ret = search_in_table(name)
|
|
13
14
|
|
|
14
15
|
if !ret && @klass.seo_history?
|
|
@@ -19,6 +20,7 @@ module Acts
|
|
|
19
20
|
end
|
|
20
21
|
|
|
21
22
|
def search!(name)
|
|
23
|
+
name = name.downcase if !@klass.case_sensitive && name.is_a?(String)
|
|
22
24
|
search_in_table!(name)
|
|
23
25
|
rescue ActiveRecord::RecordNotFound => e
|
|
24
26
|
if @klass.seo_history?
|
data/spec/acts_more_seo_spec.rb
CHANGED
|
@@ -20,7 +20,10 @@ class BestElement < ActiveRecord::Base
|
|
|
20
20
|
end
|
|
21
21
|
|
|
22
22
|
class HistorableElement < ActiveRecord::Base
|
|
23
|
-
acts_more_seo :columns => :name,
|
|
23
|
+
acts_more_seo :columns => :name,
|
|
24
|
+
:use_id => false,
|
|
25
|
+
:history => true,
|
|
26
|
+
:case_sensitive => true
|
|
24
27
|
end
|
|
25
28
|
|
|
26
29
|
describe CoolElement do
|
|
@@ -178,9 +181,10 @@ describe BestElement do
|
|
|
178
181
|
end
|
|
179
182
|
|
|
180
183
|
context "when we have a class which has use_id => false" do
|
|
181
|
-
it "should find element only when seo_url is same (or by id)" do
|
|
184
|
+
it "should find element only when seo_url is same (or by id) case insensitive" do
|
|
182
185
|
a = subject.create(:name => 'bla bla bla')
|
|
183
186
|
subject.find_by_seo!(a.seo_url).should eql(a)
|
|
187
|
+
subject.find_by_seo!('Bla-bLa-blA').should eql(a)
|
|
184
188
|
lambda { subject.find_by_seo!("#{a.to_param}aaa") }.should raise_error(ActiveRecord::RecordNotFound)
|
|
185
189
|
end
|
|
186
190
|
end
|
|
@@ -270,7 +274,15 @@ describe HistorableElement do
|
|
|
270
274
|
nr.should eql Acts::MoreSeo::SeoHistory.count
|
|
271
275
|
end
|
|
272
276
|
end
|
|
277
|
+
end
|
|
273
278
|
|
|
279
|
+
context "when searching for a case sensitive element" do
|
|
280
|
+
it "shoudl find only if case is same" do
|
|
281
|
+
a = subject.create(:name => 'Kraj Żelaza')
|
|
282
|
+
subject.find_by_seo('kraj-zelaza').should eql a
|
|
283
|
+
lambda { subject.find_by_seo!('kraj-zelazA') }.should raise_error(ActiveRecord::RecordNotFound)
|
|
284
|
+
end
|
|
274
285
|
end
|
|
275
286
|
|
|
276
287
|
end
|
|
288
|
+
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: acts_more_seo
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.4.
|
|
4
|
+
version: 0.4.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: 2012-02-
|
|
12
|
+
date: 2012-02-27 00:00:00.000000000Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: babosa
|
|
16
|
-
requirement: &
|
|
16
|
+
requirement: &15529440 !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: :runtime
|
|
23
23
|
prerelease: false
|
|
24
|
-
version_requirements: *
|
|
24
|
+
version_requirements: *15529440
|
|
25
25
|
- !ruby/object:Gem::Dependency
|
|
26
26
|
name: rspec
|
|
27
|
-
requirement: &
|
|
27
|
+
requirement: &15528640 !ruby/object:Gem::Requirement
|
|
28
28
|
none: false
|
|
29
29
|
requirements:
|
|
30
30
|
- - ! '>='
|
|
@@ -32,10 +32,10 @@ dependencies:
|
|
|
32
32
|
version: 2.0.0
|
|
33
33
|
type: :development
|
|
34
34
|
prerelease: false
|
|
35
|
-
version_requirements: *
|
|
35
|
+
version_requirements: *15528640
|
|
36
36
|
- !ruby/object:Gem::Dependency
|
|
37
37
|
name: active_record
|
|
38
|
-
requirement: &
|
|
38
|
+
requirement: &15528020 !ruby/object:Gem::Requirement
|
|
39
39
|
none: false
|
|
40
40
|
requirements:
|
|
41
41
|
- - ! '>='
|
|
@@ -43,7 +43,7 @@ dependencies:
|
|
|
43
43
|
version: '0'
|
|
44
44
|
type: :development
|
|
45
45
|
prerelease: false
|
|
46
|
-
version_requirements: *
|
|
46
|
+
version_requirements: *15528020
|
|
47
47
|
description: Gem makes your ActiveRecord models more SEO friendly. Changes URL to
|
|
48
48
|
look way better
|
|
49
49
|
email: maciej@mensfeld.pl
|