has_friendly_name 0.2.2 → 0.4

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.
Files changed (2) hide show
  1. data/lib/has_friendly_name.rb +18 -1
  2. metadata +17 -6
@@ -16,15 +16,32 @@ module HasFriendlyName
16
16
  before_create :generate_friendly_name
17
17
  include HasFriendlyName::InstanceMethods
18
18
  end
19
+
20
+ def find_by_friendly_name(query)
21
+ obj = find(:first, :conditions => "friendly_name ='#{query}'")
22
+
23
+ if query.match(/\d+/)
24
+ obj = find(:first, :conditions => "friendly_name = '#{query.gsub(/-\d+/, "")}'") unless obj
25
+ obj = find(:first, :conditions => "friendly_name LIKE '#{query.gsub(/-\d+/, "")}-%'") unless obj
26
+ end
27
+
28
+
29
+ raise ActiveRecord::RecordNotFound, "Couldn't find #{name} with friendly_name #{query}" unless obj
30
+
31
+ obj
32
+ end
33
+
19
34
  end
20
35
 
21
36
  module InstanceMethods
22
37
 
38
+
39
+
23
40
  def generate_friendly_name
24
41
  self.friendly_name = send(self.has_friendly_name_options[:from].to_s.to_sym).to_friendly(self.has_friendly_name_options)
25
42
 
26
43
  if self.has_friendly_name_options[:unique]
27
- checkmodel=self.class.find_by_friendly_name(self.friendly_name)
44
+ checkmodel=self.class.find(:first, :conditions => "friendly_name='#{self.friendly_name}'")
28
45
  if checkmodel and checkmodel!=self
29
46
  self.friendly_name+='-'+(self.class.count+1).to_s
30
47
  end
metadata CHANGED
@@ -1,7 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: has_friendly_name
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ hash: 3
5
+ prerelease: false
6
+ segments:
7
+ - 0
8
+ - 4
9
+ version: "0.4"
5
10
  platform: ruby
6
11
  authors:
7
12
  - Dennis Meise
@@ -9,7 +14,7 @@ autorequire:
9
14
  bindir: bin
10
15
  cert_chain: []
11
16
 
12
- date: 2010-03-17 00:00:00 +01:00
17
+ date: 2010-06-14 00:00:00 +02:00
13
18
  default_executable:
14
19
  dependencies: []
15
20
 
@@ -30,7 +35,7 @@ files:
30
35
  - lib/active_record_extensions.rb
31
36
  - rails/init.rb
32
37
  has_rdoc: true
33
- homepage: http://www.dennis-meise.de
38
+ homepage: http://www.gitub.com/netjungle/has_friendly_name
34
39
  licenses: []
35
40
 
36
41
  post_install_message:
@@ -40,21 +45,27 @@ rdoc_options:
40
45
  require_paths:
41
46
  - lib
42
47
  required_ruby_version: !ruby/object:Gem::Requirement
48
+ none: false
43
49
  requirements:
44
50
  - - ">="
45
51
  - !ruby/object:Gem::Version
52
+ hash: 3
53
+ segments:
54
+ - 0
46
55
  version: "0"
47
- version:
48
56
  required_rubygems_version: !ruby/object:Gem::Requirement
57
+ none: false
49
58
  requirements:
50
59
  - - ">="
51
60
  - !ruby/object:Gem::Version
61
+ hash: 3
62
+ segments:
63
+ - 0
52
64
  version: "0"
53
- version:
54
65
  requirements: []
55
66
 
56
67
  rubyforge_project:
57
- rubygems_version: 1.3.5
68
+ rubygems_version: 1.3.7
58
69
  signing_key:
59
70
  specification_version: 3
60
71
  summary: HasFriendlyName adds a search engine friendly name to your active record model.