Class: Spotlight::FeaturedImage
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- Spotlight::FeaturedImage
- Defined in:
- app/models/spotlight/featured_image.rb
Overview
Featured images for browse categories, feature pages, and exhibits
Direct Known Subclasses
Instance Attribute Summary collapse
-
#upload_id ⇒ Object
Returns the value of attribute upload_id.
Instance Method Summary collapse
- #document ⇒ Object
- #file_present? ⇒ Boolean
- #iiif_tilesource ⇒ Object
- #iiif_url ⇒ Object
-
#remote_image_url=(url) ⇒ Object
This is used to fetch images given the URL field in the CSV uploads If the image is local, this step will fail, which is okay since the only consumer is CSV uploads and the URL is intended to be remote.
-
#to_param ⇒ Object
Include a hashed updated_at timestamp in the parameter key to bust any browser caching.
Instance Attribute Details
#upload_id ⇒ Object
Returns the value of attribute upload_id.
36 37 38 |
# File 'app/models/spotlight/featured_image.rb', line 36 def upload_id @upload_id end |
Instance Method Details
#document ⇒ Object
51 52 53 54 55 56 57 58 59 60 61 62 |
# File 'app/models/spotlight/featured_image.rb', line 51 def document return unless document_global_id && source == 'exhibit' @document = nil if @document && document_global_id != @document.to_global_id.to_s @document ||= GlobalID::Locator.locate document_global_id rescue Blacklight::Exceptions::RecordNotFound => e Rails.logger.info("Exception fetching record by id: #{document_global_id}") Rails.logger.info(e) nil end |
#file_present? ⇒ Boolean
64 65 66 |
# File 'app/models/spotlight/featured_image.rb', line 64 def file_present? image.file.present? end |
#iiif_tilesource ⇒ Object
68 69 70 71 72 73 74 |
# File 'app/models/spotlight/featured_image.rb', line 68 def iiif_tilesource if self[:iiif_tilesource] self[:iiif_tilesource] elsif file_present? Spotlight::Engine.config.iiif_service.info_url(self) end end |
#iiif_url ⇒ Object
38 39 40 41 42 |
# File 'app/models/spotlight/featured_image.rb', line 38 def iiif_url return if iiif_service_base.blank? [iiif_service_base, iiif_region || 'full', image_size.join(','), '0', 'default.jpg'].join('/') end |
#remote_image_url=(url) ⇒ Object
This is used to fetch images given the URL field in the CSV uploads If the image is local, this step will fail, which is okay since the only consumer is CSV uploads and the URL is intended to be remote
47 48 49 |
# File 'app/models/spotlight/featured_image.rb', line 47 def remote_image_url=(url) super url unless url.starts_with? '/' end |
#to_param ⇒ Object
Include a hashed updated_at timestamp in the parameter key to bust any browser caching.
78 79 80 |
# File 'app/models/spotlight/featured_image.rb', line 78 def to_param "#{id}-#{Digest::MD5.hexdigest(updated_at.iso8601)}" end |