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.
- data/lib/has_friendly_name.rb +18 -1
- metadata +17 -6
data/lib/has_friendly_name.rb
CHANGED
@@ -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.
|
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
|
-
|
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-
|
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.
|
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.
|
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.
|