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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 00a0ee2d4db27136d4c181eb008490eecab14d91894881bf7d2d8c730ea4820a
4
- data.tar.gz: edcf4cf277ccaa6d284e8aad6c8a3cb4c418e88010caa35959316bb0659c77cf
3
+ metadata.gz: e04e045acabedcf73c91fd93413d63e02d8548073cd938e0579bcfb65cf8c82f
4
+ data.tar.gz: a66e8b81d3d27f5858dbb1c5de880c69e6c6f4e1f13d3f11191d174788a2769b
5
5
  SHA512:
6
- metadata.gz: 18a144b467bd18f7ca1d9cccce519d32402580986f8d7b917306f029f25048d245226b7c25dfb36625428f197942eca236cbc82702848695447b90c2a44dda73
7
- data.tar.gz: '089c1166e138e0e861f341862cdd4967f048356c55de015e96b1f611113d64b85c0df4900be47e79b8c1db8f45585ee9e5deb2739b86aae8a2800737d380bbb2'
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 >>
@@ -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 %>/rest
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 %>/rest
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 %>/rest
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
@@ -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
@@ -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 ||= NodeCache.new
23
+ @node_cache = node_cache
24
24
  @changed = false
25
25
  tail
26
26
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module ActiveFedora
2
- VERSION = '13.2.0'.freeze
4
+ VERSION = '13.2.5'
3
5
  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: ::RDF::Vocab::EBUCore.filename
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 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
 
@@ -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 %>/rest
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 %>/rest
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 %>/rest
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.0
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: 2020-07-07 00:00:00.000000000 Z
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.4
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.