Class: Valkyrie::Persistence::Fedora::MetadataAdapter
- Inherits:
-
Object
- Object
- Valkyrie::Persistence::Fedora::MetadataAdapter
- Defined in:
- lib/valkyrie/persistence/fedora/metadata_adapter.rb
Overview
Metadata Adapter for Fedora adapter.
Instance Attribute Summary collapse
-
#base_path ⇒ Object
readonly
Returns the value of attribute base_path.
-
#connection ⇒ Object
readonly
Returns the value of attribute connection.
-
#fedora_version ⇒ Object
readonly
Returns the value of attribute fedora_version.
-
#schema ⇒ Object
readonly
Returns the value of attribute schema.
Instance Method Summary collapse
-
#connection_prefix ⇒ String
Generate the prefix used in HTTP requests to the Fedora RESTful endpoint.
-
#id ⇒ Valkyrie::ID
Generate the Valkyrie ID for this unique metadata adapter This uses the URL of the Fedora endpoint to ensure that this is unique.
-
#id_to_uri(id) ⇒ RDF::URI
Generate a URI for a given Valkyrie ID.
-
#initialize(connection:, base_path: "/", schema: Valkyrie::Persistence::Fedora::PermissiveSchema.new, fedora_version: Valkyrie::Persistence::Fedora::DEFAULT_FEDORA_VERSION) ⇒ MetadataAdapter
constructor
A new instance of MetadataAdapter.
-
#pair_path(id) ⇒ Array<String>
Generate the pairtree path for a given Valkyrie ID.
-
#persister ⇒ Valkyrie::Persistence::Fedora::Persister
Construct the persister object using this adapter.
-
#query_service ⇒ Valkyrie::Persistence::Fedora::QueryService
Construct the query service object using this adapter.
-
#resource_factory ⇒ Valkyrie::Persistence::Fedora::Persister::ResourceFactory
Construct the factory object used to construct Valkyrie::Resource objects using this adapter.
-
#uri_to_id(uri) ⇒ Valkyrie::ID
Generate a Valkyrie ID for a given URI.
- #url_prefix ⇒ Object
Constructor Details
#initialize(connection:, base_path: "/", schema: Valkyrie::Persistence::Fedora::PermissiveSchema.new, fedora_version: Valkyrie::Persistence::Fedora::DEFAULT_FEDORA_VERSION) ⇒ MetadataAdapter
Returns a new instance of MetadataAdapter.
18 19 20 21 22 23 |
# File 'lib/valkyrie/persistence/fedora/metadata_adapter.rb', line 18 def initialize(connection:, base_path: "/", schema: Valkyrie::Persistence::Fedora::PermissiveSchema.new, fedora_version: Valkyrie::Persistence::Fedora::DEFAULT_FEDORA_VERSION) @connection = connection @base_path = base_path @schema = schema @fedora_version = fedora_version end |
Instance Attribute Details
#base_path ⇒ Object (readonly)
Returns the value of attribute base_path.
12 13 14 |
# File 'lib/valkyrie/persistence/fedora/metadata_adapter.rb', line 12 def base_path @base_path end |
#connection ⇒ Object (readonly)
Returns the value of attribute connection.
12 13 14 |
# File 'lib/valkyrie/persistence/fedora/metadata_adapter.rb', line 12 def connection @connection end |
#fedora_version ⇒ Object (readonly)
Returns the value of attribute fedora_version.
12 13 14 |
# File 'lib/valkyrie/persistence/fedora/metadata_adapter.rb', line 12 def fedora_version @fedora_version end |
#schema ⇒ Object (readonly)
Returns the value of attribute schema.
12 13 14 |
# File 'lib/valkyrie/persistence/fedora/metadata_adapter.rb', line 12 def schema @schema end |
Instance Method Details
#connection_prefix ⇒ String
Generate the prefix used in HTTP requests to the Fedora RESTful endpoint
80 81 82 |
# File 'lib/valkyrie/persistence/fedora/metadata_adapter.rb', line 80 def connection_prefix "#{connection.http.url_prefix}/#{base_path}" end |
#id ⇒ Valkyrie::ID
Generate the Valkyrie ID for this unique metadata adapter This uses the URL of the Fedora endpoint to ensure that this is unique
40 41 42 |
# File 'lib/valkyrie/persistence/fedora/metadata_adapter.rb', line 40 def id @id ||= Valkyrie::ID.new(Digest::MD5.hexdigest(connection_prefix)) end |
#id_to_uri(id) ⇒ RDF::URI
Generate a URI for a given Valkyrie ID
60 61 62 63 |
# File 'lib/valkyrie/persistence/fedora/metadata_adapter.rb', line 60 def id_to_uri(id) prefix = [5, 6].include?(fedora_version) ? "" : "#{pair_path(id)}/" RDF::URI("#{connection_prefix}/#{prefix}#{CGI.escape(id.to_s)}") end |
#pair_path(id) ⇒ Array<String>
Generate the pairtree path for a given Valkyrie ID
70 71 72 |
# File 'lib/valkyrie/persistence/fedora/metadata_adapter.rb', line 70 def pair_path(id) id.to_s.split(/[-\/]/).first.split("").each_slice(2).map(&:join).join("/") end |
#persister ⇒ Valkyrie::Persistence::Fedora::Persister
Construct the persister object using this adapter
33 34 35 |
# File 'lib/valkyrie/persistence/fedora/metadata_adapter.rb', line 33 def persister Valkyrie::Persistence::Fedora::Persister.new(adapter: self) end |
#query_service ⇒ Valkyrie::Persistence::Fedora::QueryService
Construct the query service object using this adapter
27 28 29 |
# File 'lib/valkyrie/persistence/fedora/metadata_adapter.rb', line 27 def query_service @query_service ||= Valkyrie::Persistence::Fedora::QueryService.new(adapter: self) end |
#resource_factory ⇒ Valkyrie::Persistence::Fedora::Persister::ResourceFactory
Construct the factory object used to construct Valkyrie::Resource objects using this adapter
46 47 48 |
# File 'lib/valkyrie/persistence/fedora/metadata_adapter.rb', line 46 def resource_factory Valkyrie::Persistence::Fedora::Persister::ResourceFactory.new(adapter: self) end |
#uri_to_id(uri) ⇒ Valkyrie::ID
Generate a Valkyrie ID for a given URI
53 54 55 |
# File 'lib/valkyrie/persistence/fedora/metadata_adapter.rb', line 53 def uri_to_id(uri) Valkyrie::ID.new(CGI.unescape(uri.to_s.gsub(/^.*\//, ''))) end |
#url_prefix ⇒ Object
74 75 76 |
# File 'lib/valkyrie/persistence/fedora/metadata_adapter.rb', line 74 def url_prefix connection.http.url_prefix end |