ddr-core 1.7.0 → 1.10.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/concerns/ddr/describable.rb +18 -25
- data/config/vocab.json +5 -0
- data/lib/ddr/core.rb +6 -1
- data/lib/ddr/vocab/duke_terms.rb +2 -0
- data/lib/ddr/vocab/rdf_vocabulary_parser.rb +2 -0
- data/lib/ddr/vocab/vocabulary.rb +2 -0
- data/lib/ddr/vocab.rb +2 -11
- metadata +6 -9
- data/lib/ddr/vocab/asset.rb +0 -55
- data/lib/ddr/vocab/contact.rb +0 -9
- data/lib/ddr/vocab/display.rb +0 -9
- data/lib/ddr/vocab/roles.rb +0 -25
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7590f4fdb1a8818a13de50cf6f22098ddc0adddf604720776e863ae276a22319
|
4
|
+
data.tar.gz: eda82847e9603d0099432f6118402bdfa5cce83c199f69a724f234a9f890528d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b02451763ade3265563334b0e5a024c4db4efb23b4a5d396778fa875c0edeed31c7d348f627fdbc2fac021705456f5503af92cfc9ff4b640f25ce92cd7f69743
|
7
|
+
data.tar.gz: 6d8738aa1ee63f7039ee40960877ac7173f3b2d3e4fdfe55de3773f7af652e155114b86117014e20db05239f66d60db6e4209beaecaeb7310d3f0373cc4f2bf7
|
@@ -2,22 +2,17 @@ module Ddr
|
|
2
2
|
module Describable
|
3
3
|
extend ActiveSupport::Concern
|
4
4
|
|
5
|
+
TERM_NAMES = (Ddr.vocab[:dcmi_terms] + Ddr.vocab[:duke_terms] - [:license]).freeze
|
6
|
+
|
5
7
|
def self.term_names
|
6
|
-
|
7
|
-
vocabularies.each do |vocab|
|
8
|
-
Ddr::Vocab::Vocabulary.property_terms(vocab).each do |term|
|
9
|
-
term_name = Ddr::Vocab::Vocabulary.term_name(vocab, term)
|
10
|
-
unless term_name == :license
|
11
|
-
term_names << term_name
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end
|
15
|
-
term_names
|
8
|
+
TERM_NAMES
|
16
9
|
end
|
17
10
|
|
18
|
-
#
|
19
|
-
# DDR vocabulary is defined locally
|
11
|
+
# @deprecated
|
20
12
|
def self.vocabularies
|
13
|
+
warn "[DEPRECATION] `Ddr::Describable.vocabularies` is deprecated."
|
14
|
+
|
15
|
+
require 'ddr/vocab'
|
21
16
|
[RDF::Vocab::DC, Ddr::Vocab::DukeTerms].freeze
|
22
17
|
end
|
23
18
|
|
@@ -44,16 +39,11 @@ module Ddr
|
|
44
39
|
end
|
45
40
|
end
|
46
41
|
|
47
|
-
# Used in
|
42
|
+
# Used in ddr-admin view
|
48
43
|
def has_desc_metadata?
|
49
44
|
desc_metadata_terms(:present).present?
|
50
45
|
end
|
51
46
|
|
52
|
-
# Used in dul-hydra
|
53
|
-
######################
|
54
|
-
# Commenting out the :required argument since validation is not a model concern in the Valkyrie paradigm.
|
55
|
-
# This will break the `desc_metadata_form_fields` helper in dul-hydra and we'll have to fix it there eventually.
|
56
|
-
######################
|
57
47
|
def desc_metadata_terms *args
|
58
48
|
return Ddr::Describable.term_names if args.empty?
|
59
49
|
arg = args.pop
|
@@ -64,15 +54,14 @@ module Ddr
|
|
64
54
|
desc_metadata_terms.select { |t| values(t).present? }
|
65
55
|
when :defined_attributes
|
66
56
|
desc_metadata_terms
|
67
|
-
# when :required
|
68
|
-
# desc_metadata_terms(:defined_attributes).select {|t| required? t}
|
69
57
|
when :dcterms
|
70
|
-
|
71
|
-
|
58
|
+
# Why? I think we did this to put the DCMI Elements terms in front ...
|
59
|
+
# Do we still need that? Also, we didn't remove :license here, which is probably wrong.
|
60
|
+
Ddr.vocab[:dcmi_elements] + (Ddr.vocab[:dcmi_terms] - Ddr.vocab[:dcmi_elements])
|
72
61
|
when :dcterms_elements11
|
73
|
-
Ddr
|
62
|
+
Ddr.vocab[:dcmi_elements]
|
74
63
|
when :duke
|
75
|
-
Ddr
|
64
|
+
Ddr.vocab[:duke_terms]
|
76
65
|
else
|
77
66
|
raise ArgumentError, "Invalid argument: #{arg.inspect}"
|
78
67
|
end
|
@@ -83,8 +72,10 @@ module Ddr
|
|
83
72
|
end
|
84
73
|
end
|
85
74
|
|
86
|
-
#
|
75
|
+
# @deprecated
|
87
76
|
def desc_metadata_vocabs
|
77
|
+
warn "[DEPRECATION] `Ddr::Describable#desc_metadata_vocabs` is deprecated."
|
78
|
+
|
88
79
|
Ddr::Describable.vocabularies
|
89
80
|
end
|
90
81
|
|
@@ -100,5 +91,7 @@ module Ddr
|
|
100
91
|
desc_metadata_terms.each { |t| set_desc_metadata_values(t, term_values_hash[t]) }
|
101
92
|
end
|
102
93
|
|
94
|
+
|
95
|
+
|
103
96
|
end
|
104
97
|
end
|
data/config/vocab.json
ADDED
@@ -0,0 +1,5 @@
|
|
1
|
+
{
|
2
|
+
"dcmi_terms": ["abstract", "accessRights", "accrualMethod", "accrualPeriodicity", "accrualPolicy", "alternative", "audience", "available", "bibliographicCitation", "conformsTo", "contributor", "coverage", "created", "creator", "date", "dateAccepted", "dateCopyrighted", "dateSubmitted", "description", "educationLevel", "extent", "format", "hasFormat", "hasPart", "hasVersion", "identifier", "instructionalMethod", "isFormatOf", "isPartOf", "isReferencedBy", "isReplacedBy", "isRequiredBy", "isVersionOf", "issued", "language", "license", "mediator", "medium", "modified", "provenance", "publisher", "references", "relation", "replaces", "requires", "rights", "rightsHolder", "source", "spatial", "subject", "tableOfContents", "temporal", "title", "type", "valid"],
|
3
|
+
"duke_terms": ["arranger", "artist", "awards", "biblical_book", "box_number", "call_number", "category", "chapter_and_verse", "chimpanzee", "choreographer", "company", "composer", "dcmitype", "dedicatee", "digitized", "duke_opponent", "engraver", "first_line", "folder", "genre", "headline", "illustrated", "illustrator", "instrumentation", "interview_date", "interview_location", "interview_number", "interview_state", "interviewee_birthplace", "interviewee_date_of_birth", "interviewee_gender", "interviewee_occupation", "interviewee_residence", "interviewee_state_of_birth", "interviewer_name", "issue_date", "issue_number", "lithographer", "lyricist", "negative_number", "oclc_number", "people", "performer", "placement_company", "print_number", "producer", "product", "pubcity", "pubcountry", "publication", "pubregion", "pubstate", "race", "record_type", "refrain", "roll_number", "season", "series", "setting", "site_alignment", "source_collection", "sponsor", "staging", "subseries", "tag", "time_of_photo", "tone", "venue", "volume"],
|
4
|
+
"dcmi_elements": ["contributor", "coverage", "creator", "date", "description", "format", "identifier", "language", "publisher", "relation", "rights", "source", "subject", "title", "type"]
|
5
|
+
}
|
data/lib/ddr/core.rb
CHANGED
@@ -58,6 +58,12 @@ module Ddr
|
|
58
58
|
@storage_adapter = storage_adapter
|
59
59
|
end
|
60
60
|
|
61
|
+
# This static vocab list is to replace the ones generated from RDF.
|
62
|
+
def self.vocab
|
63
|
+
@vocab ||= JSON.load_file(File.expand_path('../../config/vocab.json', __dir__), symbolize_names: true)
|
64
|
+
.transform_values { |v| v.map(&:to_sym).freeze }.freeze
|
65
|
+
end
|
66
|
+
|
61
67
|
mattr_accessor :default_mime_type do
|
62
68
|
"application/octet-stream"
|
63
69
|
end
|
@@ -121,7 +127,6 @@ module Ddr
|
|
121
127
|
end
|
122
128
|
|
123
129
|
module Core
|
124
|
-
|
125
130
|
end
|
126
131
|
|
127
132
|
end
|
data/lib/ddr/vocab/duke_terms.rb
CHANGED
data/lib/ddr/vocab/vocabulary.rb
CHANGED
data/lib/ddr/vocab.rb
CHANGED
@@ -1,22 +1,13 @@
|
|
1
1
|
require "rdf/vocab"
|
2
2
|
|
3
|
+
warn "[DEPRECATION] 'Ddr::Vocab' is deprecated."
|
4
|
+
|
3
5
|
module Ddr::Vocab
|
4
6
|
extend ActiveSupport::Autoload
|
5
7
|
|
6
8
|
BASE_URI = "http://repository.lib.duke.edu/vocab"
|
7
9
|
|
8
|
-
PREMIS = begin
|
9
|
-
RDF::Vocab::PREMIS::V1
|
10
|
-
rescue NameError
|
11
|
-
RDF::Vocab::PREMIS
|
12
|
-
end
|
13
|
-
|
14
|
-
autoload :Asset
|
15
|
-
autoload :Contact
|
16
|
-
autoload :Display
|
17
10
|
autoload :DukeTerms
|
18
11
|
autoload :RDFVocabularyParser
|
19
|
-
autoload :Roles
|
20
12
|
autoload :Vocabulary
|
21
|
-
|
22
13
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ddr-core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.10.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jim Coble
|
@@ -11,7 +11,7 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date:
|
14
|
+
date: 2022-03-01 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: activeresource
|
@@ -47,14 +47,14 @@ dependencies:
|
|
47
47
|
requirements:
|
48
48
|
- - "~>"
|
49
49
|
- !ruby/object:Gem::Version
|
50
|
-
version: '
|
50
|
+
version: '2.3'
|
51
51
|
type: :runtime
|
52
52
|
prerelease: false
|
53
53
|
version_requirements: !ruby/object:Gem::Requirement
|
54
54
|
requirements:
|
55
55
|
- - "~>"
|
56
56
|
- !ruby/object:Gem::Version
|
57
|
-
version: '
|
57
|
+
version: '2.3'
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: devise
|
60
60
|
requirement: !ruby/object:Gem::Requirement
|
@@ -341,6 +341,7 @@ files:
|
|
341
341
|
- config/initializers/devise.rb
|
342
342
|
- config/locales/ddr-core.en.yml
|
343
343
|
- config/routes.rb
|
344
|
+
- config/vocab.json
|
344
345
|
- db/migrate/20141104181418_create_users.rb
|
345
346
|
- db/migrate/20141107124012_add_columns_to_user.rb
|
346
347
|
- db/migrate/20200207194453_add_default_to_lock_version.rb
|
@@ -425,12 +426,8 @@ files:
|
|
425
426
|
- lib/ddr/structures/struct_map.rb
|
426
427
|
- lib/ddr/utils.rb
|
427
428
|
- lib/ddr/vocab.rb
|
428
|
-
- lib/ddr/vocab/asset.rb
|
429
|
-
- lib/ddr/vocab/contact.rb
|
430
|
-
- lib/ddr/vocab/display.rb
|
431
429
|
- lib/ddr/vocab/duke_terms.rb
|
432
430
|
- lib/ddr/vocab/rdf_vocabulary_parser.rb
|
433
|
-
- lib/ddr/vocab/roles.rb
|
434
431
|
- lib/ddr/vocab/sources/duketerms.rdf
|
435
432
|
- lib/ddr/vocab/vocabulary.rb
|
436
433
|
- lib/ddr/workflow.rb
|
@@ -455,7 +452,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
455
452
|
- !ruby/object:Gem::Version
|
456
453
|
version: '0'
|
457
454
|
requirements: []
|
458
|
-
rubygems_version: 3.
|
455
|
+
rubygems_version: 3.3.8
|
459
456
|
signing_key:
|
460
457
|
specification_version: 4
|
461
458
|
summary: Models used in the Duke Digital Repository
|
data/lib/ddr/vocab/asset.rb
DELETED
@@ -1,55 +0,0 @@
|
|
1
|
-
module Ddr::Vocab
|
2
|
-
class Asset < RDF::StrictVocabulary("http://repository.lib.duke.edu/vocab/asset/")
|
3
|
-
|
4
|
-
property "permanentId",
|
5
|
-
label: "Permanent Identifier"
|
6
|
-
|
7
|
-
property "permanentUrl",
|
8
|
-
label: "Permanent URL"
|
9
|
-
|
10
|
-
property "workflowState",
|
11
|
-
label: "Workflow State"
|
12
|
-
|
13
|
-
property "adminSet",
|
14
|
-
label: "Administrative Set",
|
15
|
-
comment: "A name under which objects (principally collections) are grouped for administrative purposes."
|
16
|
-
|
17
|
-
property "eadId",
|
18
|
-
label: "EAD ID"
|
19
|
-
|
20
|
-
property "archivesSpaceId",
|
21
|
-
label: "ArchivesSpace Identifier"
|
22
|
-
|
23
|
-
property "isLocked",
|
24
|
-
label: "Is Locked?"
|
25
|
-
|
26
|
-
property "ingestedBy",
|
27
|
-
label: "Ingested By",
|
28
|
-
comment: "The agent (person or software) that initiated or performed the ingestion of the object."
|
29
|
-
|
30
|
-
property "ingestionDate",
|
31
|
-
label: "Ingestion Date",
|
32
|
-
comment: "The date/time at which the object was originally ingested into the repository."
|
33
|
-
|
34
|
-
property "rightsNote",
|
35
|
-
label: "Rights Note",
|
36
|
-
comment: "Free-text statement about the rights status of the resource."
|
37
|
-
|
38
|
-
property "alephId",
|
39
|
-
label: "Aleph ID",
|
40
|
-
comment: "The Aleph identifier for a catalog record corresponding to the object."
|
41
|
-
|
42
|
-
property "affiliation",
|
43
|
-
label: "Affiliation",
|
44
|
-
comment: "An organizational entity associated with the object content."
|
45
|
-
|
46
|
-
property "nestedPath",
|
47
|
-
label: "Nested Path",
|
48
|
-
comment: "The nested/tree path to the object to be reflected in structural metadata."
|
49
|
-
|
50
|
-
property "contentdmId",
|
51
|
-
label: "CONTENTdm ID"
|
52
|
-
comment: "The CONTENTdm reference corresponding to the object."
|
53
|
-
|
54
|
-
end
|
55
|
-
end
|
data/lib/ddr/vocab/contact.rb
DELETED
data/lib/ddr/vocab/display.rb
DELETED
data/lib/ddr/vocab/roles.rb
DELETED
@@ -1,25 +0,0 @@
|
|
1
|
-
module Ddr::Vocab
|
2
|
-
class Roles < RDF::StrictVocabulary("#{BASE_URI}/roles/")
|
3
|
-
|
4
|
-
term :Role,
|
5
|
-
label: "Role",
|
6
|
-
comment: "An assertion of a role granted to an agent."
|
7
|
-
|
8
|
-
property :hasRole,
|
9
|
-
label: "Has Role",
|
10
|
-
comment: "Asserts the granting of a role on the subject to an agent."
|
11
|
-
|
12
|
-
property :type,
|
13
|
-
label: "Type",
|
14
|
-
comment: "The type of role granted to the agent."
|
15
|
-
|
16
|
-
property :agent,
|
17
|
-
label: "Agent",
|
18
|
-
comment: "The agent to whom the role is granted."
|
19
|
-
|
20
|
-
property :scope,
|
21
|
-
label: "Scope",
|
22
|
-
comment: "The scope within which the role applies."
|
23
|
-
|
24
|
-
end
|
25
|
-
end
|