has_permalink 0.1.4 → 0.1.6

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,3 +1,5 @@
1
+ require 'utilities'
2
+
1
3
  namespace :has_permalink do
2
4
  desc 'Generate permalinks for [MODEL]'
3
5
  task :generate_permalinks, [:model_name] => [:environment] do |t, args|
@@ -7,19 +9,9 @@ namespace :has_permalink do
7
9
  puts "ERROR: You need to pass the name of the model as an argument."
8
10
  puts "Try this: 'rake has_permalink:generate_permalinks[MODEL]'"
9
11
  else
10
- generate_permalinks(model_name)
11
- end
12
- end
13
- end
14
-
15
- # Calls the class method 'generate_permalinks' on given model
16
- def generate_permalinks(model_name)
17
- begin
18
- if Kernel.const_get(model_name)
19
- model_name.constantize.generate_permalinks
12
+ util = HasPermalink::Utilities.new(model_name)
13
+ util.generate_permalinks
20
14
  puts "Congratulations! '#{model_name}' has permalinks!"
21
15
  end
22
- rescue
23
- puts "Can't find model '#{model_name}'. Does it exist?"
24
16
  end
25
- end
17
+ end
data/lib/utilities.rb ADDED
@@ -0,0 +1,24 @@
1
+ module HasPermalink
2
+ class Utilities
3
+ attr_accessor :model_name, :klass
4
+
5
+ def initialize(model_name)
6
+ @model_name = model_name
7
+ @klass = self.get_class
8
+ end
9
+
10
+ def get_class
11
+ if @model_name.include?('::')
12
+ @model_name.split('::').inject(Object) do |mod, class_name|
13
+ mod.const_get(class_name)
14
+ end
15
+ else
16
+ Object.const_get(@model_name)
17
+ end
18
+ end
19
+
20
+ def generate_permalinks
21
+ @klass.generate_permalinks
22
+ end
23
+ end
24
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: has_permalink
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.1.6
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-02-12 00:00:00.000000000Z
12
+ date: 2013-05-31 00:00:00.000000000 Z
13
13
  dependencies: []
14
14
  description:
15
15
  email: olkarls@gmail.com
@@ -24,6 +24,7 @@ files:
24
24
  - lib/has_permalink.rb
25
25
  - lib/railtie.rb
26
26
  - lib/tasks/has_permalink.rake
27
+ - lib/utilities.rb
27
28
  - rails/init.rb
28
29
  homepage: http://haspermalink.org
29
30
  licenses: []
@@ -45,7 +46,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
45
46
  version: '0'
46
47
  requirements: []
47
48
  rubyforge_project:
48
- rubygems_version: 1.8.16
49
+ rubygems_version: 1.8.25
49
50
  signing_key:
50
51
  specification_version: 3
51
52
  summary: SEO Permalink Plugin for Ruby on Rails.