active-fedora 13.2.3 → 13.2.7
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 -0
- 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/version.rb +1 -1
- data/lib/active_fedora/with_metadata/default_schema.rb +1 -1
- data/lib/active_fedora/with_metadata/default_strategy.rb +1 -1
- data/lib/active_fedora/with_metadata/metadata_node.rb +5 -1
- data/lib/active_fedora.rb +3 -1
- metadata +20 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b2f9eb8fbfa34d943a8aed89f588a58e7a10c6d4fc077c9d0afb4600f38dc771
|
4
|
+
data.tar.gz: e1342febdbba15e85b46a032b05336377fc06233c89c94bc5a48d5c9b2a3f33a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4fcd0f270caea3bae2a2d4e6c00e1ba6c12d6d61523c16942b4c674a78f8f28490d29e4b62e666e2babfaec44be18a9b581b4e5a4191ed9c95a748bf39d91bf0
|
7
|
+
data.tar.gz: 4375e0c3877dad17e06ec3481ea0801e5e6ab5815d1f752e0a86efb0291334573af3ce068941f71ca48c9a18140d093fedce1b6b12b965085ea9c5d488f4ed1f
|
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
@@ -28,6 +28,7 @@ Gem::Specification.new do |s|
|
|
28
28
|
s.add_development_dependency 'fcrepo_wrapper', '~> 0.2'
|
29
29
|
s.add_development_dependency "github_changelog_generator"
|
30
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
|
31
32
|
s.add_development_dependency "rails"
|
32
33
|
s.add_development_dependency "rake"
|
33
34
|
s.add_development_dependency "rspec", "~> 3.5"
|
@@ -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
|
@@ -21,6 +21,6 @@ module ActiveFedora::WithMetadata
|
|
21
21
|
property :date_modified, predicate: ::RDF::Vocab::EBUCore.dateModified
|
22
22
|
property :byte_order, predicate: SweetJPLTerms.byteOrder
|
23
23
|
# This is a server-managed predicate which means Fedora does not let us change it.
|
24
|
-
property :file_hash, predicate: ::RDF::Vocab::PREMIS.hasMessageDigest
|
24
|
+
property :file_hash, predicate: ::RDF::Vocab::PREMIS.hasMessageDigest, server_managed: true
|
25
25
|
end
|
26
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
|
|
data/lib/active_fedora.rb
CHANGED
@@ -11,9 +11,11 @@ require 'active_triples'
|
|
11
11
|
# Monkey patching RDF::Literal::DateTime to support fractional seconds.
|
12
12
|
# See https://github.com/samvera/active_fedora/issues/497
|
13
13
|
# Also monkey patches in a fix for timezones to be stored properly.
|
14
|
+
# This is needed in both RDF <= 3.2.4 and RDF >= 3.2.5
|
15
|
+
# TODO: Figure out how to contribute something upstream to avoid monkey-patching
|
14
16
|
module RDF
|
15
17
|
class Literal
|
16
|
-
class DateTime
|
18
|
+
class DateTime
|
17
19
|
ALTERNATIVE_FORMAT = '%Y-%m-%dT%H:%M:%S'.freeze
|
18
20
|
DOT = '.'.freeze
|
19
21
|
EMPTY = ''.freeze
|
metadata
CHANGED
@@ -1,16 +1,16 @@
|
|
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.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matt Zumwalt
|
8
8
|
- McClain Looney
|
9
9
|
- Justin Coyne
|
10
|
-
autorequire:
|
10
|
+
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2022-03-04 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: activemodel
|
@@ -212,6 +212,20 @@ dependencies:
|
|
212
212
|
- - ">="
|
213
213
|
- !ruby/object:Gem::Version
|
214
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'
|
215
229
|
- !ruby/object:Gem::Dependency
|
216
230
|
name: rails
|
217
231
|
requirement: !ruby/object:Gem::Requirement
|
@@ -589,7 +603,7 @@ homepage: https://github.com/samvera/active_fedora
|
|
589
603
|
licenses:
|
590
604
|
- Apache-2.0
|
591
605
|
metadata: {}
|
592
|
-
post_install_message:
|
606
|
+
post_install_message:
|
593
607
|
rdoc_options: []
|
594
608
|
require_paths:
|
595
609
|
- lib
|
@@ -604,8 +618,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
604
618
|
- !ruby/object:Gem::Version
|
605
619
|
version: '0'
|
606
620
|
requirements: []
|
607
|
-
rubygems_version: 3.1.
|
608
|
-
signing_key:
|
621
|
+
rubygems_version: 3.1.6
|
622
|
+
signing_key:
|
609
623
|
specification_version: 4
|
610
624
|
summary: A convenience libary for manipulating documents in the Fedora Repository.
|
611
625
|
test_files: []
|