active-fedora 12.2.1 → 12.2.4

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: 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: []