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
- #abstract_or_scope ⇒ Object
- #children? ⇒ Boolean
- #collection_creator ⇒ Object
- #collection_name ⇒ Object
- #collection_unitid ⇒ Object
- #component_level ⇒ Object
- #containers ⇒ Object
- #creator ⇒ Object
- #digital_object_viewer ⇒ Object
- #digital_objects ⇒ Object
-
#downloads ⇒ DocumentDownloads
Factory method for constructing the Object modeling downloads.
- #eadid ⇒ Object
- #extent ⇒ Object
-
#highlights ⇒ Array<String>
With embedded highlights using ….
- #level ⇒ Object
- #normalized_date ⇒ Object
- #normalized_title ⇒ Object
- #number_of_children ⇒ Object
- #online_content? ⇒ Boolean
- #parent_document ⇒ Object
- #parent_ids ⇒ Object
- #parent_labels ⇒ Object
- #parent_levels ⇒ Object
-
#parent_restrictions ⇒ Object
Restrictions for component sidebar.
-
#parent_terms ⇒ Object
Terms for component sidebar.
- #reference ⇒ Object
- #repository ⇒ Object
- #repository_and_unitid ⇒ Object
- #repository_config ⇒ Object
- #terms ⇒ Object
- #unitid ⇒ Object
Methods included from EadFormatHelpers
Instance Method Details
#abstract_or_scope ⇒ Object
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') (value: [value]) if value.present? end |
#children? ⇒ Boolean
81 82 83 |
# File 'app/models/concerns/arclight/solr_document.rb', line 81 def children? number_of_children.positive? end |
#collection_creator ⇒ Object
69 70 71 |
# File 'app/models/concerns/arclight/solr_document.rb', line 69 def collection_creator first('collection_creator_ssm') end |
#collection_name ⇒ Object
48 49 50 |
# File 'app/models/concerns/arclight/solr_document.rb', line 48 def collection_name first('collection_ssm') end |
#collection_unitid ⇒ Object
52 53 54 |
# File 'app/models/concerns/arclight/solr_document.rb', line 52 def collection_unitid first('collection_unitid_ssm') end |
#component_level ⇒ Object
89 90 91 |
# File 'app/models/concerns/arclight/solr_document.rb', line 89 def component_level first('component_level_isim') end |
#containers ⇒ Object
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 |
#creator ⇒ Object
65 66 67 |
# File 'app/models/concerns/arclight/solr_document.rb', line 65 def creator first('creator_ssm') end |
#digital_object_viewer ⇒ Object
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_objects ⇒ Object
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 |
#downloads ⇒ DocumentDownloads
Factory method for constructing the Object modeling downloads
149 150 151 |
# File 'app/models/concerns/arclight/solr_document.rb', line 149 def downloads @downloads ||= DocumentDownloads.new(self) end |
#eadid ⇒ Object
32 33 34 |
# File 'app/models/concerns/arclight/solr_document.rb', line 32 def eadid fetch('ead_ssi', nil)&.strip end |
#extent ⇒ Object
56 57 58 |
# File 'app/models/concerns/arclight/solr_document.rb', line 56 def extent first('extent_ssm') end |
#highlights ⇒ Array<String>
Returns 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 |
#level ⇒ Object
93 94 95 |
# File 'app/models/concerns/arclight/solr_document.rb', line 93 def level first('level_ssm') end |
#normalized_date ⇒ Object
133 134 135 |
# File 'app/models/concerns/arclight/solr_document.rb', line 133 def normalized_date first('normalized_date_ssm') end |
#normalized_title ⇒ Object
129 130 131 |
# File 'app/models/concerns/arclight/solr_document.rb', line 129 def normalized_title first('normalized_title_ssm') end |
#number_of_children ⇒ Object
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
73 74 75 |
# File 'app/models/concerns/arclight/solr_document.rb', line 73 def online_content? first('has_online_content_ssim') == 'true' end |
#parent_document ⇒ Object
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_ids ⇒ Object
16 17 18 |
# File 'app/models/concerns/arclight/solr_document.rb', line 16 def parent_ids fetch('parent_ssim', []) end |
#parent_labels ⇒ Object
20 21 22 |
# File 'app/models/concerns/arclight/solr_document.rb', line 20 def parent_labels fetch('parent_unittitles_ssm', []) end |
#parent_levels ⇒ Object
24 25 26 |
# File 'app/models/concerns/arclight/solr_document.rb', line 24 def parent_levels fetch('parent_levels_ssm', []) end |
#parent_restrictions ⇒ Object
Restrictions for component sidebar
106 107 108 |
# File 'app/models/concerns/arclight/solr_document.rb', line 106 def parent_restrictions (value: [first('parent_access_restrict_ssm')]) end |
#parent_terms ⇒ Object
Terms for component sidebar
111 112 113 |
# File 'app/models/concerns/arclight/solr_document.rb', line 111 def parent_terms (value: [first('parent_access_terms_ssm')]) end |
#reference ⇒ Object
85 86 87 |
# File 'app/models/concerns/arclight/solr_document.rb', line 85 def reference first('ref_ssm') end |
#repository ⇒ Object
40 41 42 |
# File 'app/models/concerns/arclight/solr_document.rb', line 40 def repository first('repository_ssm') end |
#repository_and_unitid ⇒ Object
44 45 46 |
# File 'app/models/concerns/arclight/solr_document.rb', line 44 def repository_and_unitid [repository, unitid].compact.join(': ') end |
#repository_config ⇒ Object
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 |
#terms ⇒ Object
101 102 103 |
# File 'app/models/concerns/arclight/solr_document.rb', line 101 def terms (value: [first('userestrict_ssm')]) end |
#unitid ⇒ Object
36 37 38 |
# File 'app/models/concerns/arclight/solr_document.rb', line 36 def unitid first('unitid_ssm') end |