Sha256: 6ae96598907dfc763bfa22744586a1a0a7a9cbd75d693cdf99e022125d79027a
Contents?: true
Size: 1.89 KB
Versions: 1
Compression:
Stored size: 1.89 KB
Contents
namespace :sunspot do namespace :solr do desc 'Start the Solr instance' task :start => :environment do if RUBY_PLATFORM =~ /w(in)?32$/ abort('This command does not work on Windows. Please use rake sunspot:solr:run to run Solr in the foreground.') end Sunspot::Rails::Server.new.start end desc 'Run the Solr instance in the foreground' task :run => :environment do Sunspot::Rails::Server.new.run end desc 'Stop the Solr instance' task :stop => :environment do if RUBY_PLATFORM =~ /w(in)?32$/ abort('This command does not work on Windows.') end Sunspot::Rails::Server.new.stop end task :reindex => :"sunspot:reindex" end desc "Reindex all solr models that are located in your application's models directory." # This task depends on the standard Rails file naming \ # conventions, in that the file name matches the defined class name. \ # By default the indexing system works in batches of 50 records, you can \ # set your own value for this by using the batch_size argument. You can \ # also optionally define a list of models to separated by a forward slash '/' # # $ rake sunspot:reindex # reindex all models # $ rake sunspot:reindex[Post] # reindex only the Post model # $ rake sunspot:reindex[Post+Author] # reindex Post and Author model task :reindex, :models, :needs => :environment do |t, args| unless args[:models] all_files = Dir.glob(Rails.root.join('app', 'models', '*.rb')) all_models = all_files.map { |path| File.basename(path, '.rb').camelize.constantize } sunspot_models = all_models.select { |m| m.respond_to?('searchable?') and m.searchable? } else sunspot_models = args[:models].split('+').map{|m| m.constantize} end sunspot_models.each do |model| model.remove_all_from_index! model.solr_reindex end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
sunspot_rails_mongoid-1.2.1 | lib/sunspot/rails/tasks.rb |