Sha256: a98d391c5362c2c39e801542919ea37bfa58dc034764c9338114623ac8f7dd04

Contents?: true

Size: 1.19 KB

Versions: 3

Compression:

Stored size: 1.19 KB

Contents

module MeiliSearch
  module Utilities
    class << self
      def get_model_classes
        if Rails.application && defined?(Rails.autoloaders) && Rails.autoloaders.zeitwerk_enabled?
          Zeitwerk::Loader.eager_load_all
        elsif Rails.application
          Rails.application.eager_load!
        end
        klasses = MeiliSearch.instance_variable_get(:@included_in)
        (klasses + klasses.map(&:descendants).flatten).uniq
      end

      def clear_all_indexes
        get_model_classes.each(&:clear_index!)
      end

      def reindex_all_models
        klasses = get_model_classes

        Rails.logger.info "\n\nReindexing #{klasses.count} models: #{klasses.to_sentence}.\n"

        klasses.each do |klass|
          Rails.logger.info klass
          Rails.logger.info "Reindexing #{klass.count} records..."

          klass.ms_reindex!
        end
      end

      def set_settings_all_models
        klasses = get_model_classes

        Rails.logger.info "\n\nPushing settings for #{klasses.count} models: #{klasses.to_sentence}.\n"

        klasses.each do |klass|
          Rails.logger.info "Pushing #{klass} settings..."

          klass.ms_set_settings
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
meilisearch-rails-0.4.1 lib/meilisearch/utilities.rb
meilisearch-rails-0.4.0 lib/meilisearch/utilities.rb
meilisearch-rails-0.3.0 lib/meilisearch/utilities.rb