has_permalink 0.0.6 → 0.0.7
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/friendly_url.rb +1 -0
- data/lib/has_permalink.rb +18 -6
- data/lib/railtie.rb +10 -0
- data/lib/tasks/has_permalink.rake +24 -0
- metadata +6 -4
data/lib/friendly_url.rb
CHANGED
data/lib/has_permalink.rb
CHANGED
@@ -1,26 +1,38 @@
|
|
1
1
|
require 'friendly_url'
|
2
2
|
|
3
3
|
module HasPermalink
|
4
|
+
require 'railtie' if defined?(Rails)
|
5
|
+
|
4
6
|
def has_permalink(generate_from = :title)
|
5
|
-
unless included_modules.include?
|
7
|
+
unless included_modules.include? InstanceMethods
|
6
8
|
class_inheritable_accessor :generate_from
|
7
|
-
|
9
|
+
extend ClassMethods
|
10
|
+
include InstanceMethods
|
8
11
|
end
|
9
12
|
|
10
13
|
self.generate_from = generate_from
|
11
14
|
before_validation :generate_permalink
|
12
15
|
end
|
13
|
-
|
14
|
-
module
|
16
|
+
|
17
|
+
module ClassMethods
|
18
|
+
def generate_permalinks
|
19
|
+
self.all.each do |item|
|
20
|
+
item.generate_permalink
|
21
|
+
item.save
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
module InstanceMethods
|
15
27
|
include FriendlyUrl
|
16
28
|
def generate_permalink
|
17
29
|
self.permalink = normalize(self.send(generate_from)) if permalink.blank?
|
18
30
|
end
|
19
|
-
|
31
|
+
|
20
32
|
def generate_permalink!
|
21
33
|
self.permalink = normalize(self.send(generate_from))
|
22
34
|
end
|
23
|
-
|
35
|
+
|
24
36
|
def to_param
|
25
37
|
permalink
|
26
38
|
end
|
data/lib/railtie.rb
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
namespace :has_permalink do
|
2
|
+
desc 'Generate permalinks for [MODEL]'
|
3
|
+
task :generate_permalinks, :model_name, :needs => :environment do |t, args|
|
4
|
+
begin
|
5
|
+
model_name = args.first[1]
|
6
|
+
rescue
|
7
|
+
puts "ERROR: You need to pass the name of the model as an argument."
|
8
|
+
puts "Try this: 'rake has_permalink:generate_permalinks[MODEL]'"
|
9
|
+
else
|
10
|
+
generate_permalinks(model_name)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
def generate_permalinks(model_name)
|
16
|
+
begin
|
17
|
+
if Kernel.const_get(model_name)
|
18
|
+
model_name.constantize.generate_permalinks
|
19
|
+
puts "Congratulations! '#{model_name}' has permalinks!"
|
20
|
+
end
|
21
|
+
rescue
|
22
|
+
puts "Can't find model '#{model_name}'. Does it exist?"
|
23
|
+
end
|
24
|
+
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: has_permalink
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 17
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 7
|
10
|
+
version: 0.0.7
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Ola Karlsson
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-01
|
18
|
+
date: 2011-02-01 00:00:00 +01:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -50,6 +50,8 @@ files:
|
|
50
50
|
- lib/generators/templates/has_permalink_migration.rb.erb
|
51
51
|
- lib/generators/USAGE
|
52
52
|
- lib/has_permalink.rb
|
53
|
+
- lib/railtie.rb
|
54
|
+
- lib/tasks/has_permalink.rake
|
53
55
|
- rails/init.rb
|
54
56
|
has_rdoc: true
|
55
57
|
homepage:
|