active-fedora 13.2.0 → 13.2.5
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/.circleci/config.yml +11 -1
- data/active-fedora.gemspec +1 -1
- data/config/fedora.yml +3 -3
- data/lib/active_fedora/core/fedora_id_translator.rb +1 -1
- data/lib/active_fedora/core.rb +3 -0
- data/lib/active_fedora/file.rb +1 -1
- data/lib/active_fedora/indexing/descendant_fetcher.rb +7 -11
- data/lib/active_fedora/ldp_resource.rb +6 -0
- data/lib/active_fedora/orders/ordered_list.rb +2 -2
- data/lib/active_fedora/version.rb +3 -1
- data/lib/active_fedora/with_metadata/default_schema.rb +13 -2
- data/lib/active_fedora/with_metadata/default_strategy.rb +1 -1
- data/lib/active_fedora/with_metadata/metadata_node.rb +5 -1
- data/lib/generators/active_fedora/config/fedora/templates/fedora.yml +3 -3
- data/lib/generators/active_fedora/config/solr/templates/solr/conf/schema.xml +3 -3
- metadata +17 -17
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e04e045acabedcf73c91fd93413d63e02d8548073cd938e0579bcfb65cf8c82f
|
4
|
+
data.tar.gz: a66e8b81d3d27f5858dbb1c5de880c69e6c6f4e1f13d3f11191d174788a2769b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 39a8f3d9c0a7da3dfa15b60e315b93f7c947326b46a59f343d78e88eb21ac479dbe1e93d08e340549caecb7b2ba07d0f6ae9817524d03addfc635a87ff5bc37c
|
7
|
+
data.tar.gz: 1f08ff94aa74c88e7c554b4a3378c807e1558e164cfa561db608caf3e9ec97b7af3a7d013018ce54cefa7413fd8da98594de306cd7791e9771e71272241a2b0e
|
data/.circleci/config.yml
CHANGED
@@ -21,7 +21,17 @@ jobs:
|
|
21
21
|
RAILS_VERSION: << parameters.rails_version >>
|
22
22
|
steps:
|
23
23
|
- samvera/cached_checkout
|
24
|
-
|
24
|
+
- checkout
|
25
|
+
- run:
|
26
|
+
name: Check for 'master' branch
|
27
|
+
command: |
|
28
|
+
git fetch --all --quiet --prune --prune-tags
|
29
|
+
if [[ -n "$(git branch --all --list master */master)" ]]; then
|
30
|
+
echo "A branch named 'master' was found. Please remove it."
|
31
|
+
echo "$(git branch --all --list master */master)"
|
32
|
+
fi
|
33
|
+
[[ -z "$(git branch --all --list master */master)" ]]
|
34
|
+
|
25
35
|
- samvera/bundle_for_gem:
|
26
36
|
ruby_version: << parameters.ruby_version >>
|
27
37
|
bundler_version: << parameters.bundler_version >>
|
data/active-fedora.gemspec
CHANGED
@@ -21,7 +21,6 @@ Gem::Specification.new do |s|
|
|
21
21
|
s.add_dependency 'faraday', '~> 0.12'
|
22
22
|
s.add_dependency 'faraday-encoding', '>= 0.0.5'
|
23
23
|
s.add_dependency "ldp", '>= 0.7.0', '< 2'
|
24
|
-
s.add_dependency 'rdf-vocab', '< 3.1.5'
|
25
24
|
s.add_dependency 'rsolr', '>= 1.1.2', '< 3'
|
26
25
|
s.add_dependency "ruby-progressbar", '~> 1.0'
|
27
26
|
|
@@ -29,6 +28,7 @@ Gem::Specification.new do |s|
|
|
29
28
|
s.add_development_dependency 'fcrepo_wrapper', '~> 0.2'
|
30
29
|
s.add_development_dependency "github_changelog_generator"
|
31
30
|
s.add_development_dependency "rdoc"
|
31
|
+
s.add_development_dependency "psych", "< 4" # Restricted because 4.0+ do not work with rubocop 0.56.x
|
32
32
|
s.add_development_dependency "rails"
|
33
33
|
s.add_development_dependency "rake"
|
34
34
|
s.add_development_dependency "rspec", "~> 3.5"
|
data/config/fedora.yml
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
development:
|
2
2
|
user: fedoraAdmin
|
3
3
|
password: fedoraAdmin
|
4
|
-
url: http://<%= ENV['FCREPO_HOST'] || 'localhost' %>:<%= ENV['FCREPO_DEVELOPMENT_PORT'] || ENV['FCREPO_PORT'] || 8984
|
4
|
+
url: http://<%= ENV['FCREPO_HOST'] || 'localhost' %>:<%= ENV['FCREPO_DEVELOPMENT_PORT'] || ENV['FCREPO_PORT'] || 8984 %>/<%= ENV['FCREPO_REST_PATH'] || 'rest' %>
|
5
5
|
base_path: <%= ENV['FCREPO_BASE_PATH'] || '/dev' %>
|
6
6
|
test:
|
7
7
|
user: fedoraAdmin
|
8
8
|
password: fedoraAdmin
|
9
|
-
url: http://<%= ENV['FCREPO_HOST'] || 'localhost' %>:<%= ENV['FCREPO_TEST_PORT'] || ENV['FCREPO_PORT'] || 8986
|
9
|
+
url: http://<%= ENV['FCREPO_HOST'] || 'localhost' %>:<%= ENV['FCREPO_TEST_PORT'] || ENV['FCREPO_PORT'] || 8986 %>/<%= ENV['FCREPO_REST_PATH'] || 'rest' %>
|
10
10
|
base_path: <%= ENV['FCREPO_BASE_PATH'] || '/test' %>
|
11
11
|
production:
|
12
12
|
user: fedoraAdmin
|
13
13
|
password: fedoraAdmin
|
14
|
-
url: http://<%= ENV['FCREPO_HOST'] || 'localhost' %>:<%= ENV['FCREPO_PORT'] || 8983
|
14
|
+
url: http://<%= ENV['FCREPO_HOST'] || 'localhost' %>:<%= ENV['FCREPO_PORT'] || 8983 %>/<%= ENV['FCREPO_REST_PATH'] || 'rest' %>
|
@@ -2,7 +2,7 @@ module ActiveFedora::Core
|
|
2
2
|
class FedoraIdTranslator
|
3
3
|
SLASH = '/'.freeze
|
4
4
|
def self.call(id)
|
5
|
-
id = URI.escape(id, '[]'.freeze)
|
5
|
+
id = URI::DEFAULT_PARSER.escape(id, '[]'.freeze)
|
6
6
|
id = "/#{id}" unless id.start_with? SLASH
|
7
7
|
unless ActiveFedora.fedora.base_path == SLASH || id.start_with?("#{ActiveFedora.fedora.base_path}/")
|
8
8
|
id = ActiveFedora.fedora.base_path + id
|
data/lib/active_fedora/core.rb
CHANGED
@@ -62,6 +62,9 @@ module ActiveFedora
|
|
62
62
|
refresh
|
63
63
|
load_attached_files
|
64
64
|
self
|
65
|
+
rescue Ldp::Gone => err
|
66
|
+
logger.error("Tried to reload an object that has been destroyed.\n\t#{err.message}")
|
67
|
+
raise ActiveFedora::ObjectNotFoundError
|
65
68
|
end
|
66
69
|
|
67
70
|
# Initialize an empty model object and set its +resource+
|
data/lib/active_fedora/file.rb
CHANGED
@@ -174,7 +174,7 @@ module ActiveFedora
|
|
174
174
|
|
175
175
|
def ldp_headers
|
176
176
|
headers = { 'Content-Type'.freeze => mime_type, 'Content-Length'.freeze => content.size.to_s }
|
177
|
-
headers['Content-Disposition'.freeze] = "attachment; filename=\"#{URI.
|
177
|
+
headers['Content-Disposition'.freeze] = "attachment; filename=\"#{URI::DEFAULT_PARSER.escape(@original_name)}\"" if @original_name
|
178
178
|
headers
|
179
179
|
end
|
180
180
|
|
@@ -59,8 +59,8 @@ module ActiveFedora
|
|
59
59
|
|
60
60
|
add_self_to_partitioned_uris unless @exclude_self
|
61
61
|
|
62
|
-
|
63
|
-
|
62
|
+
rdf_graph.query(predicate: ::RDF::Vocab::LDP.contains).each_object do |uri|
|
63
|
+
descendant_uri = uri.to_s
|
64
64
|
self.class.new(
|
65
65
|
descendant_uri,
|
66
66
|
priority_models: priority_models
|
@@ -88,16 +88,12 @@ module ActiveFedora
|
|
88
88
|
@partitioned_uris ||= {}
|
89
89
|
end
|
90
90
|
|
91
|
-
def rdf_graph_models
|
92
|
-
rdf_graph.query(predicate: HAS_MODEL_PREDICATE).collect(&:object).collect do |rdf_object|
|
93
|
-
rdf_object.to_s if rdf_object.literal?
|
94
|
-
end.compact
|
95
|
-
end
|
96
|
-
|
97
91
|
def add_self_to_partitioned_uris
|
98
|
-
|
99
|
-
|
100
|
-
|
92
|
+
rdf_graph.query(predicate: HAS_MODEL_PREDICATE).each_object do |model|
|
93
|
+
next unless model.literal?
|
94
|
+
|
95
|
+
partitioned_uris[model.to_s] ||= []
|
96
|
+
partitioned_uris[model.to_s] << rdf_resource.subject
|
101
97
|
end
|
102
98
|
end
|
103
99
|
end
|
@@ -12,7 +12,7 @@ module ActiveFedora
|
|
12
12
|
# stored.
|
13
13
|
# @param [::RDF::URI] head_subject URI of head node in list.
|
14
14
|
# @param [::RDF::URI] tail_subject URI of tail node in list.
|
15
|
-
def initialize(graph, head_subject, tail_subject)
|
15
|
+
def initialize(graph, head_subject, tail_subject, node_cache: NodeCache.new)
|
16
16
|
@graph = if graph.respond_to?(:graph)
|
17
17
|
graph.graph.data
|
18
18
|
else
|
@@ -20,7 +20,7 @@ module ActiveFedora
|
|
20
20
|
end
|
21
21
|
@head_subject = head_subject
|
22
22
|
@tail_subject = tail_subject
|
23
|
-
@node_cache
|
23
|
+
@node_cache = node_cache
|
24
24
|
@changed = false
|
25
25
|
tail
|
26
26
|
end
|
@@ -3,13 +3,24 @@
|
|
3
3
|
# to add rdf triples to a non-rdf resource and have them persisted.
|
4
4
|
module ActiveFedora::WithMetadata
|
5
5
|
class DefaultSchema < ActiveTriples::Schema
|
6
|
+
def self.legacy_ebucore_vocabulary
|
7
|
+
@legacy_ebucore_vocabulary ||= Class.new(RDF::StrictVocabulary("http://www.ebu.ch/metadata/ontologies/ebucore/ebucore#")) do
|
8
|
+
property :filename,
|
9
|
+
comment: %(The name of the file containing the Resource.).freeze,
|
10
|
+
domain: "ebucore:Resource".freeze,
|
11
|
+
label: "File name".freeze,
|
12
|
+
range: "xsd:string".freeze,
|
13
|
+
type: "rdf:Property".freeze
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
6
17
|
property :label, predicate: ::RDF::RDFS.label
|
7
|
-
property :file_name, predicate:
|
18
|
+
property :file_name, predicate: legacy_ebucore_vocabulary.filename
|
8
19
|
property :file_size, predicate: ::RDF::Vocab::EBUCore.fileSize
|
9
20
|
property :date_created, predicate: ::RDF::Vocab::EBUCore.dateCreated
|
10
21
|
property :date_modified, predicate: ::RDF::Vocab::EBUCore.dateModified
|
11
22
|
property :byte_order, predicate: SweetJPLTerms.byteOrder
|
12
23
|
# This is a server-managed predicate which means Fedora does not let us change it.
|
13
|
-
property :file_hash, predicate: ::RDF::Vocab::PREMIS.hasMessageDigest
|
24
|
+
property :file_hash, predicate: ::RDF::Vocab::PREMIS.hasMessageDigest, server_managed: true
|
14
25
|
end
|
15
26
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
module ActiveFedora::WithMetadata
|
2
2
|
class DefaultStrategy < ActiveTriples::ExtensionStrategy
|
3
|
-
# override apply method to check if property already exists or
|
3
|
+
# override apply method to check if property already exists or receiver already has predicate defined.
|
4
4
|
# Do not add property if the rdf_resource already responds to the property name
|
5
5
|
# Do not add property if the rdf_resource already has a property with the same predicate.
|
6
6
|
def self.apply(resource, property)
|
@@ -33,7 +33,7 @@ module ActiveFedora
|
|
33
33
|
|
34
34
|
def set_value(*args)
|
35
35
|
super
|
36
|
-
attribute_will_change! args.first
|
36
|
+
attribute_will_change! args.first unless server_managed_properties.include?(args.first)
|
37
37
|
end
|
38
38
|
|
39
39
|
def ldp_source
|
@@ -70,6 +70,10 @@ module ActiveFedora
|
|
70
70
|
ChangeSet.new(self, self, changed_attributes.keys).changes
|
71
71
|
end
|
72
72
|
|
73
|
+
def server_managed_properties
|
74
|
+
@server_managed_properties ||= properties.select { |k,v| v[:server_managed] }.keys.map(&:to_sym)
|
75
|
+
end
|
76
|
+
|
73
77
|
class << self
|
74
78
|
attr_writer :parent_class
|
75
79
|
|
@@ -1,15 +1,15 @@
|
|
1
1
|
development:
|
2
2
|
user: fedoraAdmin
|
3
3
|
password: fedoraAdmin
|
4
|
-
url: http://<%= ENV['FCREPO_HOST'] || 'localhost' %>:<%= ENV['FCREPO_DEVELOPMENT_PORT'] || ENV['FCREPO_PORT'] || 8984
|
4
|
+
url: http://<%= ENV['FCREPO_HOST'] || 'localhost' %>:<%= ENV['FCREPO_DEVELOPMENT_PORT'] || ENV['FCREPO_PORT'] || 8984 %>/<%= ENV['FCREPO_REST_PATH'] || 'rest' %>
|
5
5
|
base_path: <%= ENV['FCREPO_BASE_PATH'] || '/dev' %>
|
6
6
|
test:
|
7
7
|
user: fedoraAdmin
|
8
8
|
password: fedoraAdmin
|
9
|
-
url: http://<%= ENV['FCREPO_HOST'] || 'localhost' %>:<%= ENV['FCREPO_TEST_PORT'] || ENV['FCREPO_PORT'] || 8986
|
9
|
+
url: http://<%= ENV['FCREPO_HOST'] || 'localhost' %>:<%= ENV['FCREPO_TEST_PORT'] || ENV['FCREPO_PORT'] || 8986 %>/<%= ENV['FCREPO_REST_PATH'] || 'rest' %>
|
10
10
|
base_path: <%= ENV['FCREPO_BASE_PATH'] || '/test' %>
|
11
11
|
production:
|
12
12
|
user: fedoraAdmin
|
13
13
|
password: fedoraAdmin
|
14
|
-
url: http://<%= ENV['FCREPO_HOST'] || 'localhost' %>:<%= ENV['FCREPO_PORT'] || 8983
|
14
|
+
url: http://<%= ENV['FCREPO_HOST'] || 'localhost' %>:<%= ENV['FCREPO_PORT'] || 8983 %>/<%= ENV['FCREPO_REST_PATH'] || 'rest' %>
|
15
15
|
base_path: <%= ENV['FCREPO_BASE_PATH'] || '/prod' %>
|
@@ -84,7 +84,7 @@
|
|
84
84
|
<!-- A PointField based date field for faster date range queries and date faceting. -->
|
85
85
|
<fieldType name="tdate" class="solr.DatePointField" docValues="true"/>
|
86
86
|
<!-- A DateRange based date field for truly faster date range queries. -->
|
87
|
-
<fieldType name="dateRange" class="solr.DateRangeField"/>
|
87
|
+
<fieldType name="dateRange" class="solr.DateRangeField" omitNorms="true" omitTermFreqAndPositions="true"/>
|
88
88
|
|
89
89
|
<!-- This point type indexes the coordinates as separate fields (subFields)
|
90
90
|
If subFieldType is defined, it references a type, and a dynamic field
|
@@ -261,10 +261,10 @@
|
|
261
261
|
<!-- date range (_dr...) (for faster AND better range queries) -->
|
262
262
|
<dynamicField name="*_dri" type="dateRange" stored="false" indexed="true" multiValued="false"/>
|
263
263
|
<dynamicField name="*_drim" type="dateRange" stored="false" indexed="true" multiValued="true"/>
|
264
|
-
<dynamicField name="*_drs" type="dateRange" stored="true" indexed="false" multiValued="false"/>
|
265
|
-
<dynamicField name="*_drsm" type="dateRange" stored="true" indexed="false" multiValued="true"/>
|
266
264
|
<dynamicField name="*_drsi" type="dateRange" stored="true" indexed="true" multiValued="false"/>
|
267
265
|
<dynamicField name="*_drsim" type="dateRange" stored="true" indexed="true" multiValued="true"/>
|
266
|
+
<dynamicField name="*_drs" type="dateRange" stored="true" indexed="true" multiValued="false"/> <!-- indexed anyway because DateRangeField errors otherwise -->
|
267
|
+
<dynamicField name="*_drsm" type="dateRange" stored="true" indexed="true" multiValued="true"/> <!-- indexed anyway because DateRangeField errors otherwise -->
|
268
268
|
|
269
269
|
<!-- long (_l...) -->
|
270
270
|
<dynamicField name="*_li" type="long" stored="false" indexed="true" multiValued="false"/>
|
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: 13.2.
|
4
|
+
version: 13.2.5
|
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:
|
13
|
+
date: 2022-01-12 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: activemodel
|
@@ -122,20 +122,6 @@ dependencies:
|
|
122
122
|
- - "<"
|
123
123
|
- !ruby/object:Gem::Version
|
124
124
|
version: '2'
|
125
|
-
- !ruby/object:Gem::Dependency
|
126
|
-
name: rdf-vocab
|
127
|
-
requirement: !ruby/object:Gem::Requirement
|
128
|
-
requirements:
|
129
|
-
- - "<"
|
130
|
-
- !ruby/object:Gem::Version
|
131
|
-
version: 3.1.5
|
132
|
-
type: :runtime
|
133
|
-
prerelease: false
|
134
|
-
version_requirements: !ruby/object:Gem::Requirement
|
135
|
-
requirements:
|
136
|
-
- - "<"
|
137
|
-
- !ruby/object:Gem::Version
|
138
|
-
version: 3.1.5
|
139
125
|
- !ruby/object:Gem::Dependency
|
140
126
|
name: rsolr
|
141
127
|
requirement: !ruby/object:Gem::Requirement
|
@@ -226,6 +212,20 @@ dependencies:
|
|
226
212
|
- - ">="
|
227
213
|
- !ruby/object:Gem::Version
|
228
214
|
version: '0'
|
215
|
+
- !ruby/object:Gem::Dependency
|
216
|
+
name: psych
|
217
|
+
requirement: !ruby/object:Gem::Requirement
|
218
|
+
requirements:
|
219
|
+
- - "<"
|
220
|
+
- !ruby/object:Gem::Version
|
221
|
+
version: '4'
|
222
|
+
type: :development
|
223
|
+
prerelease: false
|
224
|
+
version_requirements: !ruby/object:Gem::Requirement
|
225
|
+
requirements:
|
226
|
+
- - "<"
|
227
|
+
- !ruby/object:Gem::Version
|
228
|
+
version: '4'
|
229
229
|
- !ruby/object:Gem::Dependency
|
230
230
|
name: rails
|
231
231
|
requirement: !ruby/object:Gem::Requirement
|
@@ -618,7 +618,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
618
618
|
- !ruby/object:Gem::Version
|
619
619
|
version: '0'
|
620
620
|
requirements: []
|
621
|
-
rubygems_version: 3.1.
|
621
|
+
rubygems_version: 3.1.6
|
622
622
|
signing_key:
|
623
623
|
specification_version: 4
|
624
624
|
summary: A convenience libary for manipulating documents in the Fedora Repository.
|