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 +4 -4
- data/active-fedora.gemspec +9 -6
- data/lib/active_fedora/aggregation/list_source.rb +10 -0
- data/lib/active_fedora/core/fedora_id_translator.rb +1 -1
- data/lib/active_fedora/file.rb +1 -1
- data/lib/active_fedora/version.rb +1 -1
- data/lib/active_fedora.rb +3 -1
- data/spec/integration/date_time_properties_spec.rb +25 -1
- metadata +79 -37
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d1a57319331ca1e0be39acbb5b59e6e2c5e9c3ccbd55dad26455cd6e0bb63b54
|
4
|
+
data.tar.gz: 7e77d61dfb2cea447e9f60ecf5c9a61d0c7b4011a1b46139e0a71914cda5edd9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 92b28ccf174ca95f2d8cdf0b6d17c594f3e9717cba879babcf53fae1b9871d7bded7f40c15dbd69267480c9e15a85bb3a77d919aa9e48bbf556b9584861aefa1
|
7
|
+
data.tar.gz: 431456f315b9602012acc2fae788aa4c2b15f1f7e1e6ff8cc2b35609fdaeeb947eaef3b4a06a2d0930539225e831c6f437958c88bc132e4b5021c8c2ac985c9f
|
data/active-fedora.gemspec
CHANGED
@@ -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 "
|
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 "
|
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
|
data/lib/active_fedora/file.rb
CHANGED
@@ -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.
|
182
|
+
headers['Content-Disposition'.freeze] = "attachment; filename=\"#{URI::DEFAULT_PARSER.escape(@original_name)}\"" if @original_name
|
183
183
|
headers
|
184
184
|
end
|
185
185
|
|
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
|
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.
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
242
|
+
name: psych
|
229
243
|
requirement: !ruby/object:Gem::Requirement
|
230
244
|
requirements:
|
231
|
-
- - "
|
245
|
+
- - "<"
|
232
246
|
- !ruby/object:Gem::Version
|
233
|
-
version: '
|
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: '
|
254
|
+
version: '4'
|
241
255
|
- !ruby/object:Gem::Dependency
|
242
|
-
name:
|
256
|
+
name: rails
|
243
257
|
requirement: !ruby/object:Gem::Requirement
|
244
258
|
requirements:
|
245
|
-
- - "
|
259
|
+
- - ">="
|
246
260
|
- !ruby/object:Gem::Version
|
247
|
-
version: '0
|
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
|
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:
|
312
|
+
name: rubocop
|
285
313
|
requirement: !ruby/object:Gem::Requirement
|
286
314
|
requirements:
|
287
|
-
- - "
|
315
|
+
- - "~>"
|
288
316
|
- !ruby/object:Gem::Version
|
289
|
-
version:
|
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:
|
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:
|
354
|
+
name: solr_wrapper
|
313
355
|
requirement: !ruby/object:Gem::Requirement
|
314
356
|
requirements:
|
315
357
|
- - "~>"
|
316
358
|
- !ruby/object:Gem::Version
|
317
|
-
version:
|
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:
|
366
|
+
version: '2.0'
|
325
367
|
- !ruby/object:Gem::Dependency
|
326
|
-
name:
|
368
|
+
name: yard
|
327
369
|
requirement: !ruby/object:Gem::Requirement
|
328
370
|
requirements:
|
329
|
-
- - "
|
371
|
+
- - ">="
|
330
372
|
- !ruby/object:Gem::Version
|
331
|
-
version:
|
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:
|
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.
|
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: []
|