Module: Spotlight::SolrDocument::ClassMethods

Defined in:
app/models/concerns/spotlight/solr_document.rb

Overview

Class-level methods

Instance Method Summary collapse

Instance Method Details

#build_for_exhibit(id, exhibit, attributes = {}) ⇒ Object



17
18
19
20
21
# File 'app/models/concerns/spotlight/solr_document.rb', line 17

def build_for_exhibit(id, exhibit, attributes = {})
  new(unique_key => id).tap do |doc|
    doc.sidecar(exhibit).tap { |x| x.assign_attributes(attributes) }.save! # save is a nop if the sidecar isn't modified.
  end
end

#reindex(id) ⇒ Object



23
24
25
26
27
# File 'app/models/concerns/spotlight/solr_document.rb', line 23

def reindex(id)
  find(id).reindex
rescue Blacklight::Exceptions::InvalidSolrID => e
  Rails.logger.debug "Unable to find document #{id}: #{e}"
end

#reindex_allObject



29
30
31
# File 'app/models/concerns/spotlight/solr_document.rb', line 29

def reindex_all
  find_each(&:reindex)
end

#resource_type_fieldObject



41
42
43
# File 'app/models/concerns/spotlight/solr_document.rb', line 41

def resource_type_field
  :"#{Spotlight::Engine.config.solr_fields.prefix}spotlight_resource_type#{Spotlight::Engine.config.solr_fields.string_suffix}"
end

#solr_field_for_tagger(tagger) ⇒ Object



33
34
35
# File 'app/models/concerns/spotlight/solr_document.rb', line 33

def solr_field_for_tagger(tagger)
  :"#{solr_field_prefix(tagger)}tags#{Spotlight::Engine.config.solr_fields.string_suffix}"
end

#solr_field_prefix(exhibit) ⇒ Object



45
46
47
# File 'app/models/concerns/spotlight/solr_document.rb', line 45

def solr_field_prefix(exhibit)
  "#{Spotlight::Engine.config.solr_fields.prefix}#{exhibit.class.model_name.param_key}_#{exhibit.to_param}_"
end

#visibility_field(exhibit) ⇒ Object



37
38
39
# File 'app/models/concerns/spotlight/solr_document.rb', line 37

def visibility_field(exhibit)
  :"#{solr_field_prefix(exhibit)}public#{Spotlight::Engine.config.solr_fields.boolean_suffix}"
end