active-fedora 7.3.1 → 8.0.0.rc1
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 +17 -7
- data/Gemfile +0 -3
- data/active-fedora.gemspec +5 -5
- data/gemfiles/rails3.gemfile +5 -0
- data/gemfiles/rails4.1.gemfile +5 -0
- data/gemfiles/rails4.gemfile +5 -0
- data/lib/active_fedora.rb +1 -1
- data/lib/active_fedora/associations/belongs_to_association.rb +8 -21
- data/lib/active_fedora/attributes.rb +13 -12
- data/lib/active_fedora/base.rb +1 -1
- data/lib/active_fedora/datastream.rb +3 -6
- data/lib/active_fedora/indexing.rb +1 -1
- data/lib/active_fedora/om_datastream.rb +1 -5
- data/lib/active_fedora/predicates.rb +2 -2
- data/lib/active_fedora/rdf.rb +6 -2
- data/lib/active_fedora/rdf/fcrepo.rb +326 -0
- data/lib/active_fedora/rdf/identifiable.rb +6 -3
- data/lib/active_fedora/rdf/indexing.rb +3 -15
- data/lib/active_fedora/rdf/persistence.rb +33 -0
- data/lib/active_fedora/rdf/project_hydra.rb +12 -0
- data/lib/active_fedora/rdf/rdf_datastream.rb +33 -15
- data/lib/active_fedora/rdf_xml_writer.rb +2 -2
- data/lib/active_fedora/relationship_graph.rb +8 -8
- data/lib/active_fedora/semantic_node.rb +3 -15
- data/lib/active_fedora/solr_digital_object.rb +2 -2
- data/lib/active_fedora/solr_service.rb +1 -8
- data/lib/active_fedora/version.rb +1 -1
- data/lib/generators/active_fedora/config/fedora/templates/fedora.yml +24 -0
- data/lib/tasks/active_fedora_dev.rake +1 -1
- data/spec/integration/belongs_to_association_spec.rb +0 -5
- data/spec/integration/json_serialization_spec.rb +1 -1
- data/spec/integration/load_from_solr_spec.rb +8 -1
- data/spec/integration/ntriples_datastream_spec.rb +18 -18
- data/spec/integration/om_datastream_spec.rb +2 -2
- data/spec/integration/rdf_nested_attributes_spec.rb +1 -1
- data/spec/integration/relation_delegation_spec.rb +3 -3
- data/spec/samples/hydra-mods_article_datastream.rb +0 -4
- data/spec/support/an_active_model.rb +0 -4
- data/spec/unit/active_fedora_spec.rb +3 -3
- data/spec/unit/attributes_spec.rb +37 -54
- data/spec/unit/base_extra_spec.rb +0 -9
- data/spec/unit/om_datastream_spec.rb +14 -14
- data/spec/unit/rdf_resource_datastream_spec.rb +59 -9
- data/spec/unit/rdf_vocab_spec.rb +30 -0
- data/spec/unit/solr_digital_object_spec.rb +2 -2
- data/spec/unit/solr_service_spec.rb +0 -6
- data/spec/unit/validations_spec.rb +4 -4
- metadata +27 -32
- data/lib/active_fedora/rdf/object_resource.rb +0 -20
@@ -66,7 +66,7 @@ describe ActiveFedora::RDFDatastream do
|
|
66
66
|
end
|
67
67
|
|
68
68
|
it "should set values" do
|
69
|
-
subject.title = "blah"
|
69
|
+
subject.title = ["blah"]
|
70
70
|
expect(subject.descMetadata.title).to eq ["blah"]
|
71
71
|
end
|
72
72
|
|
@@ -105,7 +105,7 @@ describe ActiveFedora::RDFDatastream do
|
|
105
105
|
end
|
106
106
|
|
107
107
|
it "should be persisted" do
|
108
|
-
expect(subject.descMetadata.resource.persisted?).to
|
108
|
+
expect(subject.descMetadata.resource.persisted?).to be true
|
109
109
|
end
|
110
110
|
|
111
111
|
context "and it's reloaded" do
|
@@ -146,7 +146,7 @@ describe ActiveFedora::RDFDatastream do
|
|
146
146
|
context "persisted to parent" do
|
147
147
|
before do
|
148
148
|
dummy = DummySubnode.new
|
149
|
-
dummy.title = 'subbla'
|
149
|
+
dummy.title = ['subbla']
|
150
150
|
subject.descMetadata.license = dummy
|
151
151
|
end
|
152
152
|
|
@@ -163,7 +163,7 @@ describe ActiveFedora::RDFDatastream do
|
|
163
163
|
DummySubnode.configure :repository => :default
|
164
164
|
DummySubnode.any_instance.stub(:repository).and_return(RDF::Repository.new)
|
165
165
|
dummy = DummySubnode.new(RDF::URI('http://example.org/dummy/blah'))
|
166
|
-
dummy.title = 'subbla'
|
166
|
+
dummy.title = ['subbla']
|
167
167
|
# We want to have to manually persist to the repository.
|
168
168
|
# Parent objects shouldn't be persisting children they share with other parents
|
169
169
|
dummy.persist!
|
@@ -196,9 +196,9 @@ describe ActiveFedora::RDFDatastream do
|
|
196
196
|
describe "relationships" do
|
197
197
|
before do
|
198
198
|
@new_object = DummyAsset.new
|
199
|
-
@new_object.title = "subbla"
|
199
|
+
@new_object.title = ["subbla"]
|
200
200
|
@new_object.save
|
201
|
-
subject.title = "bla"
|
201
|
+
subject.title = ["bla"]
|
202
202
|
subject.descMetadata.creator = @new_object
|
203
203
|
end
|
204
204
|
|
@@ -224,7 +224,7 @@ describe ActiveFedora::RDFDatastream do
|
|
224
224
|
end
|
225
225
|
|
226
226
|
it "should allow for deep attributes to be set directly" do
|
227
|
-
subject.descMetadata.creator.first.title = "Bla"
|
227
|
+
subject.descMetadata.creator.first.title = ["Bla"]
|
228
228
|
expect(subject.descMetadata.creator.first.title).to eq ["Bla"]
|
229
229
|
end
|
230
230
|
|
@@ -270,12 +270,12 @@ describe ActiveFedora::RDFDatastream do
|
|
270
270
|
context 'when the object has no Rdf::Resource' do
|
271
271
|
before do
|
272
272
|
class DummyOmAsset < ActiveFedora::Base
|
273
|
-
has_metadata :name => 'descMetadata', :type => OmDatastream
|
273
|
+
has_metadata :name => 'descMetadata', :type => ActiveFedora::OmDatastream
|
274
274
|
end
|
275
275
|
|
276
276
|
@new_object = DummyOmAsset.new
|
277
277
|
@new_object.save
|
278
|
-
subject.title = "bla"
|
278
|
+
subject.title = ["bla"]
|
279
279
|
subject.descMetadata.creator = @new_object
|
280
280
|
subject.save
|
281
281
|
subject.reload
|
@@ -293,6 +293,56 @@ describe ActiveFedora::RDFDatastream do
|
|
293
293
|
expect{@new_object.resource << RDF::Statement.new(RDF::Node.new, RDF::DC.title, 'title')
|
294
294
|
}.to raise_error TypeError
|
295
295
|
end
|
296
|
+
end
|
297
|
+
end
|
298
|
+
|
299
|
+
context 'with custom resource' do
|
300
|
+
before do
|
301
|
+
|
302
|
+
class DummyATResource < ActiveTriples::Resource
|
303
|
+
configure :base_uri => 'http://example.org/at/obj#', :type => RDF::OWL.Thing
|
304
|
+
property :title, :predicate => RDF::DC.alternative
|
305
|
+
property :my_special_property, :predicate => RDF::DC.spatial
|
306
|
+
end
|
307
|
+
|
308
|
+
DummyResource.resource_class DummyATResource
|
309
|
+
end
|
310
|
+
|
311
|
+
after do
|
312
|
+
Object.send(:remove_const, "DummyATResource")
|
313
|
+
end
|
314
|
+
|
315
|
+
it 'lets me specify a resource class' do
|
316
|
+
expect(DummyResource.resource_class < DummyATResource).to be_true
|
317
|
+
end
|
318
|
+
|
319
|
+
it 'creates underlying resource of type resource_class' do
|
320
|
+
expect(subject.resource).to be_a DummyATResource
|
321
|
+
end
|
322
|
+
|
323
|
+
it 'has properties from resource_class' do
|
324
|
+
expect(subject.resource.class.properties).to include :my_special_property.to_s
|
325
|
+
end
|
326
|
+
|
327
|
+
it 'favors property configuration from datastream' do
|
328
|
+
expect(subject.resource.class.properties['title'].predicate).to eq RDF::DC.title
|
329
|
+
end
|
330
|
+
|
331
|
+
it 'exposes resource propreties to parent object via datastream' do
|
332
|
+
subject.resource.title = 'Wizard of Oz'
|
333
|
+
expect(subject.title).to eq subject.resource.title
|
334
|
+
end
|
335
|
+
|
336
|
+
it 'applies base_uri from resource class' do
|
337
|
+
expect(subject.resource.class.base_uri).to eq DummyATResource.base_uri
|
338
|
+
end
|
339
|
+
|
340
|
+
it 'applies rdf type from resource class' do
|
341
|
+
expect(subject.resource.class.type).to eq DummyATResource.type
|
342
|
+
end
|
343
|
+
|
344
|
+
it 'refuses to change resource_class once set' do
|
345
|
+
expect { DummyResource.resource_class(ActiveTriples::Resource) }.to raise_error ArgumentError
|
296
346
|
end
|
297
347
|
end
|
298
348
|
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
describe ActiveFedora::RDF do
|
5
|
+
describe ActiveFedora::RDF::Fcrepo do
|
6
|
+
it "should register the vocabularies" do
|
7
|
+
namespaces = [
|
8
|
+
"info:fedora/fedora-system:def/model#",
|
9
|
+
"info:fedora/fedora-system:def/view#",
|
10
|
+
"info:fedora/fedora-system:def/relations-external#",
|
11
|
+
"info:fedora/fedora-system:"
|
12
|
+
]
|
13
|
+
namespaces.each do |namespace|
|
14
|
+
vocab = RDF::Vocabulary.find(namespace)
|
15
|
+
expect(vocab.superclass).to be(RDF::StrictVocabulary)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
describe ActiveFedora::RDF::ProjectHydra do
|
20
|
+
it "should register the vocabularies" do
|
21
|
+
namespaces = [
|
22
|
+
"http://projecthydra.org/ns/relations#"
|
23
|
+
]
|
24
|
+
namespaces.each do |namespace|
|
25
|
+
vocab = RDF::Vocabulary.find(namespace)
|
26
|
+
expect(vocab.superclass).to be(RDF::StrictVocabulary)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -47,10 +47,10 @@ describe ActiveFedora::SolrDigitalObject do
|
|
47
47
|
expect(subject.fetch('author')).to be_empty
|
48
48
|
end
|
49
49
|
it "should grab values" do
|
50
|
-
expect(subject.fetch('title')).to eq 'foo'
|
50
|
+
expect(subject.fetch('title')).to eq ['foo']
|
51
51
|
end
|
52
52
|
it "should grab values" do
|
53
|
-
expect(subject.fetch('title')).to eq 'foo'
|
53
|
+
expect(subject.fetch('title')).to eq ['foo']
|
54
54
|
end
|
55
55
|
|
56
56
|
it "should raise an error if the field isn't indexed" do
|
@@ -109,12 +109,6 @@ describe ActiveFedora::SolrService do
|
|
109
109
|
end
|
110
110
|
end
|
111
111
|
|
112
|
-
describe '#escape_uri_for_query' do
|
113
|
-
it "should escape : with a backslash" do
|
114
|
-
ActiveFedora::SolrService.escape_uri_for_query("my:pid").should == 'my\:pid'
|
115
|
-
end
|
116
|
-
end
|
117
|
-
|
118
112
|
describe ".query" do
|
119
113
|
it "should call solr" do
|
120
114
|
mock_conn = double("Connection")
|
@@ -24,14 +24,14 @@ describe ActiveFedora::Base do
|
|
24
24
|
|
25
25
|
describe "a valid object" do
|
26
26
|
before do
|
27
|
-
subject.attributes={ fubar:'here', swank:'long enough'}
|
27
|
+
subject.attributes = { fubar: ['here'], swank: 'long enough' }
|
28
28
|
end
|
29
29
|
|
30
30
|
it { should be_valid}
|
31
31
|
end
|
32
32
|
describe "an invalid object" do
|
33
33
|
before do
|
34
|
-
subject.attributes={ swank:'smal'}
|
34
|
+
subject.attributes = { swank: 'smal' }
|
35
35
|
end
|
36
36
|
it "should have errors" do
|
37
37
|
subject.should_not be_valid
|
@@ -42,8 +42,8 @@ describe ActiveFedora::Base do
|
|
42
42
|
|
43
43
|
describe "required terms" do
|
44
44
|
it "should be required" do
|
45
|
-
subject.required?(:fubar).should
|
46
|
-
subject.required?(:swank).should
|
45
|
+
subject.required?(:fubar).should be true
|
46
|
+
subject.required?(:swank).should be false
|
47
47
|
end
|
48
48
|
end
|
49
49
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: active-fedora
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 8.0.0.rc1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matt Zumwalt
|
@@ -10,28 +10,22 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2014-12-02 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rsolr
|
17
17
|
requirement: !ruby/object:Gem::Requirement
|
18
18
|
requirements:
|
19
|
-
- - "
|
19
|
+
- - "~>"
|
20
20
|
- !ruby/object:Gem::Version
|
21
21
|
version: 1.0.10
|
22
|
-
- - "<"
|
23
|
-
- !ruby/object:Gem::Version
|
24
|
-
version: '3'
|
25
22
|
type: :runtime
|
26
23
|
prerelease: false
|
27
24
|
version_requirements: !ruby/object:Gem::Requirement
|
28
25
|
requirements:
|
29
|
-
- - "
|
26
|
+
- - "~>"
|
30
27
|
- !ruby/object:Gem::Version
|
31
28
|
version: 1.0.10
|
32
|
-
- - "<"
|
33
|
-
- !ruby/object:Gem::Version
|
34
|
-
version: '3'
|
35
29
|
- !ruby/object:Gem::Dependency
|
36
30
|
name: om
|
37
31
|
requirement: !ruby/object:Gem::Requirement
|
@@ -78,50 +72,44 @@ dependencies:
|
|
78
72
|
name: rubydora
|
79
73
|
requirement: !ruby/object:Gem::Requirement
|
80
74
|
requirements:
|
81
|
-
- - "
|
82
|
-
- !ruby/object:Gem::Version
|
83
|
-
version: 1.8.0
|
84
|
-
- - "<"
|
75
|
+
- - "~>"
|
85
76
|
- !ruby/object:Gem::Version
|
86
|
-
version: '
|
77
|
+
version: '1.8'
|
87
78
|
type: :runtime
|
88
79
|
prerelease: false
|
89
80
|
version_requirements: !ruby/object:Gem::Requirement
|
90
81
|
requirements:
|
91
|
-
- - "
|
92
|
-
- !ruby/object:Gem::Version
|
93
|
-
version: 1.8.0
|
94
|
-
- - "<"
|
82
|
+
- - "~>"
|
95
83
|
- !ruby/object:Gem::Version
|
96
|
-
version: '
|
84
|
+
version: '1.8'
|
97
85
|
- !ruby/object:Gem::Dependency
|
98
86
|
name: active-triples
|
99
87
|
requirement: !ruby/object:Gem::Requirement
|
100
88
|
requirements:
|
101
89
|
- - "~>"
|
102
90
|
- !ruby/object:Gem::Version
|
103
|
-
version: 0.
|
91
|
+
version: 0.4.0
|
104
92
|
type: :runtime
|
105
93
|
prerelease: false
|
106
94
|
version_requirements: !ruby/object:Gem::Requirement
|
107
95
|
requirements:
|
108
96
|
- - "~>"
|
109
97
|
- !ruby/object:Gem::Version
|
110
|
-
version: 0.
|
98
|
+
version: 0.4.0
|
111
99
|
- !ruby/object:Gem::Dependency
|
112
100
|
name: rdf-rdfxml
|
113
101
|
requirement: !ruby/object:Gem::Requirement
|
114
102
|
requirements:
|
115
103
|
- - "~>"
|
116
104
|
- !ruby/object:Gem::Version
|
117
|
-
version:
|
105
|
+
version: 1.1.0
|
118
106
|
type: :runtime
|
119
107
|
prerelease: false
|
120
108
|
version_requirements: !ruby/object:Gem::Requirement
|
121
109
|
requirements:
|
122
110
|
- - "~>"
|
123
111
|
- !ruby/object:Gem::Version
|
124
|
-
version:
|
112
|
+
version: 1.1.0
|
125
113
|
- !ruby/object:Gem::Dependency
|
126
114
|
name: deprecation
|
127
115
|
requirement: !ruby/object:Gem::Requirement
|
@@ -210,16 +198,16 @@ dependencies:
|
|
210
198
|
name: rspec-its
|
211
199
|
requirement: !ruby/object:Gem::Requirement
|
212
200
|
requirements:
|
213
|
-
- - "
|
201
|
+
- - ">="
|
214
202
|
- !ruby/object:Gem::Version
|
215
|
-
version:
|
203
|
+
version: '0'
|
216
204
|
type: :development
|
217
205
|
prerelease: false
|
218
206
|
version_requirements: !ruby/object:Gem::Requirement
|
219
207
|
requirements:
|
220
|
-
- - "
|
208
|
+
- - ">="
|
221
209
|
- !ruby/object:Gem::Version
|
222
|
-
version:
|
210
|
+
version: '0'
|
223
211
|
- !ruby/object:Gem::Dependency
|
224
212
|
name: equivalent-xml
|
225
213
|
requirement: !ruby/object:Gem::Requirement
|
@@ -306,6 +294,9 @@ files:
|
|
306
294
|
- config/solr.yml
|
307
295
|
- config/solr_mappings_af_0.1.yml
|
308
296
|
- config/solr_mappings_bl_2.4.yml
|
297
|
+
- gemfiles/rails3.gemfile
|
298
|
+
- gemfiles/rails4.1.gemfile
|
299
|
+
- gemfiles/rails4.gemfile
|
309
300
|
- lib/active-fedora.rb
|
310
301
|
- lib/active_fedora.rb
|
311
302
|
- lib/active_fedora/association_relation.rb
|
@@ -358,10 +349,12 @@ files:
|
|
358
349
|
- lib/active_fedora/querying.rb
|
359
350
|
- lib/active_fedora/railtie.rb
|
360
351
|
- lib/active_fedora/rdf.rb
|
352
|
+
- lib/active_fedora/rdf/fcrepo.rb
|
361
353
|
- lib/active_fedora/rdf/identifiable.rb
|
362
354
|
- lib/active_fedora/rdf/indexing.rb
|
363
355
|
- lib/active_fedora/rdf/ntriples_rdf_datastream.rb
|
364
|
-
- lib/active_fedora/rdf/
|
356
|
+
- lib/active_fedora/rdf/persistence.rb
|
357
|
+
- lib/active_fedora/rdf/project_hydra.rb
|
365
358
|
- lib/active_fedora/rdf/rdf_datastream.rb
|
366
359
|
- lib/active_fedora/rdf/rdfxml_rdf_datastream.rb
|
367
360
|
- lib/active_fedora/rdf_xml_writer.rb
|
@@ -521,6 +514,7 @@ files:
|
|
521
514
|
- spec/unit/query_spec.rb
|
522
515
|
- spec/unit/rdf_datastream_spec.rb
|
523
516
|
- spec/unit/rdf_resource_datastream_spec.rb
|
517
|
+
- spec/unit/rdf_vocab_spec.rb
|
524
518
|
- spec/unit/rdf_xml_writer_spec.rb
|
525
519
|
- spec/unit/rdfxml_rdf_datastream_spec.rb
|
526
520
|
- spec/unit/relationship_graph_spec.rb
|
@@ -555,13 +549,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
555
549
|
version: 1.9.3
|
556
550
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
557
551
|
requirements:
|
558
|
-
- - "
|
552
|
+
- - ">"
|
559
553
|
- !ruby/object:Gem::Version
|
560
|
-
version:
|
554
|
+
version: 1.3.1
|
561
555
|
requirements: []
|
562
556
|
rubyforge_project:
|
563
|
-
rubygems_version: 2.
|
557
|
+
rubygems_version: 2.2.2
|
564
558
|
signing_key:
|
565
559
|
specification_version: 4
|
566
560
|
summary: A convenience libary for manipulating documents in the Fedora Repository.
|
567
561
|
test_files: []
|
562
|
+
has_rdoc:
|
@@ -1,20 +0,0 @@
|
|
1
|
-
module ActiveFedora::Rdf
|
2
|
-
##
|
3
|
-
# A class of RdfResources to act as the primary/root resource associated
|
4
|
-
# with a Datastream and ActiveFedora::Base object.
|
5
|
-
#
|
6
|
-
# @see ActiveFedora::RDFDatastream
|
7
|
-
class ObjectResource < ActiveTriples::Resource
|
8
|
-
configure :base_uri => 'info:fedora/'
|
9
|
-
attr_accessor :datastream
|
10
|
-
|
11
|
-
def persist!
|
12
|
-
return false unless datastream and datastream.respond_to? :digital_object
|
13
|
-
@persisted ||= datastream.digital_object.save
|
14
|
-
end
|
15
|
-
|
16
|
-
def persisted?
|
17
|
-
@persisted ||= (not datastream.new?)
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|