add pet state replacement task

This commit is contained in:
Emi Matchu 2013-11-30 20:33:48 -05:00
parent 8bd7ad5a1e
commit 2b870cf91b
3 changed files with 25 additions and 6 deletions

View file

@ -135,6 +135,18 @@ class PetState < ActiveRecord::Base
end
end
def replace_with(other)
PetState.transaction do
count = outfits.count
outfits.find_each { |outfit|
outfit.pet_state = other
outfit.save!
}
destroy
end
count
end
def self.from_pet_type_and_biology_info(pet_type, info)
swf_asset_ids = []
info.each do |zone_id, asset_info|

13
lib/tasks/pet_states.rake Normal file
View file

@ -0,0 +1,13 @@
namespace :pet_states do
desc "Sort pet state SWFs, then remove duplicates and reassign children"
task :repair => :environment do
PetState.repair_all!
end
desc "Delete the bad pet state, replacing it in outfits with the good pet state"
task :replace, [:bad_id, :good_id] => :environment do |t, args|
bad, good = PetState.find(args[:bad_id], args[:good_id])
outfit_count = bad.replace_with(good)
puts "Updated #{outfit_count} outfits"
end
end

View file

@ -1,6 +0,0 @@
namespace :pet_states do
desc "Sort pet state SWFs, then remove duplicates and reassign children"
task :repair => :environment do
PetState.repair_all!
end
end