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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f8d29a02255da46716747bba4708f04e209adac4000d05c85a79b89facbfd36f
4
- data.tar.gz: aedc7dbe3a0ac8254487860560ade6497913c3f246eb544c737eda1904ddcbf5
3
+ metadata.gz: b2f9eb8fbfa34d943a8aed89f588a58e7a10c6d4fc077c9d0afb4600f38dc771
4
+ data.tar.gz: e1342febdbba15e85b46a032b05336377fc06233c89c94bc5a48d5c9b2a3f33a
5
5
  SHA512:
6
- metadata.gz: 7f407c3923265fefa18ade5f35f71bc8a79171f7959aa877b1c5b49f1422ebb181e47eef5d13ca919f154383d7e2e540aba133ebe801fac7b289bce44702c804
7
- data.tar.gz: 2e0de1699f5fb864e03ade7cfefcabf770d14d7935c0431e12a924479e96330906ebc1daf618135279ba9d09a79dd892aeb356281fef90455b9c3e8131f52a56
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 >>
@@ -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
@@ -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+
@@ -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.encode(@original_name)}\"" if @original_name
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
- immediate_descendant_uris = rdf_graph.query(predicate: ::RDF::Vocab::LDP.contains).map { |descendant| descendant.object.to_s }
63
- immediate_descendant_uris.each do |descendant_uri|
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
- rdf_graph_models.each do |model|
99
- partitioned_uris[model] ||= []
100
- partitioned_uris[model] << rdf_resource.subject
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
@@ -20,5 +20,11 @@ module ActiveFedora
20
20
  def marshal_load(data)
21
21
  data.each { |name, val| instance_variable_set(name, val) }
22
22
  end
23
+
24
+ private
25
+
26
+ def response_as_graph(resp)
27
+ graph_class.new(subject_uri, data: resp.graph.data)
28
+ end
23
29
  end
24
30
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ActiveFedora
4
- VERSION = '13.2.3'
4
+ VERSION = '13.2.7'
5
5
  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 reciever already has predicate defined.
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 < Literal
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.3
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: 2020-11-13 00:00:00.000000000 Z
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.4
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: []