active-fedora 12.2.1 → 12.2.4

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: 67b87aed8ed8788a3a2fc65662dc569e0d01f49880795e88c22d120132a57245
4
- data.tar.gz: dffb8c5c4286c855ba631c2f23ca7bca8c4125eaa937822b1bb5729bb49dd7e4
3
+ metadata.gz: d1a57319331ca1e0be39acbb5b59e6e2c5e9c3ccbd55dad26455cd6e0bb63b54
4
+ data.tar.gz: 7e77d61dfb2cea447e9f60ecf5c9a61d0c7b4011a1b46139e0a71914cda5edd9
5
5
  SHA512:
6
- metadata.gz: 9180480c4806e794130ffb4403dad540e88d197af319fdd709e7f2bd493dc260356eebf87cda17595152e9f2932cdc4dc66844853669af07fd5a2009bae475f3
7
- data.tar.gz: 362078e96780bd6b3a69aee573e747996969e7fe3abfa119709e67f41f8f7f91be4b883058b2b3472539247d212e832518408f602ca8173024e772268734a529
6
+ metadata.gz: 92b28ccf174ca95f2d8cdf0b6d17c594f3e9717cba879babcf53fae1b9871d7bded7f40c15dbd69267480c9e15a85bb3a77d919aa9e48bbf556b9584861aefa1
7
+ data.tar.gz: 431456f315b9602012acc2fae788aa4c2b15f1f7e1e6ff8cc2b35609fdaeeb947eaef3b4a06a2d0930539225e831c6f437958c88bc132e4b5021c8c2ac985c9f
@@ -20,22 +20,25 @@ Gem::Specification.new do |s|
20
20
  s.add_dependency "active-triples", '>= 0.11.0', '< 2.0.0'
21
21
  s.add_dependency "deprecation"
22
22
  s.add_dependency "ldp", '>= 0.7.0', '< 2'
23
+ s.add_dependency 'rdf-vocab', '< 3.1.5'
23
24
  s.add_dependency "ruby-progressbar", '~> 1.0'
24
25
  s.add_dependency 'faraday', '~> 0.12'
25
26
  s.add_dependency 'faraday-encoding', '0.0.4'
26
27
 
27
- s.add_development_dependency "rails"
28
+ s.add_development_dependency "equivalent-xml"
29
+ s.add_development_dependency 'fcrepo_wrapper', '~> 0.2'
30
+ s.add_development_dependency "github_changelog_generator"
28
31
  s.add_development_dependency "rdoc"
29
- s.add_development_dependency "yard"
32
+ s.add_development_dependency "psych", "< 4" # Restricted because 4.0+ do not work with rubocop 0.56.x
33
+ s.add_development_dependency "rails"
30
34
  s.add_development_dependency "rake"
31
- s.add_development_dependency "solr_wrapper", "~> 2.0"
32
- s.add_development_dependency 'fcrepo_wrapper', '~> 0.2'
33
35
  s.add_development_dependency "rspec", "~> 3.5"
34
36
  s.add_development_dependency "rspec-its"
35
- s.add_development_dependency "equivalent-xml"
36
- s.add_development_dependency "simplecov", '~> 0.8'
37
37
  s.add_development_dependency "rubocop", '~> 0.56.0'
38
38
  s.add_development_dependency "rubocop-rspec", '~> 1.12.0'
39
+ s.add_development_dependency "simplecov", '~> 0.8'
40
+ s.add_development_dependency "solr_wrapper", "~> 2.0"
41
+ s.add_development_dependency "yard"
39
42
 
40
43
  s.files = `git ls-files`.split("\n")
41
44
  s.test_files = `git ls-files -- {spec}/*`.split("\n")
@@ -61,6 +61,16 @@ module ActiveFedora
61
61
  ["ActiveFedora::Aggregation::ListSource"]
62
62
  end
63
63
 
