Sha256: 48f1c517b524afdf6f8a79a02c74e2a473fb1bed9bf765838bbe6e57e248a242

Contents?: true

Size: 1.43 KB

Versions: 17

Compression:

Stored size: 1.43 KB

Contents

# frozen_string_literal: true
require 'valkyrie/persistence/postgres/persister'
require 'valkyrie/persistence/postgres/query_service'
module Valkyrie::Persistence::Postgres
  # Metadata Adapter for Postgres Adapter.
  #
  # This adapter uses ActiveRecord to persist resources in a JSON-B column named
  # `metadata`. This requires setting up a database.
  #
  # @see https://github.com/samvera-labs/valkyrie/wiki/Set-up-Valkyrie-database-in-a-Rails-Application
  class MetadataAdapter
    # @return [Class] {Valkyrie::Persistence::Postgres::Persister}
    def persister
      Valkyrie::Persistence::Postgres::Persister.new(adapter: self)
    end

    # @return [Class] {Valkyrie::Persistence::Postgres::QueryService}
    def query_service
      @query_service ||= Valkyrie::Persistence::Postgres::QueryService.new(
        resource_factory: resource_factory,
        adapter: self
      )
    end

    # @return [Class] {Valkyrie::Persistence::Postgres::ResourceFactory}
    def resource_factory
      @resource_factory ||= Valkyrie::Persistence::Postgres::ResourceFactory.new(adapter: self)
    end

    # Construct a Valkyrie ID object using an MD5 hash generated from the database URL
    # @return [Valkyrie::ID]
    def id
      @id ||= begin
        to_hash = "#{resource_factory.orm_class.connection_config['host']}:#{resource_factory.orm_class.connection_config['database']}"
        Valkyrie::ID.new(Digest::MD5.hexdigest(to_hash))
      end
    end
  end
end

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
valkyrie-3.0.0.pre.beta.1 lib/valkyrie/persistence/postgres/metadata_adapter.rb
valkyrie-2.2.0 lib/valkyrie/persistence/postgres/metadata_adapter.rb
valkyrie-2.1.2 lib/valkyrie/persistence/postgres/metadata_adapter.rb
valkyrie-2.1.1 lib/valkyrie/persistence/postgres/metadata_adapter.rb
valkyrie-2.1.0 lib/valkyrie/persistence/postgres/metadata_adapter.rb
valkyrie-2.0.2 lib/valkyrie/persistence/postgres/metadata_adapter.rb
valkyrie-2.0.1 lib/valkyrie/persistence/postgres/metadata_adapter.rb
valkyrie-2.0.0 lib/valkyrie/persistence/postgres/metadata_adapter.rb
valkyrie-2.0.0.RC10 lib/valkyrie/persistence/postgres/metadata_adapter.rb
valkyrie-2.0.0.RC9 lib/valkyrie/persistence/postgres/metadata_adapter.rb
valkyrie-2.0.0.RC8 lib/valkyrie/persistence/postgres/metadata_adapter.rb
valkyrie-2.0.0.RC7 lib/valkyrie/persistence/postgres/metadata_adapter.rb
valkyrie-2.0.0.RC6 lib/valkyrie/persistence/postgres/metadata_adapter.rb
valkyrie-2.0.0.RC5 lib/valkyrie/persistence/postgres/metadata_adapter.rb
valkyrie-2.0.0.RC4 lib/valkyrie/persistence/postgres/metadata_adapter.rb
valkyrie-2.0.0.RC3 lib/valkyrie/persistence/postgres/metadata_adapter.rb
valkyrie-2.0.0.RC1 lib/valkyrie/persistence/postgres/metadata_adapter.rb