acts_more_seo 0.4.0 → 0.4.1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|