64
+ # Short circuit ActiveModel::Dirty which attempts to load the whole ordered list when calling nodes_will_change!
65
+ # which leads to a stack level too deep exception in some cases
66
+ # See https://github.com/samvera/hyrax/issues/4581
67
+ # This approach was also taken in ActiveFedora::File:
68
+ # See https://github.com/samvera/active_fedora/pull/1312/commits/7c8bbbefdacefd655a2ca653f5950c991e1dc999#diff-28356c4daa0d55cbaf97e4269869f510R100-R103
69
+ def attribute_will_change!(attr)
70
+ return super unless attr == 'nodes'
71
+ attributes_changed_by_setter[:nodes] = true
72
+ end
73
+
64
74
  private
65
75
 
66
76
  def persist_ordered_self
@@ -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
@@ -179,7 +179,7 @@ module ActiveFedora
179
179
 
180
180
  def ldp_headers
181
181
  headers = { 'Content-Type'.freeze => mime_type, 'Content-Length'.freeze => content.size.to_s }
182
- headers['Content-Disposition'.freeze] = "attachment; filename=\"#{URI.encode(@original_name)}\"" if @original_name
182
+ headers['Content-Disposition'.freeze] = "attachment; filename=\"#{URI::DEFAULT_PARSER.escape(@original_name)}\"" if @original_name
183
183
  headers
184
184
  end
185
185
 
@@ -1,3 +1,3 @@
1
1
  module ActiveFedora
2
- VERSION = "12.2.1".freeze
2
+ VERSION = '12.2.4'.freeze
3
3
  end
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
@@ -33,9 +33,33 @@ describe ActiveFedora::Base do
33
33
 
34
34
  describe 'serializing' do
35
35
  let(:object) { Foo.new(date: [date]) }
36
- let(:triple) { object.resource.query(predicate: ::RDF::Vocab::DC.date).to_a.first }
36
+ let(:triple) { object.resource.query(predicate: ::RDF::Vocab::DC.date).to_a.first.object }
37
37
  it 'time zone must have semicolin to be a cannonical XMLSchema#dateTime' do
38
38
  expect(triple.to_s).to match(/\+01:00/)
39
39
  end
40
+
41
+ context 'nanoseconds' do
42
+ let(:date) { DateTime.parse("2015-10-22T10:20:03.653991025+01:00") }
43
+
44
+ it 'includes nanosecond precision' do
45
+ expect(triple.to_s).to eq "2015-10-22T10:20:03.653991025+01:00"
46
+ end
47
+
48
+ context 'with trailing zeros' do
49
+ let(:date) { DateTime.parse("2015-10-22T15:34:20.97800000-11:00") }
50
+
51
+ it 'trims trailing zeros' do
52
+ expect(triple.to_s).to eq "2015-10-22T15:34:20.978-11:00"
53
+ end
54
+
55
+ context 'and only zero nanoseconds' do
56
+ let(:date) { DateTime.parse("2015-10-22T15:34:20.000000000-11:00") }
57
+
58
+ it 'trims trailing zeros and dot if nanoseconds are all 0' do
59
+ expect(triple.to_s).to eq "2015-10-22T15:34:20-11:00"
60
+ end
61
+ end
62
+ end
63
+ end
40
64
  end
41
65
  end
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: 12.2.1
4
+ version: 12.2.4
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-01-24 00:00:00.000000000 Z
13
+ date: 2022-03-07 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rsolr
@@ -126,6 +126,20 @@ dependencies:
126
126
  - - "<"
127
127
  - !ruby/object:Gem::Version
128
128
  version: '2'
129
+ - !ruby/object:Gem::Dependency
130
+ name: rdf-vocab
131
+ requirement: !ruby/object:Gem::Requirement
132
+ requirements:
133
+ - - "<"
134
+ - !ruby/object:Gem::Version
135
+ version: 3.1.5
136
+ type: :runtime
137
+ prerelease: false
138
+ version_requirements: !ruby/object:Gem::Requirement
139
+ requirements:
140
+ - - "<"
141
+ - !ruby/object:Gem::Version
142
+ version: 3.1.5
129
143
  - !ruby/object:Gem::Dependency
