Module: Spotlight::SolrDocument
- Extended by:
- ActiveSupport::Concern
- Includes:
- GlobalID::Identification, ActiveModelConcern, Finder, SpotlightImages
- Defined in:
- app/models/concerns/spotlight/solr_document.rb,
app/models/concerns/spotlight/solr_document/finder.rb,
app/models/concerns/spotlight/solr_document/atomic_updates.rb,
app/models/concerns/spotlight/solr_document/spotlight_images.rb,
app/models/concerns/spotlight/solr_document/uploaded_resource.rb,
app/models/concerns/spotlight/solr_document/active_model_concern.rb
Overview
SolrDocument mixins to add ActiveModel shims and indexing methods
Defined Under Namespace
Modules: ActiveModelConcern, AtomicUpdates, ClassMethods, Finder, SpotlightImages, UploadedResource
Class Method Summary
collapse
Instance Method Summary
collapse
#spotlight_image_versions
Methods included from Finder
#blacklight_solr
#destroyed?, #new_record?, #persisted?, #save, #to_key
Class Method Details
.resource_type_field ⇒ Object
79
80
81
|
# File 'app/models/concerns/spotlight/solr_document.rb', line 79
def self.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
71
72
73
|
# File 'app/models/concerns/spotlight/solr_document.rb', line 71
def self.solr_field_for_tagger(tagger)
:"#{solr_field_prefix(tagger)}tags#{Spotlight::Engine.config.solr_fields.string_suffix}"
end
|
.solr_field_prefix(exhibit) ⇒ Object
83
84
85
|
# File 'app/models/concerns/spotlight/solr_document.rb', line 83
def self.solr_field_prefix(exhibit)
"#{Spotlight::Engine.config.solr_fields.prefix}#{exhibit.class.model_name.param_key}_#{exhibit.to_param}_"
end
|
.visibility_field(exhibit) ⇒ Object
75
76
77
|
# File 'app/models/concerns/spotlight/solr_document.rb', line 75
def self.visibility_field(exhibit)
:"#{solr_field_prefix(exhibit)}public#{Spotlight::Engine.config.solr_fields.boolean_suffix}"
end
|
Instance Method Details
#attribute_present?(*_args) ⇒ Boolean
108
109
110
|
# File 'app/models/concerns/spotlight/solr_document.rb', line 108
def attribute_present?(*_args)
false
end
|
#make_private!(exhibit) ⇒ Object
91
92
93
|
# File 'app/models/concerns/spotlight/solr_document.rb', line 91
def make_private!(exhibit)
sidecar(exhibit).private!
end
|
#make_public!(exhibit) ⇒ Object
87
88
89
|
# File 'app/models/concerns/spotlight/solr_document.rb', line 87
def make_public!(exhibit)
sidecar(exhibit).public!
end
|
#private?(exhibit) ⇒ Boolean
95
96
97
|
# File 'app/models/concerns/spotlight/solr_document.rb', line 95
def private?(exhibit)
!(public?(exhibit))
end
|
#public?(exhibit) ⇒ Boolean
99
100
101
|
# File 'app/models/concerns/spotlight/solr_document.rb', line 99
def public?(exhibit)
sidecar(exhibit).public?
end
|
#reindex ⇒ Object
59
60
61
|
# File 'app/models/concerns/spotlight/solr_document.rb', line 59
def reindex
end
|
#sidecar(exhibit) ⇒ Object
63
64
65
|
# File 'app/models/concerns/spotlight/solr_document.rb', line 63
def sidecar(exhibit)
sidecars.find_or_initialize_by exhibit: exhibit
end
|
#to_solr ⇒ Object
67
68
69
|
# File 'app/models/concerns/spotlight/solr_document.rb', line 67
def to_solr
{ self.class.unique_key.to_sym => id }.reverse_merge(sidecars.inject({}) { |a, e| a.merge(e.to_solr) }).merge(tags_to_solr)
end
|
#update(current_exhibit, new_attributes) ⇒ Object
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
# File 'app/models/concerns/spotlight/solr_document.rb', line 39
def update(current_exhibit, new_attributes)
attributes = new_attributes.stringify_keys
custom_data = attributes.delete('sidecar')
tags = attributes.delete('exhibit_tag_list')
resource_attributes = attributes.delete('uploaded_resource')
sidecar(current_exhibit).update(custom_data) if custom_data
current_exhibit.tag(self, with: tags, on: :tags) if tags
update_exhibit_resource(resource_attributes) if uploaded_resource?
end
|
#update_exhibit_resource(resource_attributes) ⇒ Object
54
55
56
57
|
# File 'app/models/concerns/spotlight/solr_document.rb', line 54
def update_exhibit_resource(resource_attributes)
return unless resource_attributes && resource_attributes['url']
uploaded_resource.update url: resource_attributes['url']
end
|
#uploaded_resource? ⇒ Boolean