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 CHANGED
@@ -22,3 +22,5 @@ Backward compatibility improvements
22
22
  * Downcase fix
23
23
  = Version 0.4.0
24
24
  * Seo url history support for updating and searching
25
+ = Version 0.4.1
26
+ * Case sensitive/insensitive support
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.0') do |p|
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"
@@ -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.0"
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-25"
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?
@@ -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, :use_id => false, :history => true
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.0
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-25 00:00:00.000000000Z
12
+ date: 2012-02-27 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: babosa
16
- requirement: &11903760 !ruby/object:Gem::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: *11903760
24
+ version_requirements: *15529440
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rspec
27
- requirement: &11902800 !ruby/object:Gem::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: *11902800
35
+ version_requirements: *15528640
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: active_record
38
- requirement: &11902200 !ruby/object:Gem::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: *11902200
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