hydra-core 10.0.0 → 10.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/app/models/hydra/content_negotiation/clean_graph_repository.rb +7 -3
- data/app/models/hydra/content_negotiation/fedora_uri_replacer.rb +7 -3
- data/app/models/hydra/content_negotiation/replacing_graph_finder.rb +11 -2
- data/lib/hydra-head/version.rb +1 -1
- data/spec/models/content_negotiation/replacing_graph_finder_spec.rb +20 -0
- metadata +6 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9a1cd5a8276ad78953ef0a08e5986ac669ce209d
|
4
|
+
data.tar.gz: f7584c638f094da3f0ff9a12d0c1985d71944b9d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: da165812253d2b6adf23da94c47e731b3743a99308144536973e67f3104b901d100f50c637d4494b2a68efdd166ba0f1d6fbcbb9082edceb26aa3bd4d58aa5a4
|
7
|
+
data.tar.gz: 4b600ca2367362e556d66bbe2a6eb468c60e88a2a11cfb062a1f9ebddce26789448dda465f96baba25a9b9e1fc36b6e09b5b977114ad2144f1e382faa27ef36a
|
@@ -2,14 +2,18 @@ module Hydra::ContentNegotiation
|
|
2
2
|
# CleanGraphRepository has a #find interface which returns a graph for use
|
3
3
|
# with content negotiation.
|
4
4
|
class CleanGraphRepository
|
5
|
-
attr_reader :connection
|
6
|
-
|
5
|
+
attr_reader :connection, :replacer
|
6
|
+
# @param [#get] connection the connection to fedora
|
7
|
+
# @param [#call] replacer a function that is called with id and graph and returns a string representation of the new uri.
|
8
|
+
def initialize(connection, replacer = Hydra.config.id_to_resource_uri)
|
7
9
|
@connection = connection
|
10
|
+
@replacer = replacer
|
8
11
|
end
|
9
12
|
|
10
13
|
def find(id)
|
11
14
|
ReplacingGraphFinder.new(
|
12
|
-
GraphFinder.new(connection, id)
|
15
|
+
GraphFinder.new(connection, id),
|
16
|
+
replacer
|
13
17
|
).graph
|
14
18
|
end
|
15
19
|
end
|
@@ -1,9 +1,13 @@
|
|
1
1
|
module Hydra::ContentNegotiation
|
2
2
|
# Replaces Fedora URIs in a graph with a Hydra-configured alternative.
|
3
3
|
class FedoraUriReplacer
|
4
|
-
|
4
|
+
# @param [String] fedora_base_uri the internal Fedora base uri
|
5
|
+
# @param [RDF::Graph] graph the original graph that needs URIs replaced
|
6
|
+
# @param [#call] replacer a function that is called with id and graph and returns a string representation of the new uri.
|
7
|
+
def initialize(fedora_base_uri, graph, replacer)
|
5
8
|
@fedora_base_uri = fedora_base_uri
|
6
9
|
@graph = graph
|
10
|
+
@replacer = replacer
|
7
11
|
end
|
8
12
|
|
9
13
|
def run
|
@@ -12,11 +16,11 @@ module Hydra::ContentNegotiation
|
|
12
16
|
|
13
17
|
private
|
14
18
|
|
15
|
-
attr_reader :fedora_base_uri, :graph
|
19
|
+
attr_reader :fedora_base_uri, :graph, :replacer
|
16
20
|
|
17
21
|
def replace_uri(uri)
|
18
22
|
id = ActiveFedora::Base.uri_to_id(uri)
|
19
|
-
RDF::URI(
|
23
|
+
RDF::URI(replacer.call(id, graph))
|
20
24
|
end
|
21
25
|
|
22
26
|
def replaced_objects
|
@@ -2,6 +2,13 @@ module Hydra::ContentNegotiation
|
|
2
2
|
# Decorator for Finder which replaces Fedora subjects in the graph with a
|
3
3
|
# configured URI
|
4
4
|
class ReplacingGraphFinder < SimpleDelegator
|
5
|
+
|
6
|
+
attr_reader :replacer
|
7
|
+
def initialize(graph_finder, replacer)
|
8
|
+
super(graph_finder)
|
9
|
+
@replacer = replacer
|
10
|
+
end
|
11
|
+
|
5
12
|
def graph
|
6
13
|
graph_replacer.run
|
7
14
|
end
|
@@ -9,11 +16,13 @@ module Hydra::ContentNegotiation
|
|
9
16
|
private
|
10
17
|
|
11
18
|
def graph_replacer
|
12
|
-
::Hydra::ContentNegotiation::FedoraUriReplacer.new(base_uri,
|
19
|
+
::Hydra::ContentNegotiation::FedoraUriReplacer.new(base_uri,
|
20
|
+
__getobj__.graph,
|
21
|
+
replacer)
|
13
22
|
end
|
14
23
|
|
15
24
|
def base_uri
|
16
|
-
@base_uri ||=
|
25
|
+
@base_uri ||= ActiveFedora.fedora.host + ActiveFedora.fedora.base_path
|
17
26
|
end
|
18
27
|
end
|
19
28
|
end
|
data/lib/hydra-head/version.rb
CHANGED
@@ -0,0 +1,20 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
RSpec.describe Hydra::ContentNegotiation::ReplacingGraphFinder do
|
4
|
+
let(:graph) { double }
|
5
|
+
let(:finder) { double(graph: graph,
|
6
|
+
uri: 'http://127.0.0.1:8986/rest/test/28/01/ph/00/2801ph009',
|
7
|
+
id: '2801ph009') }
|
8
|
+
let(:replacer) { double }
|
9
|
+
subject { described_class.new finder, replacer }
|
10
|
+
|
11
|
+
describe "graph" do
|
12
|
+
it "has the correct base url" do
|
13
|
+
expect(Hydra::ContentNegotiation::FedoraUriReplacer).to receive(:new)
|
14
|
+
.with(ending_with("/rest/test"), graph, replacer)
|
15
|
+
.and_return(double(run: nil))
|
16
|
+
|
17
|
+
subject.graph
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hydra-core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 10.0.
|
4
|
+
version: 10.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matt Zumwalt, Bess Sadler, Julie Meloni, Naomi Dushay, Jessie Keck, John Scofield,
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2016-06-
|
12
|
+
date: 2016-06-15 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|
@@ -31,14 +31,14 @@ dependencies:
|
|
31
31
|
requirements:
|
32
32
|
- - '='
|
33
33
|
- !ruby/object:Gem::Version
|
34
|
-
version: 10.0.
|
34
|
+
version: 10.0.1
|
35
35
|
type: :runtime
|
36
36
|
prerelease: false
|
37
37
|
version_requirements: !ruby/object:Gem::Requirement
|
38
38
|
requirements:
|
39
39
|
- - '='
|
40
40
|
- !ruby/object:Gem::Version
|
41
|
-
version: 10.0.
|
41
|
+
version: 10.0.1
|
42
42
|
- !ruby/object:Gem::Dependency
|
43
43
|
name: sqlite3
|
44
44
|
requirement: !ruby/object:Gem::Requirement
|
@@ -140,6 +140,7 @@ files:
|
|
140
140
|
- spec/controllers/ip_based_ability_spec.rb
|
141
141
|
- spec/factories.rb
|
142
142
|
- spec/helpers/blacklight_helper_spec.rb
|
143
|
+
- spec/models/content_negotiation/replacing_graph_finder_spec.rb
|
143
144
|
- spec/models/solr_document_spec.rb
|
144
145
|
- spec/models/user_spec.rb
|
145
146
|
- spec/rcov.opts
|
@@ -185,6 +186,7 @@ test_files:
|
|
185
186
|
- spec/controllers/ip_based_ability_spec.rb
|
186
187
|
- spec/factories.rb
|
187
188
|
- spec/helpers/blacklight_helper_spec.rb
|
189
|
+
- spec/models/content_negotiation/replacing_graph_finder_spec.rb
|
188
190
|
- spec/models/solr_document_spec.rb
|
189
191
|
- spec/models/user_spec.rb
|
190
192
|
- spec/rcov.opts
|