djanowski-permalink_fu 0.1.4 → 0.1.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (2) hide show
  1. data/rails/tasks/permalink_fu.rake +30 -0
  2. metadata +2 -1
@@ -0,0 +1,30 @@
1
+ namespace :permalinks do
2
+ desc 'Re-builds permalinks for all models.'
3
+ task :rebuild => :environment do
4
+ models = if ENV['MODEL']
5
+ Array(ENV['MODEL'].constantize)
6
+ else
7
+ Dir[RAILS_ROOT + "/app/models/**/*.rb"].each { |f| require f }
8
+ ActiveRecord::Base.send(:subclasses)
9
+ end
10
+
11
+ models.each do |model|
12
+ next unless model.respond_to?(:permalink_field)
13
+
14
+ field = model.permalink_field
15
+
16
+ objects = nil
17
+
18
+ while objects.nil? || !objects.empty?
19
+ objects = model.find(:all, :conditions => {:permalink => nil}, :limit => 20)
20
+
21
+ objects.each do |o|
22
+ o.send(:create_unique_permalink)
23
+ value = o.send(model.permalink_field)
24
+ puts "#{model} #{o.id} => #{value.inspect}"
25
+ model.update_all("#{field} = '#{value}'", "id = #{o.id}")
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: djanowski-permalink_fu
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Damian Janowski
@@ -25,6 +25,7 @@ files:
25
25
  - lib/permalink_fu/rake/tasks.rb
26
26
  - lib/permalink_fu/spec/matchers.rb
27
27
  - lib/permalink_fu.rb
28
+ - rails/tasks/permalink_fu.rake
28
29
  - init.rb
29
30
  - README.markdown
30
31
  - MIT-LICENSE