ldp 0.2.0 → 0.2.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/.travis.yml +5 -0
- data/Gemfile +2 -1
- data/lib/ldp/resource/binary_source.rb +10 -3
- data/lib/ldp/response.rb +12 -1
- data/lib/ldp/version.rb +1 -1
- data/spec/lib/ldp/resource/binary_source_spec.rb +14 -0
- data/spec/lib/ldp/response_spec.rb +30 -2
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a0192dec60a69549a92992ee9a8a17dc7a2e7bea
|
4
|
+
data.tar.gz: 9f1d63533db1609c91b7ca86d807e645a1148343
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a2576375233b5f9c8fb7879e26c187c75a0cb30e740db682d084ebd57f88db616d81efaeb6c04d4289fcb10095fe34dca5199f7936ebc1c65028e08f56bae31d
|
7
|
+
data.tar.gz: 0bcd587f427cefcc0d4d702d57da18389a2b9c602b898a06708d829c28cbfd3a8cb8abff4ed195c7f51d25cd67584a77140d03fbb3f493f6609849bcef1427e6
|
data/.travis.yml
CHANGED
data/Gemfile
CHANGED
@@ -4,20 +4,27 @@ module Ldp
|
|
4
4
|
|
5
5
|
def initialize client, subject, content_or_response = nil, base_path = ''
|
6
6
|
super
|
7
|
-
|
7
|
+
|
8
8
|
case content_or_response
|
9
9
|
when Faraday::Response
|
10
10
|
else
|
11
11
|
@content = content_or_response
|
12
12
|
end
|
13
13
|
end
|
14
|
-
|
14
|
+
|
15
15
|
def content
|
16
16
|
@content ||= get.body
|
17
17
|
end
|
18
|
-
|
18
|
+
|
19
19
|
def described_by
|
20
20
|
client.find_or_initialize Array(Ldp::Response.links(self)["describedby"]).first
|
21
21
|
end
|
22
|
+
|
23
|
+
# Override inspect so that `content` is never shown. It is typically too big to be helpful
|
24
|
+
def inspect
|
25
|
+
string = "#<#{self.class.name}:#{self.object_id} "
|
26
|
+
fields = [:subject].map{|field| "#{field}=\"#{self.send(field)}\""}
|
27
|
+
string << fields.join(", ") << ">"
|
28
|
+
end
|
22
29
|
end
|
23
30
|
end
|
data/lib/ldp/response.rb
CHANGED
@@ -60,6 +60,17 @@ module Ldp
|
|
60
60
|
container?(response) || Array(links(response)["type"]).include?(Ldp.rdf_source)
|
61
61
|
end
|
62
62
|
|
63
|
+
def dup
|
64
|
+
super.tap do |new_resp|
|
65
|
+
new_resp.send(:extend, Ldp::Response)
|
66
|
+
if ::RUBY_VERSION < '2.0'
|
67
|
+
new_resp.send(:remove_instance_variable, :@graph)
|
68
|
+
else
|
69
|
+
new_resp.remove_instance_variable(:@graph)
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
63
74
|
##
|
64
75
|
# Link: headers from the HTTP response
|
65
76
|
def links
|
@@ -109,7 +120,7 @@ module Ldp
|
|
109
120
|
# Get the graph for the resource (or a blank graph if there is no metadata for the resource)
|
110
121
|
def graph
|
111
122
|
@graph ||= begin
|
112
|
-
raise UnexpectedContentType, "The resource #{page_subject} is not an RDFSource" unless rdf_source?
|
123
|
+
raise UnexpectedContentType, "The resource at #{page_subject} is not an RDFSource" unless rdf_source?
|
113
124
|
graph = RDF::Graph.new
|
114
125
|
|
115
126
|
if resource?
|
data/lib/ldp/version.rb
CHANGED
@@ -0,0 +1,14 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Ldp::Resource::BinarySource do
|
4
|
+
let(:client) { double }
|
5
|
+
let(:uri) { 'http://example.com/foo/bar' }
|
6
|
+
let(:content) { 'somecontent' }
|
7
|
+
subject { described_class.new(client, uri, content) }
|
8
|
+
|
9
|
+
it "should not display content to inspect" do
|
10
|
+
expect(subject.inspect).to match /subject=\"http:\/\/example\.com\/foo\/bar\"/
|
11
|
+
expect(subject.inspect).not_to match /somecontent/
|
12
|
+
end
|
13
|
+
|
14
|
+
end
|
@@ -4,7 +4,7 @@ describe Ldp::Response do
|
|
4
4
|
LDP_RDF_RESOURCE_HEADERS = { "Link" => "<#{Ldp.resource.to_s}>;rel=\"type\", <#{Ldp.direct_container.to_s}>;rel=\"type\""}
|
5
5
|
LDP_NON_RDF_SOURCE_HEADERS = { "Link" => "<#{Ldp.resource.to_s}>;rel=\"type\", <#{Ldp.non_rdf_source.to_s}>;rel=\"type\""}
|
6
6
|
|
7
|
-
let(:mock_response) { double(headers: {}, env: { url: "info:a" }) }
|
7
|
+
let(:mock_response) { double("mock response", headers: {}, env: { url: "info:a" }) }
|
8
8
|
let(:mock_client) { double(Ldp::Client) }
|
9
9
|
|
10
10
|
subject do
|
@@ -18,6 +18,34 @@ describe Ldp::Response do
|
|
18
18
|
end
|
19
19
|
end
|
20
20
|
|
21
|
+
describe "#dup" do
|
22
|
+
let(:simple_container_graph) { "<> a <http://www.w3.org/ns/ldp#Container> ." }
|
23
|
+
let(:link) { ["<http://www.w3.org/ns/ldp#Resource>;rel=\"type\"","<http://www.w3.org/ns/ldp#BasicContainer>;rel=\"type\""] }
|
24
|
+
|
25
|
+
let(:conn_stubs) do
|
26
|
+
Faraday::Adapter::Test::Stubs.new do |stub|
|
27
|
+
stub.get('/a_container') { [200, {"Link" => link}, simple_container_graph] }
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
let(:mock_conn) { Faraday.new { |builder| builder.adapter :test, conn_stubs } }
|
32
|
+
let(:client) { Ldp::Client.new mock_conn }
|
33
|
+
let(:raw_response) { client.get "a_container" }
|
34
|
+
|
35
|
+
let(:response) { Ldp::Response.wrap mock_client, raw_response }
|
36
|
+
subject { response.dup }
|
37
|
+
it { is_expected.to respond_to :links }
|
38
|
+
|
39
|
+
it "should not have duplicated the graph" do
|
40
|
+
expect(response.graph.object_id).not_to eq subject.graph.object_id
|
41
|
+
end
|
42
|
+
|
43
|
+
it "should have duplicated the body" do
|
44
|
+
expect(response.body.object_id).to eq subject.body.object_id
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
|
21
49
|
describe ".links" do
|
22
50
|
it "should extract link headers with relations as a hash" do
|
23
51
|
allow(mock_response).to receive(:headers).and_return(
|
@@ -26,7 +54,7 @@ describe Ldp::Response do
|
|
26
54
|
"<abc>;rel=\"some-multi-rel\"",
|
27
55
|
"<123>;rel=\"some-multi-rel\"",
|
28
56
|
"<vanilla-link>"
|
29
|
-
]
|
57
|
+
]
|
30
58
|
)
|
31
59
|
h = Ldp::Response.links mock_response
|
32
60
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ldp
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chris Beer
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-01-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|
@@ -142,6 +142,7 @@ files:
|
|
142
142
|
- spec/lib/integration/integration_spec.rb
|
143
143
|
- spec/lib/ldp/client_spec.rb
|
144
144
|
- spec/lib/ldp/orm/orm_spec.rb
|
145
|
+
- spec/lib/ldp/resource/binary_source_spec.rb
|
145
146
|
- spec/lib/ldp/resource/rdf_source_spec.rb
|
146
147
|
- spec/lib/ldp/resource_spec.rb
|
147
148
|
- spec/lib/ldp/response_spec.rb
|
@@ -174,6 +175,7 @@ test_files:
|
|
174
175
|
- spec/lib/integration/integration_spec.rb
|
175
176
|
- spec/lib/ldp/client_spec.rb
|
176
177
|
- spec/lib/ldp/orm/orm_spec.rb
|
178
|
+
- spec/lib/ldp/resource/binary_source_spec.rb
|
177
179
|
- spec/lib/ldp/resource/rdf_source_spec.rb
|
178
180
|
- spec/lib/ldp/resource_spec.rb
|
179
181
|
- spec/lib/ldp/response_spec.rb
|