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.
Files changed (59) hide show
  1. checksums.yaml +4 -4
  2. data/app/models/component.rb +1 -0
  3. data/app/models/item.rb +13 -2
  4. data/config/initializers/active_fedora_base.rb +9 -5
  5. data/config/initializers/subscriptions.rb +3 -0
  6. data/config/locales/groups.en.yml +0 -7
  7. data/lib/ddr/auth/remote_group_service.rb +2 -11
  8. data/lib/ddr/datastreams.rb +5 -4
  9. data/lib/ddr/datastreams/{admin_metadata_datastream.rb → administrative_metadata_datastream.rb} +2 -2
  10. data/lib/ddr/datastreams/descriptive_metadata_datastream.rb +4 -45
  11. data/lib/ddr/datastreams/metadata_datastream.rb +44 -0
  12. data/lib/ddr/datastreams/structural_metadata_datastream.rb +24 -0
  13. data/lib/ddr/events.rb +2 -2
  14. data/lib/ddr/events/deletion_event.rb +12 -0
  15. data/lib/ddr/events/event.rb +0 -15
  16. data/lib/ddr/events/preservation_event_behavior.rb +4 -2
  17. data/lib/ddr/index_fields.rb +32 -36
  18. data/lib/ddr/managers/permanent_id_manager.rb +2 -1
  19. data/lib/ddr/metadata.rb +0 -3
  20. data/lib/ddr/models.rb +1 -1
  21. data/lib/ddr/models/base.rb +4 -0
  22. data/lib/ddr/models/describable.rb +5 -5
  23. data/lib/ddr/models/has_admin_metadata.rb +1 -1
  24. data/lib/ddr/models/has_children.rb +1 -5
  25. data/lib/ddr/models/has_content.rb +10 -0
  26. data/lib/ddr/models/has_struct_metadata.rb +57 -0
  27. data/lib/ddr/models/indexing.rb +0 -10
  28. data/lib/ddr/models/solr_document.rb +1 -5
  29. data/lib/ddr/models/version.rb +1 -1
  30. data/lib/ddr/notifications.rb +2 -1
  31. data/lib/ddr/utils.rb +2 -2
  32. data/lib/ddr/vocab.rb +3 -0
  33. data/lib/ddr/vocab/asset.rb +3 -0
  34. data/lib/ddr/{metadata → vocab}/duke_terms.rb +2 -2
  35. data/lib/ddr/{metadata → vocab}/rdf_vocabulary_parser.rb +2 -2
  36. data/lib/ddr/{metadata → vocab}/sources/duketerms.rdf.xml +0 -0
  37. data/lib/ddr/{metadata → vocab}/vocabulary.rb +2 -2
  38. data/spec/dummy/log/development.log +0 -3829
  39. data/spec/dummy/log/test.log +0 -46079
  40. data/spec/factories/test_model_factories.rb +0 -57
  41. data/spec/models/collection_spec.rb +0 -5
  42. data/spec/models/descriptive_metadata_datastream_spec.rb +20 -4
  43. data/spec/models/events_spec.rb +8 -0
  44. data/spec/models/has_struct_metadata_spec.rb +34 -0
  45. data/spec/models/item_spec.rb +13 -1
  46. data/spec/support/shared_examples_for_ddr_models.rb +11 -1
  47. data/spec/support/shared_examples_for_describables.rb +5 -5
  48. data/spec/support/shared_examples_for_events.rb +4 -40
  49. metadata +13 -23
  50. data/lib/ddr/datastreams/content_metadata_datastream.rb +0 -147
  51. data/lib/ddr/datastreams/preservation_metadata_datastream.rb +0 -13
  52. data/lib/ddr/events/preservation_event_type.rb +0 -24
  53. data/lib/ddr/models/has_content_metadata.rb +0 -16
  54. data/spec/fixtures/contentMetadata.xml +0 -37
  55. data/spec/models/solr_document_spec.rb +0 -23
  56. data/spec/services/remote_group_service_spec.rb +0 -16
  57. data/spec/support/shared_examples_for_event_loggables.rb +0 -3
  58. data/spec/support/shared_examples_for_has_content_metadata.rb +0 -74
  59. 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,3 +0,0 @@
1
- shared_examples "an event loggable object" do
2
-
3
- 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