rof 1.2.0 → 1.2.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/bundle +3 -0
- data/bin/csv_to_rof +1 -1
- data/lib/rof/filters.rb +1 -0
- data/lib/rof/filters/access_to_relsext.rb +47 -0
- data/lib/rof/filters/label.rb +10 -10
- data/lib/rof/ingesters/rels_ext_ingester.rb +16 -2
- data/lib/rof/rdf_context.rb +5 -3
- data/lib/rof/translators/fedora_to_rof.rb +12 -5
- data/lib/rof/translators/jsonld_to_rof/statement_handler.rb +4 -1
- data/lib/rof/version.rb +1 -1
- data/spec/fixtures/DLTP-999/pr76f190f54.jsonld +90 -0
- data/spec/lib/rof/filters/access_to_relsext_spec.rb +49 -0
- data/spec/lib/rof/filters/label_spec.rb +1 -1
- data/spec/lib/rof/ingesters/rels_ext_ingester_spec.rb +23 -0
- data/spec/lib/rof/translators/fedora_to_rof_spec.rb +1 -1
- data/spec/lib/rof/translators/jsonld_to_rof_spec.rb +8 -0
- data/spec/lib/rof/translators/osf_to_rof_spec.rb +3 -1
- metadata +9 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2e7e89b3743a07578f148505d8226c5214f14d3f
|
4
|
+
data.tar.gz: 57ad5579aad0fc95f217be7de73910216faf52d7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3955c71a26485168038e7bc6ca0546dfe33b6828e4f5921453bcebe629c4e44b91800ad2a65e5cbd71e7dc3e9d50fdd34a2d90026f429f40381167d969ee2ede
|
7
|
+
data.tar.gz: 71b836f300477b6e497a90943476b676fea747fb4876192fd5fa1207c095b189dc2d8514268d192da8fb78031091aece9e6350083d8ea848e69b8332d452325c
|
data/bin/bundle
ADDED
data/bin/csv_to_rof
CHANGED
data/lib/rof/filters.rb
CHANGED
@@ -0,0 +1,47 @@
|
|
1
|
+
require 'rof/filter'
|
2
|
+
module ROF
|
3
|
+
module Filters
|
4
|
+
|
5
|
+
class AccessToRelsext < ROF::Filter
|
6
|
+
def initialize(options = {})
|
7
|
+
end
|
8
|
+
|
9
|
+
def process(obj_list)
|
10
|
+
# We need to map access with pid to rels-ext predicates
|
11
|
+
obj_list.map! do |obj|
|
12
|
+
obj.fetch("rights").each do |access_type, access_list|
|
13
|
+
convert_to_relsext(access_type, access_list, obj)
|
14
|
+
end
|
15
|
+
obj
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
def convert_to_relsext(access_type, access_list, rof)
|
20
|
+
# map any access fields of the form XXX:YYY into
|
21
|
+
# a rels-ext section
|
22
|
+
Array.wrap(access_list).each do |access_user|
|
23
|
+
if access_user =~ /([^:]+):.+/
|
24
|
+
rof['rels-ext'] ||= {}
|
25
|
+
case access_type
|
26
|
+
when "read"
|
27
|
+
rof['rels-ext']['hasViewer'] ||=[]
|
28
|
+
rof['rels-ext']['hasViewer'] << access_user
|
29
|
+
when "read-groups"
|
30
|
+
rof['rels-ext']['hasViewerGroup'] ||= []
|
31
|
+
rof['rels-ext']['hasViewerGroup'] << access_user
|
32
|
+
when "edit"
|
33
|
+
rof['rels-ext']['hasEditor'] ||= []
|
34
|
+
rof['rels-ext']['hasEditor'] << access_user
|
35
|
+
when "edit-groups"
|
36
|
+
rof['rels-ext']['hasEditorGroup'] ||= []
|
37
|
+
rof['rels-ext']['hasEditorGroup'] << access_user
|
38
|
+
else
|
39
|
+
raise AccessMappingNotFound
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
return rof
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
data/lib/rof/filters/label.rb
CHANGED
@@ -16,21 +16,21 @@ module ROF
|
|
16
16
|
class OutOfIdentifiers < RuntimeError
|
17
17
|
end
|
18
18
|
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
#
|
23
|
-
#
|
24
|
-
#
|
25
|
-
#
|
26
|
-
#
|
19
|
+
class AccessMappingNotFound < RuntimeError
|
20
|
+
end
|
21
|
+
|
22
|
+
# @param options [Hash]
|
23
|
+
# @option options [String, nil] :prefix - if truthy, prepend "<prefix>:" to each identifier
|
24
|
+
# @option options [Array, nil] :id_list - circumvent using the :noids configuration and instead use these for next_ids
|
25
|
+
# @option options [Hash] :noids - A Hash with keys :noid_server and :pool_name; Responsible for minting next_ids
|
26
|
+
# @raise NoPool if we don't have a means of determining the next_id
|
27
27
|
def initialize(options = {})
|
28
28
|
prefix = options.fetch(:prefix, nil)
|
29
29
|
@id_list = case
|
30
30
|
when options[:id_list]
|
31
31
|
options[:id_list]
|
32
|
-
when options[:
|
33
|
-
NoidsPool.new(options[:noid_server
|
32
|
+
when options[:noids]
|
33
|
+
NoidsPool.new(options[:noids].fetch(:noid_server), options[:noids].fetch(:pool_name))
|
34
34
|
else
|
35
35
|
raise NoPool
|
36
36
|
end
|
@@ -52,9 +52,9 @@ module ROF
|
|
52
52
|
# This is kinda hacky. Is there a better way?
|
53
53
|
input.each do |relation, targets|
|
54
54
|
next if relation == "@context" || relation == "@id" || relation == "hasModel"
|
55
|
-
targets = [targets] if targets.is_a?
|
55
|
+
targets = [targets] if targets.is_a?(String) || targets.is_a?(Hash)
|
56
56
|
input[relation] = targets.map do |target|
|
57
|
-
target.is_a?(String) ? {"@id" => "info:fedora/#{target}"} : target
|
57
|
+
target.is_a?(String) ? {"@id" => "info:fedora/#{target}"} : prefix_ids_recursive(target)
|
58
58
|
end
|
59
59
|
end
|
60
60
|
|
@@ -62,6 +62,20 @@ module ROF
|
|
62
62
|
graph.dump(:rdfxml)
|
63
63
|
end
|
64
64
|
|
65
|
+
# prefix all strings or hash values with "info:fedora/"
|
66
|
+
# recursively decends into arrays and hashes
|
67
|
+
def prefix_ids_recursive(data)
|
68
|
+
return "info:fedora/" + data if data.is_a?(String)
|
69
|
+
if data.is_a?(Array)
|
70
|
+
return data.map { |x| prefix_ids_recursive(x) }
|
71
|
+
end
|
72
|
+
if data.is_a?(Hash)
|
73
|
+
return Hash[data.map { |k,v| [k, prefix_ids_recursive(v)] }]
|
74
|
+
end
|
75
|
+
# don't know what data is. just return it
|
76
|
+
data
|
77
|
+
end
|
78
|
+
|
65
79
|
def persist(content)
|
66
80
|
if fdoc
|
67
81
|
ds = fdoc['RELS-EXT']
|
data/lib/rof/rdf_context.rb
CHANGED
@@ -4,7 +4,7 @@ module ROF
|
|
4
4
|
'dc' => 'http://purl.org/dc/terms/',
|
5
5
|
'ebucore' => 'http://www.ebu.ch/metadata/ontologies/ebucore/ebucore#',
|
6
6
|
'foaf' => 'http://xmlns.com/foaf/0.1/',
|
7
|
-
'
|
7
|
+
'hydra' => 'http://projecthydra.org/ns/relations#',
|
8
8
|
'mrel' => 'http://id.loc.gov/vocabulary/relators/',
|
9
9
|
'ms' => 'http://www.ndltd.org/standards/metadata/etdms/1.1/',
|
10
10
|
'nd' => 'https://library.nd.edu/ns/terms/',
|
@@ -30,8 +30,10 @@ module ROF
|
|
30
30
|
'pav' => 'http://purl.org/pav/',
|
31
31
|
'hydra' => 'http://projecthydra.org/ns/relations#',
|
32
32
|
'hasModel' => { '@id' => 'fedora-model:hasModel', '@type' => '@id' },
|
33
|
-
|
34
|
-
|
33
|
+
"hasEditor"=>{"@id"=>"hydra:hasEditor", "@type"=>"@id"},
|
34
|
+
"hasEditorGroup"=>{"@id"=>"hydra:hasEditorGroup", "@type"=>"@id"},
|
35
|
+
"hasViewer"=>{"@id"=>"hydra:hasViewer", "@type"=>"@id"},
|
36
|
+
"hasViewerGroup"=>{"@id"=>"hydra:hasViewerGroup", "@type"=>"@id"},
|
35
37
|
'isPartOf' => { '@type' => '@id' },
|
36
38
|
'isMemberOfCollection' => { '@type' => '@id' },
|
37
39
|
'isEditorOf' => { '@id' => 'hydra:isEditorOf', '@type' => '@id' },
|
@@ -27,9 +27,11 @@ module ROF
|
|
27
27
|
attr_reader :pids, :fedora_connection_information, :config, :connection
|
28
28
|
|
29
29
|
private
|
30
|
-
|
31
|
-
|
32
|
-
|
30
|
+
|
31
|
+
def connect_to_fedora!
|
32
|
+
@connection = Rubydora.connect(fedora_connection_information)
|
33
|
+
end
|
34
|
+
|
33
35
|
public
|
34
36
|
|
35
37
|
def to_rof
|
@@ -59,7 +61,12 @@ module ROF
|
|
59
61
|
# use reflection to call appropriate method for each
|
60
62
|
fedora_object.datastreams.each do |dsname, ds|
|
61
63
|
method_name = DATASTREAM_NAME_TO_METHOD_MAP.fetch(dsname) { :default_datastream_conversion }
|
62
|
-
|
64
|
+
begin
|
65
|
+
send(method_name, dsname, ds)
|
66
|
+
rescue => e
|
67
|
+
# if a named method throws a conversion, try the default datastream conversion
|
68
|
+
default_datastream_conversion(dsname, ds)
|
69
|
+
end
|
63
70
|
end
|
64
71
|
@fedora_info
|
65
72
|
end
|
@@ -74,7 +81,7 @@ module ROF
|
|
74
81
|
'bendo-item' => :default_datastream_conversion,
|
75
82
|
'characterization' => :default_datastream_conversion,
|
76
83
|
'thumbnail' => :default_datastream_conversion
|
77
|
-
}
|
84
|
+
}.freeze
|
78
85
|
|
79
86
|
private
|
80
87
|
|
@@ -63,8 +63,11 @@ module ROF
|
|
63
63
|
PredicateObjectHandler.call(@statement.predicate, @statement.object, @accumulator)
|
64
64
|
end
|
65
65
|
|
66
|
+
# Handle the various CurateND environments instead of just curate.nd.edu
|
67
|
+
REGEXP_FOR_A_CURATE_RDF_SUBJECT = %r{https://curate(?:[\w\.]*).nd.edu/show/([^\\]+)/?}.freeze
|
68
|
+
|
66
69
|
def handle_subject
|
67
|
-
return nil unless @statement.subject.to_s =~
|
70
|
+
return nil unless @statement.subject.to_s =~ REGEXP_FOR_A_CURATE_RDF_SUBJECT
|
68
71
|
pid = "und:#{$1}"
|
69
72
|
@accumulator.add_pid(pid)
|
70
73
|
end
|
data/lib/rof/version.rb
CHANGED
@@ -0,0 +1,90 @@
|
|
1
|
+
{
|
2
|
+
"@context": {
|
3
|
+
"und": "https://curatesvrpprd.library.nd.edu/show/",
|
4
|
+
"bibo": "http://purl.org/ontology/bibo/",
|
5
|
+
"dc": "http://purl.org/dc/terms/",
|
6
|
+
"ebucore": "http://www.ebu.ch/metadata/ontologies/ebucore/ebucore#",
|
7
|
+
"foaf": "http://xmlns.com/foaf/0.1/",
|
8
|
+
"mrel": "http://id.loc.gov/vocabulary/relators/",
|
9
|
+
"nd": "https://library.nd.edu/ns/terms/",
|
10
|
+
"rdfs": "http://www.w3.org/2000/01/rdf-schema#",
|
11
|
+
"vracore": "http://purl.org/vra/",
|
12
|
+
"frels": "info:fedora/fedora-system:def/relations-external#",
|
13
|
+
"ms": "http://www.ndltd.org/standards/metadata/etdms/1.1/",
|
14
|
+
"pav": "http://purl.org/pav/",
|
15
|
+
"fedora-model": "info:fedora/fedora-system:def/model#",
|
16
|
+
"hydra": "http://projecthydra.org/ns/relations#",
|
17
|
+
"hasModel": {
|
18
|
+
"@id": "fedora-model:hasModel",
|
19
|
+
"@type": "@id"
|
20
|
+
},
|
21
|
+
"hasEditor": {
|
22
|
+
"@id": "hydra:hasEditor",
|
23
|
+
"@type": "@id"
|
24
|
+
},
|
25
|
+
"hasEditorGroup": {
|
26
|
+
"@id": "hydra:hasEditorGroup",
|
27
|
+
"@type": "@id"
|
28
|
+
},
|
29
|
+
"isPartOf": {
|
30
|
+
"@id": "frels:isPartOf",
|
31
|
+
"@type": "@id"
|
32
|
+
},
|
33
|
+
"isMemberOfCollection": {
|
34
|
+
"@id": "frels:isMemberOfCollection",
|
35
|
+
"@type": "@id"
|
36
|
+
},
|
37
|
+
"isEditorOf": {
|
38
|
+
"@id": "hydra:isEditorOf",
|
39
|
+
"@type": "@id"
|
40
|
+
},
|
41
|
+
"hasMember": {
|
42
|
+
"@id": "frels:hasMember",
|
43
|
+
"@type": "@id"
|
44
|
+
},
|
45
|
+
"previousVersion": "pav:previousVersion"
|
46
|
+
},
|
47
|
+
"@graph": [
|
48
|
+
{
|
49
|
+
"@id": "_:b0",
|
50
|
+
"dc:contributor": "Faculty 1",
|
51
|
+
"ms:role": "Research Director"
|
52
|
+
},
|
53
|
+
{
|
54
|
+
"@id": "_:b1",
|
55
|
+
"ms:discipline": "Electrical Engineering",
|
56
|
+
"ms:level": "Doctoral Dissertation",
|
57
|
+
"ms:name": "Doctor of Philosophy"
|
58
|
+
},
|
59
|
+
{
|
60
|
+
"@id": "und:pr76f190f54",
|
61
|
+
"dc:contributor": {
|
62
|
+
"@id": "_:b0"
|
63
|
+
},
|
64
|
+
"dc:creator": "Author 1",
|
65
|
+
"dc:date": "2015-07-06",
|
66
|
+
"dc:dateSubmitted": "2016-02-18Z",
|
67
|
+
"dc:creator#administrative_unit": "University of Notre Dame::College of Engineering::Electrical Engineering",
|
68
|
+
"dc:description#abstract": "<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>",
|
69
|
+
"dc:language": "English",
|
70
|
+
"dc:modified": "2016-02-18Z",
|
71
|
+
"dc:rights": "All rights reserved",
|
72
|
+
"dc:subject": "Lorem ipsum dolor sit amet",
|
73
|
+
"dc:title": "Lorem ipsum dolor sit amet",
|
74
|
+
"hydra:hasEditor": {
|
75
|
+
"@id": "und:m900ns08d06"
|
76
|
+
},
|
77
|
+
"hydra:hasEditorGroup": {
|
78
|
+
"@id": "und:m613mw2539x"
|
79
|
+
},
|
80
|
+
"ms:degree": {
|
81
|
+
"@id": "_:b1"
|
82
|
+
},
|
83
|
+
"nd:accessEdit": "curate_batch_user",
|
84
|
+
"nd:accessRead": "wma1",
|
85
|
+
"nd:accessReadGroup": "public",
|
86
|
+
"nd:afmodel": "Etd",
|
87
|
+
"nd:depositor": "curate_batch_user"
|
88
|
+
}
|
89
|
+
]
|
90
|
+
}
|
@@ -0,0 +1,49 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'rof/filters/access_to_relsext'
|
3
|
+
require 'support/an_rof_filter'
|
4
|
+
|
5
|
+
RSpec.describe ROF::Filters::AccessToRelsext do
|
6
|
+
it_behaves_like "an ROF::Filter"
|
7
|
+
let(:access_to_relsext){ nil }
|
8
|
+
let(:valid_options) { {} }
|
9
|
+
|
10
|
+
describe '#process' do
|
11
|
+
subject { described_class.new.process(original_object_list) }
|
12
|
+
let(:original_object_list) do
|
13
|
+
[
|
14
|
+
{ "rights" => {
|
15
|
+
"read-groups" => ["bogus", "registered" ],
|
16
|
+
"edit" => [
|
17
|
+
"non-pid",
|
18
|
+
"und:pid"],
|
19
|
+
"embargo-date"=> "2016-12-25",
|
20
|
+
"edit-groups" => ["und:editgrouppid"]
|
21
|
+
}
|
22
|
+
}
|
23
|
+
]
|
24
|
+
end
|
25
|
+
context 'maps to relsext' do
|
26
|
+
it 'will map access to relsext' do
|
27
|
+
expected_object_list = [
|
28
|
+
{
|
29
|
+
"rights" => {
|
30
|
+
"read-groups" => ["bogus", "registered"],
|
31
|
+
"edit" => [
|
32
|
+
"non-pid",
|
33
|
+
"und:pid"],
|
34
|
+
"embargo-date"=> "2016-12-25",
|
35
|
+
"edit-groups" => ["und:editgrouppid"]
|
36
|
+
},
|
37
|
+
"rels-ext" => {
|
38
|
+
"hasEditor" => ["und:pid"],
|
39
|
+
"hasEditorGroup"=> ["und:editgrouppid"]
|
40
|
+
}
|
41
|
+
}
|
42
|
+
]
|
43
|
+
expect(subject).to eq(expected_object_list)
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
|
48
|
+
end
|
49
|
+
end
|
@@ -16,7 +16,7 @@ module ROF
|
|
16
16
|
noid_server = double
|
17
17
|
pool_name = double
|
18
18
|
expect(described_class::NoidsPool).to receive(:new).with(noid_server, pool_name)
|
19
|
-
expect { Label.new(noid_server: noid_server, pool_name: pool_name) }.not_to raise_error
|
19
|
+
expect { Label.new(noids: { noid_server: noid_server, pool_name: pool_name }) }.not_to raise_error
|
20
20
|
end
|
21
21
|
it 'will fail if not given a list of IDs nor a noid_server' do
|
22
22
|
expect { Label.new }.to raise_error(described_class::NoPool)
|
@@ -57,6 +57,29 @@ module ROF
|
|
57
57
|
subject.call
|
58
58
|
end
|
59
59
|
end
|
60
|
+
|
61
|
+
context 'it handles nested objects' do
|
62
|
+
let(:item) {
|
63
|
+
{ "pid" => 'abc:1234',
|
64
|
+
"rels-ext" => {
|
65
|
+
"isMemberOf" => { "@id" => "xyz:789" }
|
66
|
+
}}
|
67
|
+
}
|
68
|
+
|
69
|
+
let(:expected_content) {
|
70
|
+
%Q{
|
71
|
+
<?xml version='1.0' encoding='utf-8' ?>
|
72
|
+
<rdf:RDF xmlns:ns0='info:fedora/fedora-system:def/model#' xmlns:ns1='info:fedora/fedora-system:def/relations-external#' xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'>
|
73
|
+
<rdf:Description rdf:about='info:fedora/abc:1234'>
|
74
|
+
<ns0:hasModel rdf:resource='info:fedora/afmodel:Shoe' />
|
75
|
+
<ns1:isMemberOf rdf:resource='info:fedora/xyz:789' />
|
76
|
+
</rdf:Description>
|
77
|
+
</rdf:RDF>
|
78
|
+
}
|
79
|
+
}
|
80
|
+
|
81
|
+
its(:call) { should be_equivalent_to(expected_content) }
|
82
|
+
end
|
60
83
|
end
|
61
84
|
end
|
62
85
|
end
|
@@ -35,7 +35,7 @@ RSpec.describe ROF::Translators::FedoraToRof do
|
|
35
35
|
"dc"=>"http://purl.org/dc/terms/",
|
36
36
|
"ebucore"=>"http://www.ebu.ch/metadata/ontologies/ebucore/ebucore#",
|
37
37
|
"foaf"=>"http://xmlns.com/foaf/0.1/",
|
38
|
-
'
|
38
|
+
'hydra' => 'http://projecthydra.org/ns/relations#',
|
39
39
|
"mrel"=>"http://id.loc.gov/vocabulary/relators/",
|
40
40
|
"ms" => 'http://www.ndltd.org/standards/metadata/etdms/1.1/',
|
41
41
|
"nd"=>"https://library.nd.edu/ns/terms/",
|
@@ -8,6 +8,14 @@ module ROF
|
|
8
8
|
# find . -maxdepth 2 -name '*.rof' -type f | xargs grep -l <pid>
|
9
9
|
# ```
|
10
10
|
RSpec.describe JsonldToRof do
|
11
|
+
describe 'DLTP-999 regression' do
|
12
|
+
it 'converts @graph > @id keys to pid' do
|
13
|
+
jsonld_from_curatend = JSON.load(File.read(File.join(GEM_ROOT, "spec/fixtures/DLTP-999/pr76f190f54.jsonld")))
|
14
|
+
output = described_class.call(jsonld_from_curatend, {})
|
15
|
+
expect(output.size).to eq(1) # We have one item
|
16
|
+
expect(output.first.fetch('pid')).to eq('und:pr76f190f54')
|
17
|
+
end
|
18
|
+
end
|
11
19
|
describe '.call' do
|
12
20
|
[
|
13
21
|
'2j62s467216',
|
@@ -41,6 +41,8 @@ RSpec.describe ROF::Translators::OsfToRof do
|
|
41
41
|
"hasModel"=>{"@id"=>"fedora-model:hasModel", "@type"=>"@id"},
|
42
42
|
"hasEditor"=>{"@id"=>"hydra:hasEditor", "@type"=>"@id"},
|
43
43
|
"hasEditorGroup"=>{"@id"=>"hydra:hasEditorGroup", "@type"=>"@id"},
|
44
|
+
"hasViewer"=>{"@id"=>"hydra:hasViewer", "@type"=>"@id"},
|
45
|
+
"hasViewerGroup"=>{"@id"=>"hydra:hasViewerGroup", "@type"=>"@id"},
|
44
46
|
"isPartOf"=>{"@type"=>"@id"},
|
45
47
|
"isMemberOfCollection"=>{"@type"=>"@id"},
|
46
48
|
"isEditorOf"=>{"@id"=>"hydra:isEditorOf", "@type"=>"@id"},
|
@@ -50,7 +52,7 @@ RSpec.describe ROF::Translators::OsfToRof do
|
|
50
52
|
"dc"=>"http://purl.org/dc/terms/",
|
51
53
|
"ebucore"=>"http://www.ebu.ch/metadata/ontologies/ebucore/ebucore#",
|
52
54
|
"foaf"=>"http://xmlns.com/foaf/0.1/",
|
53
|
-
'
|
55
|
+
'hydra' => 'http://projecthydra.org/ns/relations#',
|
54
56
|
"mrel"=>"http://id.loc.gov/vocabulary/relators/",
|
55
57
|
'ms' => 'http://www.ndltd.org/standards/metadata/etdms/1.1/',
|
56
58
|
"nd"=>"https://library.nd.edu/ns/terms/",
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rof
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jeremy Friesen
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-05-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rdf
|
@@ -351,6 +351,7 @@ email:
|
|
351
351
|
- jeremy.n.friesen@gmail.com
|
352
352
|
executables:
|
353
353
|
- ".ruby-version"
|
354
|
+
- bundle
|
354
355
|
- csv_to_rof
|
355
356
|
- fedora_to_rof
|
356
357
|
- jsonld_to_rof
|
@@ -368,6 +369,7 @@ files:
|
|
368
369
|
- README.md
|
369
370
|
- Rakefile
|
370
371
|
- bin/.ruby-version
|
372
|
+
- bin/bundle
|
371
373
|
- bin/csv_to_rof
|
372
374
|
- bin/fedora_to_rof
|
373
375
|
- bin/jsonld_to_rof
|
@@ -382,6 +384,7 @@ files:
|
|
382
384
|
- lib/rof/compare_rof.rb
|
383
385
|
- lib/rof/filter.rb
|
384
386
|
- lib/rof/filters.rb
|
387
|
+
- lib/rof/filters/access_to_relsext.rb
|
385
388
|
- lib/rof/filters/bendo.rb
|
386
389
|
- lib/rof/filters/date_stamp.rb
|
387
390
|
- lib/rof/filters/file_to_url.rb
|
@@ -406,6 +409,7 @@ files:
|
|
406
409
|
- lib/rof/version.rb
|
407
410
|
- rof.gemspec
|
408
411
|
- spec/coverage_helper.rb
|
412
|
+
- spec/fixtures/DLTP-999/pr76f190f54.jsonld
|
409
413
|
- spec/fixtures/a.json
|
410
414
|
- spec/fixtures/for_utility_load_items_from_json_file/multiple_items.json
|
411
415
|
- spec/fixtures/for_utility_load_items_from_json_file/parse_error.json
|
@@ -443,6 +447,7 @@ files:
|
|
443
447
|
- spec/lib/rof/collection_spec.rb
|
444
448
|
- spec/lib/rof/compare_rof_spec.rb
|
445
449
|
- spec/lib/rof/filter_spec.rb
|
450
|
+
- spec/lib/rof/filters/access_to_relsext_spec.rb
|
446
451
|
- spec/lib/rof/filters/bendo_spec.rb
|
447
452
|
- spec/lib/rof/filters/date_stamp_spec.rb
|
448
453
|
- spec/lib/rof/filters/file_to_url_spec.rb
|
@@ -492,6 +497,7 @@ specification_version: 4
|
|
492
497
|
summary: Raw Object Format
|
493
498
|
test_files:
|
494
499
|
- spec/coverage_helper.rb
|
500
|
+
- spec/fixtures/DLTP-999/pr76f190f54.jsonld
|
495
501
|
- spec/fixtures/a.json
|
496
502
|
- spec/fixtures/for_utility_load_items_from_json_file/multiple_items.json
|
497
503
|
- spec/fixtures/for_utility_load_items_from_json_file/parse_error.json
|
@@ -529,6 +535,7 @@ test_files:
|
|
529
535
|
- spec/lib/rof/collection_spec.rb
|
530
536
|
- spec/lib/rof/compare_rof_spec.rb
|
531
537
|
- spec/lib/rof/filter_spec.rb
|
538
|
+
- spec/lib/rof/filters/access_to_relsext_spec.rb
|
532
539
|
- spec/lib/rof/filters/bendo_spec.rb
|
533
540
|
- spec/lib/rof/filters/date_stamp_spec.rb
|
534
541
|
- spec/lib/rof/filters/file_to_url_spec.rb
|