ddr-models 1.11.8 → 1.12.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/models/component.rb +1 -0
- data/app/models/item.rb +13 -2
- data/config/initializers/active_fedora_base.rb +9 -5
- data/config/initializers/subscriptions.rb +3 -0
- data/config/locales/groups.en.yml +0 -7
- data/lib/ddr/auth/remote_group_service.rb +2 -11
- data/lib/ddr/datastreams.rb +5 -4
- data/lib/ddr/datastreams/{admin_metadata_datastream.rb → administrative_metadata_datastream.rb} +2 -2
- data/lib/ddr/datastreams/descriptive_metadata_datastream.rb +4 -45
- data/lib/ddr/datastreams/metadata_datastream.rb +44 -0
- data/lib/ddr/datastreams/structural_metadata_datastream.rb +24 -0
- data/lib/ddr/events.rb +2 -2
- data/lib/ddr/events/deletion_event.rb +12 -0
- data/lib/ddr/events/event.rb +0 -15
- data/lib/ddr/events/preservation_event_behavior.rb +4 -2
- data/lib/ddr/index_fields.rb +32 -36
- data/lib/ddr/managers/permanent_id_manager.rb +2 -1
- data/lib/ddr/metadata.rb +0 -3
- data/lib/ddr/models.rb +1 -1
- data/lib/ddr/models/base.rb +4 -0
- data/lib/ddr/models/describable.rb +5 -5
- data/lib/ddr/models/has_admin_metadata.rb +1 -1
- data/lib/ddr/models/has_children.rb +1 -5
- data/lib/ddr/models/has_content.rb +10 -0
- data/lib/ddr/models/has_struct_metadata.rb +57 -0
- data/lib/ddr/models/indexing.rb +0 -10
- data/lib/ddr/models/solr_document.rb +1 -5
- data/lib/ddr/models/version.rb +1 -1
- data/lib/ddr/notifications.rb +2 -1
- data/lib/ddr/utils.rb +2 -2
- data/lib/ddr/vocab.rb +3 -0
- data/lib/ddr/vocab/asset.rb +3 -0
- data/lib/ddr/{metadata → vocab}/duke_terms.rb +2 -2
- data/lib/ddr/{metadata → vocab}/rdf_vocabulary_parser.rb +2 -2
- data/lib/ddr/{metadata → vocab}/sources/duketerms.rdf.xml +0 -0
- data/lib/ddr/{metadata → vocab}/vocabulary.rb +2 -2
- data/spec/dummy/log/development.log +0 -3829
- data/spec/dummy/log/test.log +0 -46079
- data/spec/factories/test_model_factories.rb +0 -57
- data/spec/models/collection_spec.rb +0 -5
- data/spec/models/descriptive_metadata_datastream_spec.rb +20 -4
- data/spec/models/events_spec.rb +8 -0
- data/spec/models/has_struct_metadata_spec.rb +34 -0
- data/spec/models/item_spec.rb +13 -1
- data/spec/support/shared_examples_for_ddr_models.rb +11 -1
- data/spec/support/shared_examples_for_describables.rb +5 -5
- data/spec/support/shared_examples_for_events.rb +4 -40
- metadata +13 -23
- data/lib/ddr/datastreams/content_metadata_datastream.rb +0 -147
- data/lib/ddr/datastreams/preservation_metadata_datastream.rb +0 -13
- data/lib/ddr/events/preservation_event_type.rb +0 -24
- data/lib/ddr/models/has_content_metadata.rb +0 -16
- data/spec/fixtures/contentMetadata.xml +0 -37
- data/spec/models/solr_document_spec.rb +0 -23
- data/spec/services/remote_group_service_spec.rb +0 -16
- data/spec/support/shared_examples_for_event_loggables.rb +0 -3
- data/spec/support/shared_examples_for_has_content_metadata.rb +0 -74
- data/spec/support/shared_examples_for_licensable.rb +0 -15
@@ -1,13 +0,0 @@
|
|
1
|
-
module Ddr
|
2
|
-
module Datastreams
|
3
|
-
class PreservationMetadataDatastream < ActiveFedora::NtriplesRDFDatastream
|
4
|
-
|
5
|
-
property :permanent_id,
|
6
|
-
predicate: Ddr::Vocab::Preservation.permanentId
|
7
|
-
|
8
|
-
property :permanent_url,
|
9
|
-
predicate: Ddr::Vocab::Preservation.permanentUrl
|
10
|
-
|
11
|
-
end
|
12
|
-
end
|
13
|
-
end
|
@@ -1,24 +0,0 @@
|
|
1
|
-
require 'rdf'
|
2
|
-
|
3
|
-
module Ddr
|
4
|
-
module Events
|
5
|
-
class PreservationEventType < RDF::StrictVocabulary("http://id.loc.gov/vocabulary/preservation/eventType/")
|
6
|
-
property :cap, label: "capture"
|
7
|
-
property :com, label: "compression"
|
8
|
-
property :cre, label: "creation"
|
9
|
-
property :dea, label: "deaccession"
|
10
|
-
property :dec, label: "decompression"
|
11
|
-
property :der, label: "decryption"
|
12
|
-
property :del, label: "deletion"
|
13
|
-
property :dig, label: "digital signature validation"
|
14
|
-
property :fix, label: "fixity check"
|
15
|
-
property :ing, label: "ingestion"
|
16
|
-
property :mes, label: "message digest calculation"
|
17
|
-
property :mig, label: "migration"
|
18
|
-
property :nor, label: "normalization"
|
19
|
-
property :rep, label: "replication"
|
20
|
-
property :val, label: "validation"
|
21
|
-
property :vir, label: "virus check"
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
@@ -1,16 +0,0 @@
|
|
1
|
-
module Ddr
|
2
|
-
module Models
|
3
|
-
module HasContentMetadata
|
4
|
-
extend ActiveSupport::Concern
|
5
|
-
|
6
|
-
included do
|
7
|
-
has_file_datastream :name => Ddr::Datastreams::CONTENT_METADATA,
|
8
|
-
:type => Ddr::Datastreams::ContentMetadataDatastream,
|
9
|
-
:versionable => true,
|
10
|
-
:label => "Structural Content Data for this object",
|
11
|
-
:control_group => 'M'
|
12
|
-
end
|
13
|
-
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
@@ -1,37 +0,0 @@
|
|
1
|
-
<?xml version="1.0"?>
|
2
|
-
<mets xmlns="http://www.loc.gov/METS/" xmlns:xlink="http://www.w3.org/1999/xlink">
|
3
|
-
<fileSec>
|
4
|
-
<fileGrp ID="GRP01" USE="Master Image">
|
5
|
-
<file ID="FILE001">
|
6
|
-
<FLocat xlink:href="test:1/content" LOCTYPE="URL"/>
|
7
|
-
</file>
|
8
|
-
<file ID="FILE002">
|
9
|
-
<FLocat xlink:href="test:2/content" LOCTYPE="URL"/>
|
10
|
-
</file>
|
11
|
-
<file ID="FILE003">
|
12
|
-
<FLocat xlink:href="test:3/content" LOCTYPE="URL"/>
|
13
|
-
</file>
|
14
|
-
</fileGrp>
|
15
|
-
<fileGrp ID="GRP00" USE="Composite PDF">
|
16
|
-
<file ID="FILE000">
|
17
|
-
<FLocat xlink:href="test:4/content" LOCTYPE="URL"/>
|
18
|
-
</file>
|
19
|
-
</fileGrp>
|
20
|
-
</fileSec>
|
21
|
-
<structMap>
|
22
|
-
<div ID="DIV01" TYPE="image" LABEL="Images">
|
23
|
-
<div ORDER="1">
|
24
|
-
<fptr FILEID="FILE001"/>
|
25
|
-
</div>
|
26
|
-
<div ORDER="2">
|
27
|
-
<fptr FILEID="FILE002"/>
|
28
|
-
</div>
|
29
|
-
<div ORDER="10">
|
30
|
-
<fptr FILEID="FILE003"/>
|
31
|
-
</div>
|
32
|
-
</div>
|
33
|
-
<div ID="DIV00" TYPE="pdf" LABEL="PDF">
|
34
|
-
<fptr FILEID="FILE000"/>
|
35
|
-
</div>
|
36
|
-
</structMap>
|
37
|
-
</mets>
|
@@ -1,23 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
module Ddr
|
4
|
-
module Models
|
5
|
-
RSpec.describe SolrDocument, type: :model do
|
6
|
-
|
7
|
-
describe "#principal_has_role?" do
|
8
|
-
let(:document) { ::SolrDocument.new("admin_metadata__role_ssim"=>[ "inst.faculty", "inst.staff", "inst.student" ]) }
|
9
|
-
context "user does not have role" do
|
10
|
-
it "should return false" do
|
11
|
-
expect(document.principal_has_role?([ "registered" ], "role")).to be false
|
12
|
-
end
|
13
|
-
end
|
14
|
-
context "user does have role" do
|
15
|
-
it "should return true" do
|
16
|
-
expect(document.principal_has_role?([ "inst.staff" ], "role")).to be true
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
@@ -1,16 +0,0 @@
|
|
1
|
-
module Ddr
|
2
|
-
module Auth
|
3
|
-
RSpec.describe RemoteGroupService do
|
4
|
-
|
5
|
-
subject { described_class.new(env) }
|
6
|
-
|
7
|
-
describe "affiliation_groups" do
|
8
|
-
let(:env) { {"affiliation" => "faculty@duke.edu;staff@duke.edu"} }
|
9
|
-
it "should return the groups for the affiliations" do
|
10
|
-
expect(subject.affiliation_groups).to match_array(["duke.faculty", "duke.staff"])
|
11
|
-
end
|
12
|
-
end
|
13
|
-
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
@@ -1,74 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
require 'tempfile'
|
3
|
-
|
4
|
-
RSpec.shared_examples "an object that has content metadata" do
|
5
|
-
let!(:object) { described_class.create! }
|
6
|
-
let(:file_path) { File.join(File.dirname(__FILE__), '..', 'fixtures', 'contentMetadata.xml') }
|
7
|
-
before do
|
8
|
-
object.contentMetadata.content = File.new(file_path, "r")
|
9
|
-
object.save!
|
10
|
-
end
|
11
|
-
context "contentMetadata datastream" do
|
12
|
-
let(:expected_result) do
|
13
|
-
[
|
14
|
-
{
|
15
|
-
"div" => [
|
16
|
-
{
|
17
|
-
"type" => "image",
|
18
|
-
"label" => "Images",
|
19
|
-
"div" => [
|
20
|
-
{
|
21
|
-
"pids" => [
|
22
|
-
{
|
23
|
-
"pid" => "test:1",
|
24
|
-
"use" => "Master Image"
|
25
|
-
}
|
26
|
-
]
|
27
|
-
},
|
28
|
-
{
|
29
|
-
"pids" => [
|
30
|
-
{
|
31
|
-
"pid" => "test:2",
|
32
|
-
"use" => "Master Image"
|
33
|
-
}
|
34
|
-
]
|
35
|
-
},
|
36
|
-
{
|
37
|
-
"pids" => [
|
38
|
-
{
|
39
|
-
"pid" => "test:3",
|
40
|
-
"use" => "Master Image"
|
41
|
-
}
|
42
|
-
]
|
43
|
-
}
|
44
|
-
]
|
45
|
-
},
|
46
|
-
{
|
47
|
-
"type" => "pdf",
|
48
|
-
"label" => "PDF",
|
49
|
-
"pids" => [
|
50
|
-
{
|
51
|
-
"pid" => "test:4",
|
52
|
-
"use" => "Composite PDF"
|
53
|
-
}
|
54
|
-
]
|
55
|
-
}
|
56
|
-
|
57
|
-
]
|
58
|
-
}
|
59
|
-
]
|
60
|
-
end
|
61
|
-
context "#parse" do
|
62
|
-
it "should produce the appropriate result" do
|
63
|
-
result = object.contentMetadata.parse
|
64
|
-
expect(result).to eq(expected_result)
|
65
|
-
end
|
66
|
-
end
|
67
|
-
context "#to_solr" do
|
68
|
-
let(:solr_result) { ActiveFedora::SolrService.query("id:#{object.pid.gsub(':', '\\:')}").first }
|
69
|
-
it "should add the parsed contentMetadata to the index" do
|
70
|
-
expect(JSON.parse(solr_result[ActiveFedora::SolrService.solr_name(:content_metadata_parsed, :symbol)].first)).to eq(expected_result)
|
71
|
-
end
|
72
|
-
end
|
73
|
-
end
|
74
|
-
end
|
@@ -1,15 +0,0 @@
|
|
1
|
-
RSpec.shared_examples "a licensable object" do
|
2
|
-
let(:object) { described_class.new }
|
3
|
-
before do
|
4
|
-
object.license_title = "License Title"
|
5
|
-
object.license_description = "License Description"
|
6
|
-
object.license_url = "http://library.duke.edu"
|
7
|
-
end
|
8
|
-
describe "indexing" do
|
9
|
-
it "should index the license terms" do
|
10
|
-
expect(object.to_solr[Ddr::IndexFields::LICENSE_TITLE]).to eq("License Title")
|
11
|
-
expect(object.to_solr[Ddr::IndexFields::LICENSE_DESCRIPTION]).to eq("License Description")
|
12
|
-
expect(object.to_solr[Ddr::IndexFields::LICENSE_URL]).to eq("http://library.duke.edu")
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|