Sha256: 6b988a33618ce0d9d3599853f28f6d2fea4eab7a48dad00f50ca5a9c0f208185

Contents?: true

Size: 1.1 KB

Versions: 7

Compression:

Stored size: 1.1 KB

Contents

# frozen_string_literal: true

##
# Metadata for indexed documents
class SolrDocumentSidecar < ApplicationRecord
  include Statesman::Adapters::ActiveRecordQueries[
    transition_class: SidecarImageTransition,
    initial_state: :initialized
  ]

  belongs_to :document, optional: false, polymorphic: true
  has_many :sidecar_image_transitions, autosave: false, dependent: :destroy
  has_one_attached :image

  def document
    document_type.new document_type.unique_key => document_id
  end

  def document_type
    (super.constantize if defined?(super)) || default_document_type
  end

  def image_state
    @image_state ||= SidecarImageStateMachine.new(
      self,
      transition_class: SidecarImageTransition
    )
  end

  def self.transition_class
    SidecarImageTransition
  end

  def self.initial_state
    :initialized
  end

  def self.image_url
    Rails.application.routes.url_helpers.rails_blob_path(image, only_path: true)
  end

  def reimage!
    image.purge if image.attached?
    GeoblacklightSidecarImages::StoreImageJob.perform_later(document.id)
  end

  private_class_method :initial_state
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
geoblacklight_sidecar_images-0.9.2 app/models/solr_document_sidecar.rb
geoblacklight_sidecar_images-1.0.0 app/models/solr_document_sidecar.rb
geoblacklight_sidecar_images-0.9.1 app/models/solr_document_sidecar.rb
geoblacklight_sidecar_images-0.9.0 app/models/solr_document_sidecar.rb
geoblacklight_sidecar_images-0.8.1 app/models/solr_document_sidecar.rb
geoblacklight_sidecar_images-0.8.0 app/models/solr_document_sidecar.rb
geoblacklight_sidecar_images-0.7.0 app/models/solr_document_sidecar.rb