active-fedora 13.2.3 → 13.2.7

Sign up to get free protection for your applications and to get access to all the features.
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: []