Sha256: 47cb976de2f58c7ad1cd922659b465a8b2d99017c4e01b0d92571fe4b8943e4a

Contents?: true

Size: 1.06 KB

Versions: 28

Compression:

Stored size: 1.06 KB

Contents

# frozen_string_literal: true

module Hyrax
  ##
  # Support GlobalID and ActiveJob Serialization/Deserialization for
  # `Valkyrie::Resource` models.
  #
  #
  # @example Serializing a Valkyrie::Resource for ActiveJob
  #   resource = Hyrax.query_service.find_by(id: Valkyrie::ID.new('an_id'))
  #
  #   MyJob.perform_later(resource) # #<ActiveJob::SerializationError: Unsupported argument type: >
  #
  #   proxy = Hyrax::ValkyrieGlobalIdProxy.new(resource: resource)
  #   MyJob.perform_later(proxy) # deserializes for `MyJob#perform` as `resource`
  #
  # @see https://github.com/rails/globalid
  class ValkyrieGlobalIdProxy
    include GlobalID::Identification

    ##
    # @!attribute [rw] resource
    #   @return [Hyrax::Resource]
    attr_accessor :resource

    ##
    # @param resource [Hyrax::Resource]
    def initialize(resource:)
      self.resource = resource
    end

    ##
    # @return [Valkyrie::Resource]
    def self.find(id)
      Hyrax.query_service.find_by(id: id)
    end

    ##
    # @return [String]
    def id
      resource.id.to_s
    end
  end
end

Version data entries

28 entries across 28 versions & 1 rubygems

Version Path
hyrax-5.1.0.pre.beta1 app/models/hyrax/valkyrie_global_id_proxy.rb
hyrax-5.0.4 app/models/hyrax/valkyrie_global_id_proxy.rb
hyrax-5.0.3 app/models/hyrax/valkyrie_global_id_proxy.rb
hyrax-5.0.2 app/models/hyrax/valkyrie_global_id_proxy.rb
hyrax-5.0.1 app/models/hyrax/valkyrie_global_id_proxy.rb
hyrax-5.0.0 app/models/hyrax/valkyrie_global_id_proxy.rb
hyrax-5.0.0.rc3 app/models/hyrax/valkyrie_global_id_proxy.rb
hyrax-5.0.0.rc2 app/models/hyrax/valkyrie_global_id_proxy.rb
hyrax-5.0.0.rc1 app/models/hyrax/valkyrie_global_id_proxy.rb
hyrax-3.6.0 app/models/hyrax/valkyrie_global_id_proxy.rb
hyrax-4.0.0 app/models/hyrax/valkyrie_global_id_proxy.rb
hyrax-4.0.0.rc3 app/models/hyrax/valkyrie_global_id_proxy.rb
hyrax-4.0.0.rc2 app/models/hyrax/valkyrie_global_id_proxy.rb
hyrax-4.0.0.rc1 app/models/hyrax/valkyrie_global_id_proxy.rb
hyrax-3.5.0 app/models/hyrax/valkyrie_global_id_proxy.rb
hyrax-4.0.0.beta2 app/models/hyrax/valkyrie_global_id_proxy.rb
hyrax-3.4.2 app/models/hyrax/valkyrie_global_id_proxy.rb
hyrax-4.0.0.beta1 app/models/hyrax/valkyrie_global_id_proxy.rb
hyrax-3.4.1 app/models/hyrax/valkyrie_global_id_proxy.rb
hyrax-3.4.0 app/models/hyrax/valkyrie_global_id_proxy.rb