ferret.rake
797 Bytes
namespace :ferret do
# Rebuild index task. Declare the indexes to be rebuilt with the INDEXES
# environment variable:
#
# INDEXES="my_model shared" rake ferret:rebuild
desc "Rebuild a Ferret index. Specify what model to rebuild with the MODEL environment variable."
task :rebuild do
require File.join(RAILS_ROOT, 'config', 'environment')
indexes = ENV['INDEXES'].split
indexes.each do |index_name|
start = 1.minute.ago
ActsAsFerret::rebuild_index index_name
idx = ActsAsFerret::get_index index_name
# update records that have changed since the rebuild started
idx.index_definition[:registered_models].each do |m|
m.records_modified_since(start).each do |object|
object.ferret_update
end
end
end
end
end