has_friendly_name 0.2.2 → 0.4

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