active-fedora 11.0.0.rc6 → 11.0.0.rc7
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/active-fedora.gemspec +0 -3
- data/lib/active_fedora.rb +0 -10
- data/lib/active_fedora/associations/has_many_association.rb +1 -1
- data/lib/active_fedora/attributes.rb +1 -1
- data/lib/active_fedora/base.rb +3 -7
- data/lib/active_fedora/querying.rb +1 -1
- data/lib/active_fedora/rdf.rb +0 -1
- data/lib/active_fedora/version.rb +1 -1
- data/spec/integration/attached_files_spec.rb +14 -4
- data/spec/integration/file_spec.rb +22 -23
- data/spec/integration/versionable_spec.rb +0 -254
- data/spec/spec_helper.rb +0 -7
- data/spec/unit/attached_files_spec.rb +10 -7
- data/spec/unit/base_spec.rb +3 -1
- data/spec/unit/has_many_association_spec.rb +23 -8
- data/spec/unit/inheritance_spec.rb +11 -7
- data/spec/unit/model_classifier_spec.rb +1 -1
- data/spec/unit/rdf/indexing_service_spec.rb +9 -9
- data/spec/unit/solr_config_options_spec.rb +12 -15
- metadata +2 -67
- data/lib/active_fedora/datastreams.rb +0 -6
- data/lib/active_fedora/datastreams/nokogiri_datastreams.rb +0 -119
- data/lib/active_fedora/nom_datastream.rb +0 -73
- data/lib/active_fedora/om_datastream.rb +0 -118
- data/lib/active_fedora/qualified_dublin_core_datastream.rb +0 -158
- data/lib/active_fedora/rdf/datastream_indexing.rb +0 -49
- data/lib/active_fedora/rdf/ntriples_rdf_datastream.rb +0 -13
- data/lib/active_fedora/rdf/rdf_datastream.rb +0 -173
- data/lib/active_fedora/rdf/rdfxml_datastream.rb +0 -13
- data/spec/integration/complex_rdf_datastream_spec.rb +0 -227
- data/spec/integration/datastream_rdf_nested_attributes_spec.rb +0 -180
- data/spec/integration/ntriples_datastream_spec.rb +0 -215
- data/spec/integration/om_datastream_spec.rb +0 -78
- data/spec/samples/hydra-mods_article_datastream.rb +0 -515
- data/spec/samples/models/mods_article.rb +0 -9
- data/spec/samples/samples.rb +0 -2
- data/spec/unit/nom_datastream_spec.rb +0 -60
- data/spec/unit/ntriples_datastream_spec.rb +0 -167
- data/spec/unit/om_datastream_spec.rb +0 -294
- data/spec/unit/qualified_dublin_core_datastream_spec.rb +0 -119
- data/spec/unit/rdf_datastream_spec.rb +0 -84
- data/spec/unit/rdf_resource_datastream_spec.rb +0 -208
- data/spec/unit/rdfxml_datastream_spec.rb +0 -106
data/spec/spec_helper.rb
CHANGED
@@ -24,7 +24,6 @@ ActiveFedora::Base.logger.level = Logger::WARN
|
|
24
24
|
# HttpLogger.log_headers = true
|
25
25
|
|
26
26
|
Dir[File.expand_path("../support/**/*.rb", __FILE__)].each { |f| require f }
|
27
|
-
require 'samples/samples'
|
28
27
|
|
29
28
|
$VERBOSE = nil
|
30
29
|
|
@@ -37,12 +36,6 @@ restore_spec_configuration
|
|
37
36
|
|
38
37
|
require 'active_fedora/cleaner'
|
39
38
|
RSpec.configure do |config|
|
40
|
-
config.before(:suite) do
|
41
|
-
ActiveFedora::RDFDatastream.deprecation_behavior = :silence
|
42
|
-
ActiveFedora::NtriplesRDFDatastream.deprecation_behavior = :silence
|
43
|
-
ActiveFedora::OmDatastream.deprecation_behavior = :silence
|
44
|
-
ActiveFedora::NomDatastream.deprecation_behavior = :silence
|
45
|
-
end
|
46
39
|
# Stub out test stuff.
|
47
40
|
config.before(:each) do
|
48
41
|
begin
|
@@ -4,17 +4,20 @@ describe ActiveFedora::AttachedFiles do
|
|
4
4
|
subject(:af_base) { ActiveFedora::Base.new }
|
5
5
|
describe "has_subresource" do
|
6
6
|
before do
|
7
|
-
class
|
7
|
+
class Sample1 < ActiveFedora::File
|
8
|
+
end
|
9
|
+
class Sample2 < ActiveFedora::File
|
8
10
|
end
|
9
11
|
class FooHistory < ActiveFedora::Base
|
10
|
-
has_subresource 'dsid', class_name: '
|
11
|
-
has_subresource 'complex_ds', autocreate: true, class_name: '
|
12
|
+
has_subresource 'dsid', class_name: 'Sample2'
|
13
|
+
has_subresource 'complex_ds', autocreate: true, class_name: 'Sample1'
|
12
14
|
has_subresource 'thumbnail'
|
13
15
|
has_subresource 'child_resource', class_name: 'ActiveFedora::Base'
|
14
16
|
end
|
15
17
|
end
|
16
18
|
after do
|
17
|
-
Object.send(:remove_const, :
|
19
|
+
Object.send(:remove_const, :Sample1)
|
20
|
+
Object.send(:remove_const, :Sample2)
|
18
21
|
Object.send(:remove_const, :FooHistory)
|
19
22
|
end
|
20
23
|
|
@@ -26,12 +29,12 @@ describe ActiveFedora::AttachedFiles do
|
|
26
29
|
|
27
30
|
it "lets you override defaults" do
|
28
31
|
expect(FooHistory.child_resource_reflections[:complex_ds].options).to include(autocreate: true)
|
29
|
-
expect(FooHistory.child_resource_reflections[:complex_ds].class_name).to eq '
|
32
|
+
expect(FooHistory.child_resource_reflections[:complex_ds].class_name).to eq 'Sample1'
|
30
33
|
end
|
31
34
|
|
32
35
|
it "raises an error if you don't give a dsid" do
|
33
|
-
expect { FooHistory.has_subresource nil, type:
|
34
|
-
|
36
|
+
expect { FooHistory.has_subresource nil, type: Sample2 }.to raise_error ArgumentError,
|
37
|
+
"You must provide a path name (f.k.a. dsid) for the resource"
|
35
38
|
end
|
36
39
|
end
|
37
40
|
|
data/spec/unit/base_spec.rb
CHANGED
@@ -100,11 +100,13 @@ describe ActiveFedora::Base do
|
|
100
100
|
class SpecialThing < ActiveFedora::Base
|
101
101
|
end
|
102
102
|
end
|
103
|
+
|
103
104
|
after do
|
104
105
|
Object.send(:remove_const, :SpecialThing)
|
105
106
|
end
|
107
|
+
|
106
108
|
it "records the decendants" do
|
107
|
-
expect(described_class.descendants).to include(
|
109
|
+
expect(described_class.descendants).to include(SpecialThing)
|
108
110
|
end
|
109
111
|
end
|
110
112
|
|
@@ -32,19 +32,34 @@ describe ActiveFedora::Associations::HasManyAssociation do
|
|
32
32
|
end
|
33
33
|
end
|
34
34
|
|
35
|
-
describe "
|
36
|
-
before do
|
37
|
-
# :books must come first, so that we can test that is being passed over in favor of :contents
|
38
|
-
Page.has_many :books, predicate: ActiveFedora::RDF::Fcrepo::RelsExt.isPartOf, class_name: 'ActiveFedora::Base'
|
39
|
-
Page.has_and_belongs_to_many :contents, predicate: ActiveFedora::RDF::Fcrepo::RelsExt.isPartOf, class_name: 'ActiveFedora::Base'
|
40
|
-
end
|
35
|
+
describe "#find_polymorphic_inverse" do
|
41
36
|
let(:book_reflection) { ActiveFedora::Reflection.create(:has_many, 'pages', nil, { predicate: ActiveFedora::RDF::Fcrepo::RelsExt.isPartOf }, Book) }
|
42
37
|
let(:association) { described_class.new(book, book_reflection) }
|
43
38
|
|
44
39
|
subject(:af_page) { association.send(:find_polymorphic_inverse, page) }
|
45
40
|
|
46
|
-
|
47
|
-
|
41
|
+
context "when a has_many is present" do
|
42
|
+
before do
|
43
|
+
# :books must come first, so that we can test that is being passed over in favor of :contents
|
44
|
+
Page.has_many :books, predicate: ActiveFedora::RDF::Fcrepo::RelsExt.isPartOf, class_name: 'ActiveFedora::Base'
|
45
|
+
Page.has_and_belongs_to_many :contents, predicate: ActiveFedora::RDF::Fcrepo::RelsExt.isPartOf, class_name: 'ActiveFedora::Base'
|
46
|
+
end
|
47
|
+
|
48
|
+
it "finds the HABTM reflection" do
|
49
|
+
expect(af_page.name).to eq :contents
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
context "when multiple belongs_to are present" do
|
54
|
+
before do
|
55
|
+
# :foo must come first, so that we can test that is being passed over in favor of :bar
|
56
|
+
Page.belongs_to :foo, predicate: ::RDF::Vocab::DC.isPartOf, class_name: 'ActiveFedora::Base'
|
57
|
+
Page.belongs_to :bar, predicate: ActiveFedora::RDF::Fcrepo::RelsExt.isPartOf, class_name: 'ActiveFedora::Base'
|
58
|
+
end
|
59
|
+
|
60
|
+
it "finds the belongs_to reflection" do
|
61
|
+
expect(af_page.name).to eq :bar
|
62
|
+
end
|
48
63
|
end
|
49
64
|
end
|
50
65
|
|
@@ -2,28 +2,32 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
describe ActiveFedora::Base do
|
4
4
|
before do
|
5
|
-
class MyDS < ActiveFedora::
|
5
|
+
class MyDS < ActiveFedora::File
|
6
6
|
end
|
7
|
+
|
8
|
+
class MySample < ActiveFedora::File
|
9
|
+
end
|
10
|
+
|
7
11
|
class Foo < ActiveFedora::Base
|
8
12
|
has_subresource 'foostream', class_name: 'MyDS'
|
9
|
-
has_subresource 'dcstream', class_name: '
|
13
|
+
has_subresource 'dcstream', class_name: 'MySample'
|
10
14
|
end
|
15
|
+
|
11
16
|
class Bar < ActiveFedora::Base
|
12
17
|
has_subresource 'barstream', class_name: 'MyDS'
|
13
18
|
end
|
14
19
|
end
|
20
|
+
let(:f) { Foo.new }
|
21
|
+
subject(:attached_files) { f.attached_files }
|
15
22
|
|
16
23
|
it "doesn't overwrite stream specs" do
|
17
|
-
|
18
|
-
expect(f.attached_files.size).to eq 2
|
19
|
-
streams = f.attached_files.values.map { |x| x.class.to_s }.sort
|
20
|
-
expect(streams.pop).to eq "MyDS"
|
21
|
-
expect(streams.pop).to eq "ActiveFedora::QualifiedDublinCoreDatastream"
|
24
|
+
expect(attached_files.values).to match_array [MyDS, MySample]
|
22
25
|
end
|
23
26
|
|
24
27
|
after do
|
25
28
|
Object.send(:remove_const, :Bar)
|
26
29
|
Object.send(:remove_const, :Foo)
|
27
30
|
Object.send(:remove_const, :MyDS)
|
31
|
+
Object.send(:remove_const, :MySample)
|
28
32
|
end
|
29
33
|
end
|
@@ -15,7 +15,7 @@ describe ActiveFedora::ModelClassifier do
|
|
15
15
|
|
16
16
|
describe ".class_from_string" do
|
17
17
|
it "returns class constants based on strings" do
|
18
|
-
expect(described_class.class_from_string("
|
18
|
+
expect(described_class.class_from_string("String")).to eq String
|
19
19
|
expect(described_class.class_from_string("ActiveFedora::RDF::IndexingService")).to eq ActiveFedora::RDF::IndexingService
|
20
20
|
expect(described_class.class_from_string("IndexingService", ActiveFedora::RDF)).to eq ActiveFedora::RDF::IndexingService
|
21
21
|
end
|
@@ -2,7 +2,7 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
describe ActiveFedora::RDF::IndexingService do
|
4
4
|
before do
|
5
|
-
class
|
5
|
+
class MyObj < ActiveFedora::Base
|
6
6
|
property :created, predicate: ::RDF::Vocab::DC.created
|
7
7
|
property :title, predicate: ::RDF::Vocab::DC.title
|
8
8
|
property :publisher, predicate: ::RDF::Vocab::DC.publisher
|
@@ -13,17 +13,17 @@ describe ActiveFedora::RDF::IndexingService do
|
|
13
13
|
end
|
14
14
|
|
15
15
|
after do
|
16
|
-
Object.send(:remove_const, :
|
16
|
+
Object.send(:remove_const, :MyObj)
|
17
17
|
end
|
18
18
|
|
19
19
|
let(:f2) do
|
20
|
-
|
21
|
-
obj.created = Date.parse("2012-03-04")
|
22
|
-
obj.title = "Of Mice and Men, The Sequel"
|
23
|
-
obj.publisher = "Bob's Blogtastic Publishing"
|
20
|
+
MyObj.new.tap do |obj|
|
21
|
+
obj.created = [Date.parse("2012-03-04")]
|
22
|
+
obj.title = ["Of Mice and Men, The Sequel"]
|
23
|
+
obj.publisher = ["Bob's Blogtastic Publishing"]
|
24
24
|
obj.based_near = ["Tacoma, WA", "Renton, WA"]
|
25
|
-
obj.related_url = "http://example.org/blogtastic/"
|
26
|
-
obj.rights = "Totally open, y'all"
|
25
|
+
obj.related_url = ["http://example.org/blogtastic/"]
|
26
|
+
obj.rights = ["Totally open, y'all"]
|
27
27
|
end
|
28
28
|
end
|
29
29
|
|
@@ -51,7 +51,7 @@ describe ActiveFedora::RDF::IndexingService do
|
|
51
51
|
end
|
52
52
|
|
53
53
|
before do
|
54
|
-
allow(
|
54
|
+
allow(MyObj).to receive(:index_config).and_return(index_config)
|
55
55
|
end
|
56
56
|
|
57
57
|
let(:indexer) { described_class.new(f2) }
|
@@ -8,9 +8,7 @@ describe ActiveFedora do
|
|
8
8
|
end
|
9
9
|
end
|
10
10
|
|
11
|
-
|
12
|
-
@test_object = ActiveFedora::Base.new
|
13
|
-
end
|
11
|
+
subject(:test_object) { ActiveFedora::Base.new }
|
14
12
|
|
15
13
|
describe ".id_field" do
|
16
14
|
let(:field) { "MY_SAMPLE_ID".freeze }
|
@@ -19,9 +17,9 @@ describe ActiveFedora do
|
|
19
17
|
end
|
20
18
|
|
21
19
|
it "is used by ActiveFedora::Base.to_solr" do
|
22
|
-
allow(
|
23
|
-
expect(
|
24
|
-
expect(
|
20
|
+
allow(test_object).to receive(:id).and_return('changeme:123')
|
21
|
+
expect(test_object.to_solr[field.to_sym]).to eq 'changeme:123'
|
22
|
+
expect(test_object.to_solr[:id]).to be_nil
|
25
23
|
end
|
26
24
|
|
27
25
|
it "is used by ActiveFedora::Base#search_with_conditions" do
|
@@ -43,17 +41,16 @@ describe ActiveFedora do
|
|
43
41
|
end
|
44
42
|
|
45
43
|
it "prevents Base.save from calling update_index if false" do
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
expect(@test_object).to receive(:refresh)
|
51
|
-
@test_object.save
|
44
|
+
allow(test_object).to receive(:new_record?).and_return(false)
|
45
|
+
expect(test_object).to receive(:update_index).never
|
46
|
+
expect(test_object).to receive(:refresh)
|
47
|
+
test_object.save
|
52
48
|
end
|
49
|
+
|
53
50
|
it "prevents Base.delete from deleting the corresponding Solr document if false" do
|
54
|
-
expect(ActiveFedora::SolrService.instance.conn).to receive(:delete).with(
|
55
|
-
expect(
|
56
|
-
|
51
|
+
expect(ActiveFedora::SolrService.instance.conn).to receive(:delete).with(test_object.id).never
|
52
|
+
expect(test_object).to receive(:delete)
|
53
|
+
test_object.delete
|
57
54
|
end
|
58
55
|
end
|
59
56
|
end
|
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: 11.0.0.
|
4
|
+
version: 11.0.0.rc7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matt Zumwalt
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2016-08-
|
13
|
+
date: 2016-08-18 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rsolr
|
@@ -46,34 +46,6 @@ dependencies:
|
|
46
46
|
- - "~>"
|
47
47
|
- !ruby/object:Gem::Version
|
48
48
|
version: '3.4'
|
49
|
-
- !ruby/object:Gem::Dependency
|
50
|
-
name: om
|
51
|
-
requirement: !ruby/object:Gem::Requirement
|
52
|
-
requirements:
|
53
|
-
- - "~>"
|
54
|
-
- !ruby/object:Gem::Version
|
55
|
-
version: '3.1'
|
56
|
-
type: :runtime
|
57
|
-
prerelease: false
|
58
|
-
version_requirements: !ruby/object:Gem::Requirement
|
59
|
-
requirements:
|
60
|
-
- - "~>"
|
61
|
-
- !ruby/object:Gem::Version
|
62
|
-
version: '3.1'
|
63
|
-
- !ruby/object:Gem::Dependency
|
64
|
-
name: nom-xml
|
65
|
-
requirement: !ruby/object:Gem::Requirement
|
66
|
-
requirements:
|
67
|
-
- - ">="
|
68
|
-
- !ruby/object:Gem::Version
|
69
|
-
version: 0.5.1
|
70
|
-
type: :runtime
|
71
|
-
prerelease: false
|
72
|
-
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
requirements:
|
74
|
-
- - ">="
|
75
|
-
- !ruby/object:Gem::Version
|
76
|
-
version: 0.5.1
|
77
49
|
- !ruby/object:Gem::Dependency
|
78
50
|
name: activesupport
|
79
51
|
requirement: !ruby/object:Gem::Requirement
|
@@ -128,20 +100,6 @@ dependencies:
|
|
128
100
|
- - "~>"
|
129
101
|
- !ruby/object:Gem::Version
|
130
102
|
version: 0.10.0
|
131
|
-
- !ruby/object:Gem::Dependency
|
132
|
-
name: rdf-rdfxml
|
133
|
-
requirement: !ruby/object:Gem::Requirement
|
134
|
-
requirements:
|
135
|
-
- - ">="
|
136
|
-
- !ruby/object:Gem::Version
|
137
|
-
version: '0'
|
138
|
-
type: :runtime
|
139
|
-
prerelease: false
|
140
|
-
version_requirements: !ruby/object:Gem::Requirement
|
141
|
-
requirements:
|
142
|
-
- - ">="
|
143
|
-
- !ruby/object:Gem::Version
|
144
|
-
version: '0'
|
145
103
|
- !ruby/object:Gem::Dependency
|
146
104
|
name: deprecation
|
147
105
|
requirement: !ruby/object:Gem::Requirement
|
@@ -445,8 +403,6 @@ files:
|
|
445
403
|
- lib/active_fedora/core.rb
|
446
404
|
- lib/active_fedora/core/fedora_id_translator.rb
|
447
405
|
- lib/active_fedora/core/fedora_uri_translator.rb
|
448
|
-
- lib/active_fedora/datastreams.rb
|
449
|
-
- lib/active_fedora/datastreams/nokogiri_datastreams.rb
|
450
406
|
- lib/active_fedora/default_model_mapper.rb
|
451
407
|
- lib/active_fedora/delegated_attribute.rb
|
452
408
|
- lib/active_fedora/errors.rb
|
@@ -480,9 +436,7 @@ files:
|
|
480
436
|
- lib/active_fedora/log_subscriber.rb
|
481
437
|
- lib/active_fedora/model_classifier.rb
|
482
438
|
- lib/active_fedora/nested_attributes.rb
|
483
|
-
- lib/active_fedora/nom_datastream.rb
|
484
439
|
- lib/active_fedora/null_relation.rb
|
485
|
-
- lib/active_fedora/om_datastream.rb
|
486
440
|
- lib/active_fedora/orders.rb
|
487
441
|
- lib/active_fedora/orders/collection_proxy.rb
|
488
442
|
- lib/active_fedora/orders/list_node.rb
|
@@ -491,22 +445,17 @@ files:
|
|
491
445
|
- lib/active_fedora/pathing.rb
|
492
446
|
- lib/active_fedora/persistence.rb
|
493
447
|
- lib/active_fedora/property.rb
|
494
|
-
- lib/active_fedora/qualified_dublin_core_datastream.rb
|
495
448
|
- lib/active_fedora/query_result_builder.rb
|
496
449
|
- lib/active_fedora/querying.rb
|
497
450
|
- lib/active_fedora/railtie.rb
|
498
451
|
- lib/active_fedora/rake_support.rb
|
499
452
|
- lib/active_fedora/rdf.rb
|
500
|
-
- lib/active_fedora/rdf/datastream_indexing.rb
|
501
453
|
- lib/active_fedora/rdf/fcrepo.rb
|
502
454
|
- lib/active_fedora/rdf/field_map.rb
|
503
455
|
- lib/active_fedora/rdf/field_map_entry.rb
|
504
456
|
- lib/active_fedora/rdf/indexing_service.rb
|
505
|
-
- lib/active_fedora/rdf/ntriples_rdf_datastream.rb
|
506
457
|
- lib/active_fedora/rdf/persistence.rb
|
507
458
|
- lib/active_fedora/rdf/project_hydra.rb
|
508
|
-
- lib/active_fedora/rdf/rdf_datastream.rb
|
509
|
-
- lib/active_fedora/rdf/rdfxml_datastream.rb
|
510
459
|
- lib/active_fedora/reflection.rb
|
511
460
|
- lib/active_fedora/relation.rb
|
512
461
|
- lib/active_fedora/relation/calculations.rb
|
@@ -606,8 +555,6 @@ files:
|
|
606
555
|
- spec/integration/caching_spec.rb
|
607
556
|
- spec/integration/clean_connection_spec.rb
|
608
557
|
- spec/integration/collection_association_spec.rb
|
609
|
-
- spec/integration/complex_rdf_datastream_spec.rb
|
610
|
-
- spec/integration/datastream_rdf_nested_attributes_spec.rb
|
611
558
|
- spec/integration/date_time_properties_spec.rb
|
612
559
|
- spec/integration/delete_all_spec.rb
|
613
560
|
- spec/integration/direct_container_spec.rb
|
@@ -628,8 +575,6 @@ files:
|
|
628
575
|
- spec/integration/marshal_spec.rb
|
629
576
|
- spec/integration/nested_attribute_spec.rb
|
630
577
|
- spec/integration/nested_hash_resources_spec.rb
|
631
|
-
- spec/integration/ntriples_datastream_spec.rb
|
632
|
-
- spec/integration/om_datastream_spec.rb
|
633
578
|
- spec/integration/persistence_spec.rb
|
634
579
|
- spec/integration/query_result_builder_spec.rb
|
635
580
|
- spec/integration/rdf_nested_attributes_spec.rb
|
@@ -641,11 +586,8 @@ files:
|
|
641
586
|
- spec/integration/versionable_spec.rb
|
642
587
|
- spec/integration/with_metadata_spec.rb
|
643
588
|
- spec/rcov.opts
|
644
|
-
- spec/samples/hydra-mods_article_datastream.rb
|
645
|
-
- spec/samples/models/mods_article.rb
|
646
589
|
- spec/samples/oral_history_sample.xml
|
647
590
|
- spec/samples/oral_history_xml.xml
|
648
|
-
- spec/samples/samples.rb
|
649
591
|
- spec/spec.opts
|
650
592
|
- spec/spec_helper.rb
|
651
593
|
- spec/support/an_active_model.rb
|
@@ -690,9 +632,6 @@ files:
|
|
690
632
|
- spec/unit/loadable_from_json_spec.rb
|
691
633
|
- spec/unit/logger_spec.rb
|
692
634
|
- spec/unit/model_classifier_spec.rb
|
693
|
-
- spec/unit/nom_datastream_spec.rb
|
694
|
-
- spec/unit/ntriples_datastream_spec.rb
|
695
|
-
- spec/unit/om_datastream_spec.rb
|
696
635
|
- spec/unit/ordered_spec.rb
|
697
636
|
- spec/unit/orders/list_node_spec.rb
|
698
637
|
- spec/unit/orders/ordered_list_spec.rb
|
@@ -701,15 +640,11 @@ files:
|
|
701
640
|
- spec/unit/persistence_spec.rb
|
702
641
|
- spec/unit/property_predicate_spec.rb
|
703
642
|
- spec/unit/property_spec.rb
|
704
|
-
- spec/unit/qualified_dublin_core_datastream_spec.rb
|
705
643
|
- spec/unit/query_result_builder_spec.rb
|
706
644
|
- spec/unit/query_spec.rb
|
707
645
|
- spec/unit/querying_spec.rb
|
708
646
|
- spec/unit/rdf/indexing_service_spec.rb
|
709
|
-
- spec/unit/rdf_datastream_spec.rb
|
710
|
-
- spec/unit/rdf_resource_datastream_spec.rb
|
711
647
|
- spec/unit/rdf_vocab_spec.rb
|
712
|
-
- spec/unit/rdfxml_datastream_spec.rb
|
713
648
|
- spec/unit/readonly_spec.rb
|
714
649
|
- spec/unit/reflection_spec.rb
|
715
650
|
- spec/unit/rspec_matchers/belong_to_associated_active_fedora_object_matcher_spec.rb
|
@@ -1,119 +0,0 @@
|
|
1
|
-
module ActiveFedora
|
2
|
-
module Datastreams
|
3
|
-
module NokogiriDatastreams
|
4
|
-
extend ActiveSupport::Concern
|
5
|
-
|
6
|
-
module ClassMethods
|
7
|
-
def xml_template
|
8
|
-
Nokogiri::XML::Document.parse("<xml/>")
|
9
|
-
end
|
10
|
-
|
11
|
-
def decorate_ng_xml(xml)
|
12
|
-
xml
|
13
|
-
end
|
14
|
-
end
|
15
|
-
|
16
|
-
def ng_xml
|
17
|
-
@ng_xml ||= begin
|
18
|
-
xml = if new_record?
|
19
|
-
## Load up the template
|
20
|
-
self.class.xml_template
|
21
|
-
else
|
22
|
-
Nokogiri::XML::Document.parse(remote_content)
|
23
|
-
end
|
24
|
-
self.class.decorate_ng_xml xml
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
def ng_xml=(new_xml)
|
29
|
-
# before we set ng_xml, we load the datastream so we know if the new value differs.
|
30
|
-
# TODO reinstate this
|
31
|
-
# local_or_remote_content(true)
|
32
|
-
|
33
|
-
case new_xml
|
34
|
-
when Nokogiri::XML::Document
|
35
|
-
self.content = new_xml.to_xml
|
36
|
-
when Nokogiri::XML::Node
|
37
|
-
## Cast a fragment to a document
|
38
|
-
self.content = new_xml.to_s
|
39
|
-
when String
|
40
|
-
self.content = new_xml
|
41
|
-
else
|
42
|
-
raise TypeError, "You passed a #{new_xml.class} into the ng_xml of the #{dsid} datastream. OmDatastream.ng_xml= only accepts Nokogiri::XML::Document, Nokogiri::XML::Element, Nokogiri::XML::Node, or raw XML (String) as inputs."
|
43
|
-
end
|
44
|
-
end
|
45
|
-
|
46
|
-
def refresh_attributes
|
47
|
-
changed_attributes.clear
|
48
|
-
@ng_xml = nil
|
49
|
-
end
|
50
|
-
|
51
|
-
# don't want content eagerly loaded by proxy, so implementing methods that would be implemented by define_attribute_methods
|
52
|
-
def ng_xml_will_change!
|
53
|
-
changed_attributes['ng_xml'] = nil
|
54
|
-
end
|
55
|
-
|
56
|
-
def ng_xml_doesnt_change!
|
57
|
-
changed_attributes.delete('ng_xml')
|
58
|
-
end
|
59
|
-
|
60
|
-
# don't want content eagerly loaded by proxy, so implementing methods that would be implemented by define_attribute_methods
|
61
|
-
def ng_xml_changed?
|
62
|
-
changed_attributes.key? 'ng_xml'
|
63
|
-
end
|
64
|
-
|
65
|
-
def remote_content
|
66
|
-
@ds_content ||= Nokogiri::XML(super).to_xml(&:no_declaration).strip
|
67
|
-
end
|
68
|
-
|
69
|
-
def content=(new_content)
|
70
|
-
if remote_content != new_content.to_s
|
71
|
-
ng_xml_will_change!
|
72
|
-
@ng_xml = Nokogiri::XML::Document.parse(new_content)
|
73
|
-
super(@ng_xml.to_s.strip)
|
74
|
-
end
|
75
|
-
self.class.decorate_ng_xml @ng_xml
|
76
|
-
end
|
77
|
-
|
78
|
-
def content_changed?
|
79
|
-
return true if autocreate? && new_record?
|
80
|
-
return false unless xml_loaded
|
81
|
-
ng_xml_changed?
|
82
|
-
end
|
83
|
-
|
84
|
-
def to_xml(xml = nil)
|
85
|
-
xml = ng_xml if xml.nil?
|
86
|
-
ng_xml = self.ng_xml
|
87
|
-
if ng_xml.respond_to?(:root) && ng_xml.root.nil? && self.class.respond_to?(:root_property_ref) && !self.class.root_property_ref.nil?
|
88
|
-
ng_xml = self.class.generate(self.class.root_property_ref, "")
|
89
|
-
xml = ng_xml if xml.root.nil?
|
90
|
-
end
|
91
|
-
|
92
|
-
unless xml == ng_xml || ng_xml.root.nil?
|
93
|
-
if xml.is_a?(Nokogiri::XML::Document)
|
94
|
-
xml.root.add_child(ng_xml.root)
|
95
|
-
elsif xml.is_a?(Nokogiri::XML::Node)
|
96
|
-
xml.add_child(ng_xml.root)
|
97
|
-
else
|
98
|
-
raise "You can only pass instances of Nokogiri::XML::Node into this method. You passed in #{xml}"
|
99
|
-
end
|
100
|
-
end
|
101
|
-
|
102
|
-
xml.to_xml.strip
|
103
|
-
end
|
104
|
-
|
105
|
-
def content
|
106
|
-
@content = to_xml if ng_xml_changed? || autocreate?
|
107
|
-
super
|
108
|
-
end
|
109
|
-
|
110
|
-
def autocreate?
|
111
|
-
changed_attributes.key? :profile
|
112
|
-
end
|
113
|
-
|
114
|
-
def xml_loaded
|
115
|
-
instance_variable_defined? :@ng_xml
|
116
|
-
end
|
117
|
-
end
|
118
|
-
end
|
119
|
-
end
|