namespace :rooftop do
namespace :algolia_search do desc "Initialise index settings for all models which include Rooftop::AlgoliaSearch" task initialize_indexes: :environment do puts "Resetting index settings, which might have been overwritten in the Algolia UI - are you sure?" puts "Please enter Y, y, N or n" STDOUT.flush input = STDIN.gets.chomp case input.upcase when "Y" puts "Continuing" else puts "Cancelled" next end ::Rails.application.eager_load! Rooftop::AlgoliaSearch.included_classes.each do |klass| puts "Setting index settings for #{klass}" klass.setup_index_settings! end end desc "Index all searchable entities" task reindex: :environment do puts "Reindexing all - are you sure?" puts "Please enter Y, y, N or n" STDOUT.flush input = STDIN.gets.chomp case input.upcase when "Y" puts "Continuing" else puts "Cancelled" next end ::Rails.application.eager_load! Rooftop::AlgoliaSearch.included_classes.each do |klass| puts "Reindexing #{klass}" klass.search_index.clear klass.reindex_entities(klass.all) puts "Done\n" end end end
end