Module: Ddr::SolrDocumentBehavior
- Extended by:
- ActiveSupport::Concern
- Defined in:
- app/models/concerns/ddr/solr_document_behavior.rb
Defined Under Namespace
Modules: ClassMethods
Classes: NotFound
Instance Method Summary
collapse
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(name, *args, &block) ⇒ Object
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
# File 'app/models/concerns/ddr/solr_document_behavior.rb', line 42
def method_missing(name, *args, &block)
if args.empty? && !block
begin
field = Ddr::Index::Fields.get(name)
rescue NameError
else
val = self[field]
return val.is_a?(Array) ? val.join(", ") : val
end
end
super
end
|
Instance Method Details
#admin_policy ⇒ Object
83
84
85
86
87
|
# File 'app/models/concerns/ddr/solr_document_behavior.rb', line 83
def admin_policy
if has_admin_policy?
self.class.find(admin_policy_id.gsub(/^id-/,''))
end
end
|
#caption_extension ⇒ Object
242
243
244
245
246
247
248
249
250
251
|
# File 'app/models/concerns/ddr/solr_document_behavior.rb', line 242
def caption_extension
if captioned?
extensions = Ddr.preferred_file_extensions
if extensions.include? caption_type
extensions[caption_type]
else
caption_extension_default
end
end
end
|
#caption_path ⇒ Object
253
254
255
256
257
|
# File 'app/models/concerns/ddr/solr_document_behavior.rb', line 253
def caption_path
if captioned?
resource.caption_path
end
end
|
#caption_type ⇒ Object
236
237
238
239
240
|
# File 'app/models/concerns/ddr/solr_document_behavior.rb', line 236
def caption_type
if captioned?
resource.caption_type
end
end
|
#captionable? ⇒ Boolean
228
229
230
|
# File 'app/models/concerns/ddr/solr_document_behavior.rb', line 228
def captionable?
resource.captionable?
end
|
#captioned? ⇒ Boolean
232
233
234
|
# File 'app/models/concerns/ddr/solr_document_behavior.rb', line 232
def captioned?
resource.captioned?
end
|
#children ⇒ Object
296
297
298
|
# File 'app/models/concerns/ddr/solr_document_behavior.rb', line 296
def children
resource.children
end
|
#content_human_size ⇒ Object
128
129
130
|
# File 'app/models/concerns/ddr/solr_document_behavior.rb', line 128
def content_human_size
resource.content_human_size
end
|
#content_mime_type ⇒ Object
Also known as:
content_type
122
123
124
|
# File 'app/models/concerns/ddr/solr_document_behavior.rb', line 122
def content_mime_type
resource.content_type
end
|
#effective_permissions(agents) ⇒ Object
170
171
172
|
# File 'app/models/concerns/ddr/solr_document_behavior.rb', line 170
def effective_permissions(agents)
Ddr::Auth::EffectivePermissions.call(self, agents)
end
|
#embargo ⇒ Object
300
301
302
|
# File 'app/models/concerns/ddr/solr_document_behavior.rb', line 300
def embargo
resource.embargo
end
|
#embargoed? ⇒ Boolean
304
305
306
|
# File 'app/models/concerns/ddr/solr_document_behavior.rb', line 304
def embargoed?
resource.embargoed?
end
|
#finding_aid ⇒ Object
201
202
203
|
# File 'app/models/concerns/ddr/solr_document_behavior.rb', line 201
def finding_aid
resource.finding_aid
end
|
#has_admin_policy? ⇒ Boolean
79
80
81
|
# File 'app/models/concerns/ddr/solr_document_behavior.rb', line 79
def has_admin_policy?
admin_policy_id.present?
end
|
#has_children? ⇒ Boolean
89
90
91
|
# File 'app/models/concerns/ddr/solr_document_behavior.rb', line 89
def has_children?
resource.children.present?
end
|
#has_content? ⇒ Boolean
110
111
112
|
# File 'app/models/concerns/ddr/solr_document_behavior.rb', line 110
def has_content?
resource.has_content?
end
|
118
119
120
|
# File 'app/models/concerns/ddr/solr_document_behavior.rb', line 118
def
resource.
end
|
114
115
116
|
# File 'app/models/concerns/ddr/solr_document_behavior.rb', line 114
def has_intermediate_file?
resource.has_intermediate_file?
end
|
#has_parent? ⇒ Boolean
183
184
185
|
# File 'app/models/concerns/ddr/solr_document_behavior.rb', line 183
def has_parent?
parent_id.present?
end
|
#has_target? ⇒ Boolean
140
141
142
|
# File 'app/models/concerns/ddr/solr_document_behavior.rb', line 140
def has_target?
targets_count > 0
end
|
#has_thumbnail? ⇒ Boolean
106
107
108
|
# File 'app/models/concerns/ddr/solr_document_behavior.rb', line 106
def has_thumbnail?
resource.has_thumbnail?
end
|
#identifier ⇒ Object
97
98
99
100
|
# File 'app/models/concerns/ddr/solr_document_behavior.rb', line 97
def identifier
self[Solrizer.solr_name(:identifier, :stored_searchable, type: :text)]
end
|
#inherited_roles ⇒ Object
160
161
162
|
# File 'app/models/concerns/ddr/solr_document_behavior.rb', line 160
def inherited_roles
resource.inherited_roles
end
|
#inspect ⇒ Object
38
39
40
|
# File 'app/models/concerns/ddr/solr_document_behavior.rb', line 38
def inspect
"#<#{self.class.name} id=#{id.inspect}>"
end
|
217
218
219
220
221
222
223
224
225
226
|
# File 'app/models/concerns/ddr/solr_document_behavior.rb', line 217
def intermediate_extension
if has_intermediate_file?
extensions = Ddr.preferred_file_extensions
if extensions.include? intermediate_type
extensions[intermediate_type]
else
intermediate_extension_default
end
end
end
|
211
212
213
214
215
|
# File 'app/models/concerns/ddr/solr_document_behavior.rb', line 211
def intermediate_path
if has_intermediate_file?
resource.intermediate_path
end
end
|
205
206
207
208
209
|
# File 'app/models/concerns/ddr/solr_document_behavior.rb', line 205
def intermediate_type
if has_intermediate_file?
resource.intermediate_type
end
end
|
#last_fixity_check_on ⇒ Object
#last_virus_check_on ⇒ Object
#multires_image_file_paths ⇒ Object
193
194
195
196
197
198
199
|
# File 'app/models/concerns/ddr/solr_document_behavior.rb', line 193
def multires_image_file_paths
if structure
structure_docs.map { |doc| doc.multires_image_file_path }.compact
else
[]
end
end
|
#object_create_date ⇒ Object
#object_modified_date ⇒ Object
#parent ⇒ Object
187
188
189
190
191
|
# File 'app/models/concerns/ddr/solr_document_behavior.rb', line 187
def parent
if has_parent?
self.class.find(parent_id)
end
end
|
#parent_id ⇒ Object
179
180
181
|
# File 'app/models/concerns/ddr/solr_document_behavior.rb', line 179
def parent_id
is_part_of || is_member_of_collection
end
|
#research_help ⇒ Object
174
175
176
177
|
# File 'app/models/concerns/ddr/solr_document_behavior.rb', line 174
def research_help
research_help_contact = self[Ddr::Index::Fields::RESEARCH_HELP_CONTACT] || inherited_research_help_contact
Ddr::Contact.call(research_help_contact) if research_help_contact
end
|
#resource ⇒ Object
59
60
61
|
# File 'app/models/concerns/ddr/solr_document_behavior.rb', line 59
def resource
@resource ||= Valkyrie::MetadataAdapter.find(:index_solr).query_service.find_by(id: id)
end
|
#resource_roles ⇒ Object
156
157
158
|
# File 'app/models/concerns/ddr/solr_document_behavior.rb', line 156
def resource_roles
resource.resource_roles
end
|
#rights ⇒ Object
292
293
294
|
# File 'app/models/concerns/ddr/solr_document_behavior.rb', line 292
def rights
resource.rights
end
|
#rights_statement ⇒ Object
148
149
150
|
# File 'app/models/concerns/ddr/solr_document_behavior.rb', line 148
def rights_statement
@rights_statement ||= RightsStatement.call(self)
end
|
#roles ⇒ Object
152
153
154
|
# File 'app/models/concerns/ddr/solr_document_behavior.rb', line 152
def roles
@roles ||= resource.roles
end
|
#source ⇒ Object
102
103
104
|
# File 'app/models/concerns/ddr/solr_document_behavior.rb', line 102
def source
self[Solrizer.solr_name(:source, :stored_searchable, type: :text)]
end
|
#streamable? ⇒ Boolean
259
260
261
|
# File 'app/models/concerns/ddr/solr_document_behavior.rb', line 259
def streamable?
resource.streamable?
end
|
263
264
265
266
267
268
269
270
271
272
|
# File 'app/models/concerns/ddr/solr_document_behavior.rb', line 263
def streamable_media_extension
if streamable?
extensions = Ddr.preferred_file_extensions
if extensions.include? streamable_media_type
extensions[streamable_media_type]
else
streamable_media_extension_default
end
end
end
|
280
281
282
283
284
|
# File 'app/models/concerns/ddr/solr_document_behavior.rb', line 280
def streamable_media_path
if streamable?
resource.streamable_media_path
end
end
|
274
275
276
277
278
|
# File 'app/models/concerns/ddr/solr_document_behavior.rb', line 274
def streamable_media_type
if streamable?
resource.streamable_media_type
end
end
|
#structure ⇒ Object
164
165
166
167
168
|
# File 'app/models/concerns/ddr/solr_document_behavior.rb', line 164
def structure
JSON.parse(fetch(Ddr::Index::Fields::STRUCTURE))
rescue
nil
end
|
#tableized_name ⇒ Object
144
145
146
|
# File 'app/models/concerns/ddr/solr_document_behavior.rb', line 144
def tableized_name
resource_model.tableize
end
|
#targets ⇒ Object
132
133
134
|
# File 'app/models/concerns/ddr/solr_document_behavior.rb', line 132
def targets
@targets ||= query_service.find_inverse_references_by(resource: resource, property: 'for_collection_id')
end
|
#targets_count ⇒ Object
136
137
138
|
# File 'app/models/concerns/ddr/solr_document_behavior.rb', line 136
def targets_count
@targets_count = targets.count
end
|
#thumbnail_path ⇒ Object
286
287
288
289
290
|
# File 'app/models/concerns/ddr/solr_document_behavior.rb', line 286
def thumbnail_path
if has_thumbnail?
resource.thumbnail_path
end
end
|
#title_display ⇒ Object
93
94
95
|
# File 'app/models/concerns/ddr/solr_document_behavior.rb', line 93
def title_display
title
end
|