130
144
  name: ruby-progressbar
131
145
  requirement: !ruby/object:Gem::Requirement
@@ -169,7 +183,7 @@ dependencies:
169
183
  - !ruby/object:Gem::Version
170
184
  version: 0.0.4
171
185
  - !ruby/object:Gem::Dependency
172
- name: rails
186
+ name: equivalent-xml
173
187
  requirement: !ruby/object:Gem::Requirement
174
188
  requirements:
175
189
  - - ">="
@@ -183,21 +197,21 @@ dependencies:
183
197
  - !ruby/object:Gem::Version
184
198
  version: '0'
185
199
  - !ruby/object:Gem::Dependency
186
- name: rdoc
200
+ name: fcrepo_wrapper
187
201
  requirement: !ruby/object:Gem::Requirement
188
202
  requirements:
189
- - - ">="
203
+ - - "~>"
190
204
  - !ruby/object:Gem::Version
191
- version: '0'
205
+ version: '0.2'
192
206
  type: :development
193
207
  prerelease: false
194
208
  version_requirements: !ruby/object:Gem::Requirement
195
209
  requirements:
196
- - - ">="
210
+ - - "~>"
197
211
  - !ruby/object:Gem::Version
198
- version: '0'
212
+ version: '0.2'
199
213
  - !ruby/object:Gem::Dependency
200
- name: yard
214
+ name: github_changelog_generator
201
215
  requirement: !ruby/object:Gem::Requirement
202
216
  requirements:
203
217
  - - ">="
@@ -211,7 +225,7 @@ dependencies:
211
225
  - !ruby/object:Gem::Version
212
226
  version: '0'
213
227
  - !ruby/object:Gem::Dependency
214
- name: rake
228
+ name: rdoc
215
229
  requirement: !ruby/object:Gem::Requirement
216
230
  requirements:
217
231
  - - ">="
@@ -225,33 +239,47 @@ dependencies:
225
239
  - !ruby/object:Gem::Version
226
240
  version: '0'
227
241
  - !ruby/object:Gem::Dependency
228
- name: solr_wrapper
242
+ name: psych
229
243
  requirement: !ruby/object:Gem::Requirement
230
244
  requirements:
231
- - - "~>"
245
+ - - "<"
232
246
  - !ruby/object:Gem::Version
233
- version: '2.0'
247
+ version: '4'
234
248
  type: :development
235
249
  prerelease: false
236
250
  version_requirements: !ruby/object:Gem::Requirement
237
251
  requirements:
238
- - - "~>"
252
+ - - "<"
239
253
  - !ruby/object:Gem::Version
240
- version: '2.0'
254
+ version: '4'
241
255
  - !ruby/object:Gem::Dependency
242
- name: fcrepo_wrapper
256
+ name: rails
243
257
  requirement: !ruby/object:Gem::Requirement
244
258
  requirements:
245
- - - "~>"
259
+ - - ">="
246
260
  - !ruby/object:Gem::Version
247
- version: '0.2'
261
+ version: '0'
248
262
  type: :development
249
263
  prerelease: false
250
264
  version_requirements: !ruby/object:Gem::Requirement
251
265
  requirements:
252
- - - "~>"
266
+ - - ">="
253
267
  - !ruby/object:Gem::Version
254
- version: '0.2'
268
+ version: '0'
269
+ - !ruby/object:Gem::Dependency
270
+ name: rake
271
+ requirement: !ruby/object:Gem::Requirement
272
+ requirements:
273
+ - - ">="
274
+ - !ruby/object:Gem::Version
275
+ version: '0'
276
+ type: :development
277
+ prerelease: false
278
+ version_requirements: !ruby/object:Gem::Requirement
279
+ requirements:
280
+ - - ">="
281
+ - !ruby/object:Gem::Version
282
+ version: '0'
255
283
  - !ruby/object:Gem::Dependency
