active-triples 0.8.0 → 0.8.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/CHANGES.md +6 -0
- data/lib/active_triples/relation.rb +3 -5
- data/lib/active_triples/version.rb +1 -1
- data/spec/active_triples/rdf_source_spec.rb +0 -38
- data/spec/active_triples/relation_spec.rb +2 -49
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4928b254048d00cd2f52d050aea13407ba362425
|
4
|
+
data.tar.gz: 11c44cb9efe80bfc6dd09f6e33a6aee0d288666d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 665fe27ad696dda89568310375194243760cfa22d8761bc10fc40eca9dcd39a81352c840e283e3501c4eb2504bdb1d663efa96138478660f5f9ab3454d3e874f
|
7
|
+
data.tar.gz: ec21704f5faf6aadf57ec45c95bfb64113ef772f3fd48c8e7e26f4ddfa9dd08dfe786cd2039743c7b742d9cf24b600141f5e7dcfd1e1579f2d57fc181e625d8b
|
data/CHANGES.md
CHANGED
@@ -55,13 +55,11 @@ module ActiveTriples
|
|
55
55
|
parent.persist! if parent.persistence_strategy.is_a? ParentStrategy
|
56
56
|
end
|
57
57
|
|
58
|
-
##
|
59
|
-
# Deletes the values for this relation. This removes all triples matching
|
60
|
-
# the basic graph pattern [:rdf_subject :predicate ?object] from the parent
|
61
|
-
# Enumerable.
|
62
58
|
def empty_property
|
63
59
|
parent.query([rdf_subject, predicate, nil]).each_statement do |statement|
|
64
|
-
|
60
|
+
if !uri_class(statement.object) || uri_class(statement.object) == class_for_property
|
61
|
+
parent.delete(statement)
|
62
|
+
end
|
65
63
|
end
|
66
64
|
end
|
67
65
|
|
@@ -146,44 +146,6 @@ describe ActiveTriples::RDFSource do
|
|
146
146
|
it 'sets a value'
|
147
147
|
end
|
148
148
|
|
149
|
-
describe "inheritance" do
|
150
|
-
before do
|
151
|
-
class PrincipalResource
|
152
|
-
include ActiveTriples::RDFSource
|
153
|
-
|
154
|
-
configure type: RDF::FOAF.Agent
|
155
|
-
property :name, predicate: RDF::FOAF.name
|
156
|
-
end
|
157
|
-
|
158
|
-
class UserSource < PrincipalResource
|
159
|
-
configure type: RDF::FOAF.Person
|
160
|
-
end
|
161
|
-
|
162
|
-
class DummySource
|
163
|
-
include ActiveTriples::RDFSource
|
164
|
-
|
165
|
-
property :creator, predicate: RDF::DC.creator
|
166
|
-
end
|
167
|
-
end
|
168
|
-
|
169
|
-
after do
|
170
|
-
Object.send(:remove_const, :PrincipalResource)
|
171
|
-
Object.send(:remove_const, :UserSource)
|
172
|
-
Object.send(:remove_const, :DummySource)
|
173
|
-
end
|
174
|
-
|
175
|
-
let(:dummy) { DummySource.new }
|
176
|
-
let(:bob) { UserSource.new.tap {|u| u.name = "bob"} }
|
177
|
-
let(:sally) { UserSource.new.tap {|u| u.name = "sally"} }
|
178
|
-
|
179
|
-
it "should replace values" do
|
180
|
-
dummy.creator = bob
|
181
|
-
expect(dummy.creator).to eq [bob]
|
182
|
-
dummy.creator = sally
|
183
|
-
expect(dummy.creator).to eq [sally]
|
184
|
-
end
|
185
|
-
end
|
186
|
-
|
187
149
|
describe 'validation' do
|
188
150
|
it { is_expected.to be_valid }
|
189
151
|
|
@@ -3,10 +3,6 @@ require 'rdf/isomorphic'
|
|
3
3
|
|
4
4
|
describe ActiveTriples::Relation do
|
5
5
|
|
6
|
-
subject do
|
7
|
-
described_class.new(double("parent", reflections: []), double("value args"))
|
8
|
-
end
|
9
|
-
|
10
6
|
describe "#rdf_subject" do
|
11
7
|
let(:parent_resource) { double("parent resource", reflections: {}) }
|
12
8
|
|
@@ -45,51 +41,39 @@ describe ActiveTriples::Relation do
|
|
45
41
|
end
|
46
42
|
|
47
43
|
describe "#valid_datatype?" do
|
48
|
-
|
49
|
-
|
50
|
-
end
|
51
|
-
|
44
|
+
subject { described_class.new(double("parent", reflections: []), "value" ) }
|
45
|
+
before { allow(subject.parent).to receive(:rdf_subject) { "parent subject" } }
|
52
46
|
context "the value is not a Resource" do
|
53
47
|
it "should be true if value is a String" do
|
54
48
|
expect(subject.send(:valid_datatype?, "foo")).to be true
|
55
49
|
end
|
56
|
-
|
57
50
|
it "should be true if value is a Symbol" do
|
58
51
|
expect(subject.send(:valid_datatype?, :foo)).to be true
|
59
52
|
end
|
60
|
-
|
61
53
|
it "should be true if the value is a Numeric" do
|
62
54
|
expect(subject.send(:valid_datatype?, 1)).to be true
|
63
55
|
expect(subject.send(:valid_datatype?, 0.1)).to be true
|
64
56
|
end
|
65
|
-
|
66
57
|
it "should be true if the value is a Date" do
|
67
58
|
expect(subject.send(:valid_datatype?, Date.today)).to be true
|
68
59
|
end
|
69
|
-
|
70
60
|
it "should be true if the value is a Time" do
|
71
61
|
expect(subject.send(:valid_datatype?, Time.now)).to be true
|
72
62
|
end
|
73
|
-
|
74
63
|
it "should be true if the value is a boolean" do
|
75
64
|
expect(subject.send(:valid_datatype?, false)).to be true
|
76
65
|
expect(subject.send(:valid_datatype?, true)).to be true
|
77
66
|
end
|
78
67
|
end
|
79
|
-
|
80
68
|
context "the value is a Resource" do
|
81
69
|
after { Object.send(:remove_const, :DummyResource) }
|
82
|
-
|
83
70
|
let(:resource) { DummyResource.new }
|
84
|
-
|
85
71
|
context "and the resource class does not include RDF::Isomorphic" do
|
86
72
|
before { class DummyResource; include ActiveTriples::RDFSource; end }
|
87
|
-
|
88
73
|
it "should be false" do
|
89
74
|
expect(subject.send(:valid_datatype?, resource)).to be false
|
90
75
|
end
|
91
76
|
end
|
92
|
-
|
93
77
|
context "and the resource class includes RDF:Isomorphic" do
|
94
78
|
before do
|
95
79
|
class DummyResource
|
@@ -97,12 +81,10 @@ describe ActiveTriples::Relation do
|
|
97
81
|
include RDF::Isomorphic
|
98
82
|
end
|
99
83
|
end
|
100
|
-
|
101
84
|
it "should be false" do
|
102
85
|
expect(subject.send(:valid_datatype?, resource)).to be false
|
103
86
|
end
|
104
87
|
end
|
105
|
-
|
106
88
|
context "and the resource class includes RDF::Isomorphic and aliases :== to :isomorphic_with?" do
|
107
89
|
before do
|
108
90
|
class DummyResource
|
@@ -111,7 +93,6 @@ describe ActiveTriples::Relation do
|
|
111
93
|
alias_method :==, :isomorphic_with?
|
112
94
|
end
|
113
95
|
end
|
114
|
-
|
115
96
|
it "should be false" do
|
116
97
|
expect(subject.send(:valid_datatype?, resource)).to be false
|
117
98
|
end
|
@@ -119,32 +100,4 @@ describe ActiveTriples::Relation do
|
|
119
100
|
end
|
120
101
|
end
|
121
102
|
|
122
|
-
describe '#empty_property' do
|
123
|
-
|
124
|
-
before { resource << RDF::Statement(resource, property, 'value') }
|
125
|
-
|
126
|
-
subject { described_class.new(resource, value_args) }
|
127
|
-
let(:resource) { ActiveTriples::Resource.new }
|
128
|
-
let(:property) { RDF::URI.new('http://example.com/moomin') }
|
129
|
-
|
130
|
-
let(:value_args) do
|
131
|
-
double('value args',
|
132
|
-
length: 1,
|
133
|
-
first: 'first',
|
134
|
-
last: property)
|
135
|
-
end
|
136
|
-
|
137
|
-
it 'deletes values from property' do
|
138
|
-
expect { subject.empty_property }.to change { subject.result }
|
139
|
-
.from(['value']).to([])
|
140
|
-
end
|
141
|
-
|
142
|
-
it 'deletes multiple values from property' do
|
143
|
-
values = [Date.today, 'value2', RDF::Node.new, true]
|
144
|
-
resource.set_value(property, values)
|
145
|
-
|
146
|
-
expect { subject.empty_property }.to change { subject.result }
|
147
|
-
.from(values).to([])
|
148
|
-
end
|
149
|
-
end
|
150
103
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: active-triples
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.8.
|
4
|
+
version: 0.8.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tom Johnson
|
@@ -281,7 +281,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
281
281
|
version: '0'
|
282
282
|
requirements: []
|
283
283
|
rubyforge_project:
|
284
|
-
rubygems_version: 2.
|
284
|
+
rubygems_version: 2.4.5
|
285
285
|
signing_key:
|
286
286
|
specification_version: 4
|
287
287
|
summary: RDF graphs in ActiveModel wrappers.
|