Module: MeiliSearch::Rails::Utilities
- Defined in:
- lib/meilisearch/rails/utilities.rb
Class Method Summary collapse
- .clear_all_indexes ⇒ Object
- .get_model_classes ⇒ Object
- .indexable?(record, options) ⇒ Boolean
- .mongo_model?(model_class) ⇒ Boolean
- .reindex_all_models ⇒ Object
- .sequel_model?(model_class) ⇒ Boolean
- .set_settings_all_models ⇒ Object
Class Method Details
.clear_all_indexes ⇒ Object
15 16 17 |
# File 'lib/meilisearch/rails/utilities.rb', line 15 def clear_all_indexes get_model_classes.each(&:clear_index!) end |
.get_model_classes ⇒ Object
5 6 7 8 9 10 11 12 13 |
# File 'lib/meilisearch/rails/utilities.rb', line 5 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::Rails.instance_variable_get(:@included_in) (klasses + klasses.map(&:descendants).flatten).uniq end |
.indexable?(record, options) ⇒ Boolean
44 45 46 47 48 49 |
# File 'lib/meilisearch/rails/utilities.rb', line 44 def indexable?(record, ) return false unless [:if].blank? || constraint_passes?(record, [:if]) return false unless [:unless].blank? || !constraint_passes?(record, [:unless]) true end |
.mongo_model?(model_class) ⇒ Boolean
51 52 53 |
# File 'lib/meilisearch/rails/utilities.rb', line 51 def mongo_model?(model_class) defined?(::Mongoid::Document) && model_class.include?(::Mongoid::Document) end |
.reindex_all_models ⇒ Object
19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/meilisearch/rails/utilities.rb', line 19 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 |
.sequel_model?(model_class) ⇒ Boolean
55 56 57 |
# File 'lib/meilisearch/rails/utilities.rb', line 55 def sequel_model?(model_class) defined?(::Sequel::Model) && model_class < Sequel::Model end |
.set_settings_all_models ⇒ Object
32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/meilisearch/rails/utilities.rb', line 32 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 |