Module: Arclight::SolrDocument

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

Overview

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

Instance Method Summary collapse

Instance Method Details

#abstract_or_scopeObject



46
47
48
# File 'app/models/concerns/arclight/solr_document.rb', line 46

def abstract_or_scope
  first('abstract_ssm') || first('scopecontent_ssm')
end

#children?Boolean

Returns:

  • (Boolean)


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

def children?
  number_of_children.positive?
end

#collection_creatorObject



54
55
56
# File 'app/models/concerns/arclight/solr_document.rb', line 54

def collection_creator
  first('collection_creator_ssm')
end

#collection_nameObject



38
39
40
# File 'app/models/concerns/arclight/solr_document.rb', line 38

def collection_name
  first('collection_ssm')
end

#component_levelObject



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

def component_level
  first('component_level_isim')
end

#containersObject



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

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

#creatorObject



50
51
52
# File 'app/models/concerns/arclight/solr_document.rb', line 50

def creator
  first('creator_ssm')
end

#digital_object_viewerObject



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

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

#digital_objectsObject



100
101
102
103
104
105
106
107
# File 'app/models/concerns/arclight/solr_document.rb', line 100

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

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

#eadidObject



22
23
24
# File 'app/models/concerns/arclight/solr_document.rb', line 22

def eadid
  fetch('ead_ssi', nil)
end

#extentObject



42
43
44
# File 'app/models/concerns/arclight/solr_document.rb', line 42

def extent
  first('extent_ssm')
end

#highlightsArray<String>

Returns with embedded highlights using .

Returns:

  • (Array<String>)

    with embedded highlights using



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

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



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

def level
  first('level_ssm')
end

#normalized_dateObject



118
119
120
# File 'app/models/concerns/arclight/solr_document.rb', line 118

def normalized_date
  first('normalized_date_ssm')
end

#normalized_titleObject



114
115
116
# File 'app/models/concerns/arclight/solr_document.rb', line 114

def normalized_title
  first('normalized_title_ssm')
end

#number_of_childrenObject



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

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

#online_content?Boolean

Returns:

  • (Boolean)


58
59
60
# File 'app/models/concerns/arclight/solr_document.rb', line 58

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

#parent_idsObject



14
15
16
# File 'app/models/concerns/arclight/solr_document.rb', line 14

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

#parent_labelsObject



18
19
20
# File 'app/models/concerns/arclight/solr_document.rb', line 18

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

#parent_restrictionsObject

Restrictions for component sidebar



91
92
93
# File 'app/models/concerns/arclight/solr_document.rb', line 91

def parent_restrictions
  first('parent_access_restrict_ssm')
end

#parent_termsObject

Terms for component sidebar



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

def parent_terms
  first('parent_access_terms_ssm')
end

#referenceObject



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

def reference
  first('ref_ssm')
end

#repositoryObject



30
31
32
# File 'app/models/concerns/arclight/solr_document.rb', line 30

def repository
  first('repository_ssm')
end

#repository_and_unitidObject



34
35
36
# File 'app/models/concerns/arclight/solr_document.rb', line 34

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

#repository_configObject



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

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

#termsObject



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

def terms
  first('userestrict_ssm')
end

#unitidObject



26
27
28
# File 'app/models/concerns/arclight/solr_document.rb', line 26

def unitid
  first('unitid_ssm')
end