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
      # pass
    else
      # Preserves the default behavior of the deprecated method
      # Blacklight::Solr::Document#get, which this procedure
      # effectively replaces.
      val = self[field]
      return val.is_a?(Array) ? val.join(", ") : val
    end
  end
  super
end

Instance Method Details

#admin_policyObject



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_extensionObject



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_pathObject



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_typeObject



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

Returns:

  • (Boolean)


228
229
230
# File 'app/models/concerns/ddr/solr_document_behavior.rb', line 228

def captionable?
  resource.captionable?
end

#captioned?Boolean

Returns:

  • (Boolean)


232
233
234
# File 'app/models/concerns/ddr/solr_document_behavior.rb', line 232

def captioned?
  resource.captioned?
end

#childrenObject



296
297
298
# File 'app/models/concerns/ddr/solr_document_behavior.rb', line 296

def children
  resource.children
end

#content_human_sizeObject



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_typeObject 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

#embargoObject



300
301
302
# File 'app/models/concerns/ddr/solr_document_behavior.rb', line 300

def embargo
  resource.embargo
end

#embargoed?Boolean

Returns:

  • (Boolean)


304
305
306
# File 'app/models/concerns/ddr/solr_document_behavior.rb', line 304

def embargoed?
  resource.embargoed?
end

#finding_aidObject



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

Returns:

  • (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

Returns:

  • (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

Returns:

  • (Boolean)


110
111
112
# File 'app/models/concerns/ddr/solr_document_behavior.rb', line 110

def has_content?
  resource.has_content?
end

#has_extracted_text?Boolean

Returns:

  • (Boolean)


118
119
120
# File 'app/models/concerns/ddr/solr_document_behavior.rb', line 118

def has_extracted_text?
  resource.has_extracted_text?
end

#has_intermediate_file?Boolean

Returns:

  • (Boolean)


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

Returns:

  • (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

Returns:

  • (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

Returns:

  • (Boolean)


106
107
108
# File 'app/models/concerns/ddr/solr_document_behavior.rb', line 106

def has_thumbnail?
  resource.has_thumbnail?
end

#identifierObject



97
98
99
100
# File 'app/models/concerns/ddr/solr_document_behavior.rb', line 97

def identifier
  # We want the multivalued version here
  self[Solrizer.solr_name(:identifier, :stored_searchable, type: :text)]
end

#inherited_rolesObject



160
161
162
# File 'app/models/concerns/ddr/solr_document_behavior.rb', line 160

def inherited_roles
  resource.inherited_roles
end

#inspectObject



38
39
40
# File 'app/models/concerns/ddr/solr_document_behavior.rb', line 38

def inspect
  "#<#{self.class.name} id=#{id.inspect}>"
end

#intermediate_extensionObject



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

#intermediate_pathObject



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

#intermediate_typeObject



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_onObject



71
72
73
# File 'app/models/concerns/ddr/solr_document_behavior.rb', line 71

def last_fixity_check_on
  get_date(Ddr::Index::Fields::LAST_FIXITY_CHECK_ON)
end

#last_virus_check_onObject



75
76
77
# File 'app/models/concerns/ddr/solr_document_behavior.rb', line 75

def last_virus_check_on
  get_date(Ddr::Index::Fields::LAST_VIRUS_CHECK_ON)
end

#multires_image_file_pathsObject



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_dateObject



63
64
65
# File 'app/models/concerns/ddr/solr_document_behavior.rb', line 63

def object_create_date
  parse_date(self[Ddr::Index::Fields::RESOURCE_CREATE_DATE])
end

#object_modified_dateObject



67
68
69
# File 'app/models/concerns/ddr/solr_document_behavior.rb', line 67

def object_modified_date
  parse_date(self[Ddr::Index::Fields::RESOURCE_MODIFIED_DATE])
end

#parentObject



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_idObject



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_helpObject



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

#resourceObject



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_rolesObject



156
157
158
# File 'app/models/concerns/ddr/solr_document_behavior.rb', line 156

def resource_roles
  resource.resource_roles
end

#rightsObject



292
293
294
# File 'app/models/concerns/ddr/solr_document_behavior.rb', line 292

def rights
  resource.rights
end

#rights_statementObject



148
149
150
# File 'app/models/concerns/ddr/solr_document_behavior.rb', line 148

def rights_statement
  @rights_statement ||= RightsStatement.call(self)
end

#rolesObject



152
153
154
# File 'app/models/concerns/ddr/solr_document_behavior.rb', line 152

def roles
  @roles ||= resource.roles
end

#sourceObject



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

Returns:

  • (Boolean)


259
260
261
# File 'app/models/concerns/ddr/solr_document_behavior.rb', line 259

def streamable?
  resource.streamable?
end

#streamable_media_extensionObject



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

#streamable_media_pathObject



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

#streamable_media_typeObject



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

#structureObject



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_nameObject



144
145
146
# File 'app/models/concerns/ddr/solr_document_behavior.rb', line 144

def tableized_name
  resource_model.tableize
end

#targetsObject



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_countObject



136
137
138
# File 'app/models/concerns/ddr/solr_document_behavior.rb', line 136

def targets_count
  @targets_count = targets.count
end

#thumbnail_pathObject



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_displayObject



93
94
95
# File 'app/models/concerns/ddr/solr_document_behavior.rb', line 93

def title_display
  title
end