Module: Arclight::SolrDocument

Extended by:
Blacklight::Solr::Document
Includes:
EadFormatHelpers
Defined in:
app/models/concerns/arclight/solr_document.rb

Overview

Extends Blacklight::Solr::Document to provide Arclight specific behavior

Instance Method Summary collapse

Methods included from EadFormatHelpers

#render_html_tags

Instance Method Details

#abstract_or_scopeObject



60
61
62
63
# File 'app/models/concerns/arclight/solr_document.rb', line 60

def abstract_or_scope
  value = first('abstract_ssm') || first('scopecontent_ssm')
  render_html_tags(value: [value]) if value.present?
end

#children?Boolean

Returns:

  • (Boolean)


81
82
83
# File 'app/models/concerns/arclight/solr_document.rb', line 81

def children?
  number_of_children.positive?
end

#collection_creatorObject



69
70
71
# File 'app/models/concerns/arclight/solr_document.rb', line 69

def collection_creator
  first('collection_creator_ssm')
end

#collection_nameObject



48
49
50
# File 'app/models/concerns/arclight/solr_document.rb', line 48

def collection_name
  first('collection_ssm')
end

#collection_unitidObject



52
53
54
# File 'app/models/concerns/arclight/solr_document.rb', line 52

def collection_unitid
  first('collection_unitid_ssm')
end

#component_levelObject



89
90
91
# File 'app/models/concerns/arclight/solr_document.rb', line 89

def component_level
  first('component_level_isim')
end

#containersObject



124
125
126
127
# File 'app/models/concerns/arclight/solr_document.rb', line 124

def containers
  # note that .titlecase strips punctuation, like hyphens, we want to keep
  fetch('containers_ssim', []).map(&:capitalize)
end

#creatorObject



65
66
67
# File 'app/models/concerns/arclight/solr_document.rb', line 65

def creator
  first('creator_ssm')
end

#digital_object_viewerObject



97
98
99
# File 'app/models/concerns/arclight/solr_document.rb', line 97

def digital_object_viewer
  @digital_object_viewer ||= Arclight::Viewer.render(self)
end

#digital_objectsObject



115
116
117
118
119
120
121
122
# File 'app/models/concerns/arclight/solr_document.rb', line 115

def digital_objects
  digital_objects_field = fetch('digital_objects_ssm', []).reject(&:empty?)
  return [] if digital_objects_field.blank?

  digital_objects_field.map do |object|
    Arclight::DigitalObject.from_json(object)
  end
end

#downloadsDocumentDownloads

Factory method for constructing the Object modeling downloads

Returns:



149
150
151
# File 'app/models/concerns/arclight/solr_document.rb', line 149

def downloads
  @downloads ||= DocumentDownloads.new(self)
end

#eadidObject



32
33
34
# File 'app/models/concerns/arclight/solr_document.rb', line 32

def eadid
  fetch('ead_ssi', nil)&.strip
end

#extentObject



56
57
58
# File 'app/models/concerns/arclight/solr_document.rb', line 56

def extent
  first('extent_ssm')
end

#highlightsArray<String>

Returns with embedded highlights using .

Returns:

  • (Array<String>)

    with embedded highlights using



138
139
140
141
142
143
144
145
# File 'app/models/concerns/arclight/solr_document.rb', line 138

def highlights
  highlight_response = response[:highlighting]
  return if highlight_response.blank? ||
            highlight_response[id].blank? ||
            highlight_response[id][:text].blank?

  highlight_response[id][:text]
end

#levelObject



93
94
95
# File 'app/models/concerns/arclight/solr_document.rb', line 93

def level
  first('level_ssm')
end

#normalized_dateObject



133
134
135
# File 'app/models/concerns/arclight/solr_document.rb', line 133

def normalized_date
  first('normalized_date_ssm')
end

#normalized_titleObject



129
130
131
# File 'app/models/concerns/arclight/solr_document.rb', line 129

def normalized_title
  first('normalized_title_ssm')
end

#number_of_childrenObject



77
78
79
# File 'app/models/concerns/arclight/solr_document.rb', line 77

def number_of_children
  first('child_component_count_isim') || 0
end

#online_content?Boolean

Returns:

  • (Boolean)


73
74
75
# File 'app/models/concerns/arclight/solr_document.rb', line 73

def online_content?
  first('has_online_content_ssim') == 'true'
end

#parent_documentObject



28
29
30
# File 'app/models/concerns/arclight/solr_document.rb', line 28

def parent_document
  self.class.new fetch('parent').fetch('docs', []).first
end

#parent_idsObject



16
17
18
# File 'app/models/concerns/arclight/solr_document.rb', line 16

def parent_ids
  fetch('parent_ssim', [])
end

#parent_labelsObject



20
21
22
# File 'app/models/concerns/arclight/solr_document.rb', line 20

def parent_labels
  fetch('parent_unittitles_ssm', [])
end

#parent_levelsObject



24
25
26
# File 'app/models/concerns/arclight/solr_document.rb', line 24

def parent_levels
  fetch('parent_levels_ssm', [])
end

#parent_restrictionsObject

Restrictions for component sidebar



106
107
108
# File 'app/models/concerns/arclight/solr_document.rb', line 106

def parent_restrictions
  render_html_tags(value: [first('parent_access_restrict_ssm')])
end

#parent_termsObject

Terms for component sidebar



111
112
113
# File 'app/models/concerns/arclight/solr_document.rb', line 111

def parent_terms
  render_html_tags(value: [first('parent_access_terms_ssm')])
end

#referenceObject



85
86
87
# File 'app/models/concerns/arclight/solr_document.rb', line 85

def reference
  first('ref_ssm')
end

#repositoryObject



40
41
42
# File 'app/models/concerns/arclight/solr_document.rb', line 40

def repository
  first('repository_ssm')
end

#repository_and_unitidObject



44
45
46
# File 'app/models/concerns/arclight/solr_document.rb', line 44

def repository_and_unitid
  [repository, unitid].compact.join(': ')
end

#repository_configObject



10
11
12
13
14
# File 'app/models/concerns/arclight/solr_document.rb', line 10

def repository_config
  return unless repository

  @repository_config ||= Arclight::Repository.find_by(name: repository)
end

#termsObject



101
102
103
# File 'app/models/concerns/arclight/solr_document.rb', line 101

def terms
  render_html_tags(value: [first('userestrict_ssm')])
end

#unitidObject



36
37
38
# File 'app/models/concerns/arclight/solr_document.rb', line 36

def unitid
  first('unitid_ssm')
end