256
284
  name: rspec
257
285
  requirement: !ruby/object:Gem::Requirement
@@ -281,19 +309,33 @@ dependencies:
281
309
  - !ruby/object:Gem::Version
282
310
  version: '0'
283
311
  - !ruby/object:Gem::Dependency
284
- name: equivalent-xml
312
+ name: rubocop
285
313
  requirement: !ruby/object:Gem::Requirement
286
314
  requirements:
287
- - - ">="
315
+ - - "~>"
288
316
  - !ruby/object:Gem::Version
289
- version: '0'
317
+ version: 0.56.0
290
318
  type: :development
291
319
  prerelease: false
292
320
  version_requirements: !ruby/object:Gem::Requirement
293
321
  requirements:
294
- - - ">="
322
+ - - "~>"
295
323
  - !ruby/object:Gem::Version
296
- version: '0'
324
+ version: 0.56.0
325
+ - !ruby/object:Gem::Dependency
326
+ name: rubocop-rspec
327
+ requirement: !ruby/object:Gem::Requirement
328
+ requirements:
329
+ - - "~>"
330
+ - !ruby/object:Gem::Version
331
+ version: 1.12.0
332
+ type: :development
333
+ prerelease: false
334
+ version_requirements: !ruby/object:Gem::Requirement
335
+ requirements:
336
+ - - "~>"
337
+ - !ruby/object:Gem::Version
338
+ version: 1.12.0
297
339
  - !ruby/object:Gem::Dependency
298
340
  name: simplecov
299
341
  requirement: !ruby/object:Gem::Requirement
@@ -309,33 +351,33 @@ dependencies:
309
351
  - !ruby/object:Gem::Version
310
352
  version: '0.8'
311
353
  - !ruby/object:Gem::Dependency
312
- name: rubocop
354
+ name: solr_wrapper
313
355
  requirement: !ruby/object:Gem::Requirement
314
356
  requirements:
315
357
  - - "~>"
316
358
  - !ruby/object:Gem::Version
317
- version: 0.56.0
359
+ version: '2.0'
318
360
  type: :development
319
361
  prerelease: false
320
362
  version_requirements: !ruby/object:Gem::Requirement
321
363
  requirements:
322
364
  - - "~>"
323
365
  - !ruby/object:Gem::Version
324
- version: 0.56.0
366
+ version: '2.0'
325
367
  - !ruby/object:Gem::Dependency
326
- name: rubocop-rspec
368
+ name: yard
327
369
  requirement: !ruby/object:Gem::Requirement
328
370
  requirements:
329
- - - "~>"
371
+ - - ">="
330
372
  - !ruby/object:Gem::Version
331
- version: 1.12.0
373
+ version: '0'
332
374
  type: :development
333
375
  prerelease: false
334
376
  version_requirements: !ruby/object:Gem::Requirement
335
377
  requirements:
336
- - - "~>"
378
+ - - ">="
337
379
  - !ruby/object:Gem::Version
338
- version: 1.12.0
380
+ version: '0'
339
381
  description: ActiveFedora provides for creating and managing objects in the Fedora
340
382
  Repository Architecture.
341
383
  email:
@@ -717,7 +759,7 @@ homepage: https://github.com/samvera/active_fedora
717
759
  licenses:
718
760
  - Apache-2.0
719
761
  metadata: {}
720
- post_install_message:
762
+ post_install_message:
721
763
  rdoc_options: []
722
764
  require_paths:
723
765
  - lib
@@ -732,8 +774,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
732
774
  - !ruby/object:Gem::Version
733
775
  version: '0'
734
776
  requirements: []
735
- rubygems_version: 3.0.3
736
- signing_key:
777
+ rubygems_version: 3.1.6
778
+ signing_key:
737
779
  specification_version: 4
738
780
  summary: A convenience libary for manipulating documents in the Fedora Repository.
739
781
  test_files: []