has_permalink 0.1.4 → 0.1.6

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.
@@ -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.