active-fedora 9.10.4 → 9.11.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (48) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +3 -0
  3. data/History.txt +0 -13
  4. data/lib/active_fedora.rb +7 -0
  5. data/lib/active_fedora/aggregation.rb +11 -0
  6. data/lib/active_fedora/aggregation/base_extension.rb +17 -0
  7. data/lib/active_fedora/aggregation/list_source.rb +103 -0
  8. data/lib/active_fedora/aggregation/ordered_reader.rb +27 -0
  9. data/lib/active_fedora/aggregation/proxy.rb +18 -0
  10. data/lib/active_fedora/associations.rb +40 -0
  11. data/lib/active_fedora/associations/builder/aggregation.rb +51 -0
  12. data/lib/active_fedora/associations/builder/filter.rb +18 -0
  13. data/lib/active_fedora/associations/builder/orders.rb +63 -0
  14. data/lib/active_fedora/associations/filter_association.rb +71 -0
  15. data/lib/active_fedora/associations/orders_association.rb +149 -0
  16. data/lib/active_fedora/attached_files.rb +2 -1
  17. data/lib/active_fedora/attribute_methods.rb +4 -4
  18. data/lib/active_fedora/autosave_association.rb +14 -0
  19. data/lib/active_fedora/base.rb +1 -0
  20. data/lib/active_fedora/cleaner.rb +1 -1
  21. data/lib/active_fedora/errors.rb +3 -0
  22. data/lib/active_fedora/fedora.rb +17 -7
  23. data/lib/active_fedora/file/streaming.rb +13 -4
  24. data/lib/active_fedora/orders.rb +12 -0
  25. data/lib/active_fedora/orders/collection_proxy.rb +8 -0
  26. data/lib/active_fedora/orders/list_node.rb +161 -0
  27. data/lib/active_fedora/orders/ordered_list.rb +264 -0
  28. data/lib/active_fedora/orders/target_proxy.rb +60 -0
  29. data/lib/active_fedora/reflection.rb +215 -42
  30. data/lib/active_fedora/validations.rb +1 -1
  31. data/lib/active_fedora/version.rb +1 -1
  32. data/lib/generators/active_fedora/config/solr/templates/solr/config/schema.xml +1 -1
  33. data/solr/config/schema.xml +1 -1
  34. data/spec/integration/attributes_spec.rb +8 -0
  35. data/spec/integration/file_spec.rb +22 -0
  36. data/spec/integration/has_many_associations_spec.rb +23 -0
  37. data/spec/integration/versionable_spec.rb +6 -6
  38. data/spec/unit/active_fedora_spec.rb +1 -1
  39. data/spec/unit/aggregation/list_source_spec.rb +134 -0
  40. data/spec/unit/aggregation/ordered_reader_spec.rb +43 -0
  41. data/spec/unit/fedora_spec.rb +1 -1
  42. data/spec/unit/filter_spec.rb +133 -0
  43. data/spec/unit/ordered_spec.rb +369 -0
  44. data/spec/unit/orders/list_node_spec.rb +151 -0
  45. data/spec/unit/orders/ordered_list_spec.rb +335 -0
  46. data/spec/unit/orders/reflection_spec.rb +22 -0
  47. data/spec/unit/reflection_spec.rb +2 -4
  48. metadata +25 -3
@@ -0,0 +1,335 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe ActiveFedora::Orders::OrderedList do
4
+ subject { described_class.new(graph, head_uri, tail_uri) }
5
+
6
+ let(:graph) { ActiveTriples::Resource.new(RDF::URI("stuff")) }
7
+ let(:head_uri) { nil }
8
+ let(:tail_uri) { nil }
9
+ describe "#last" do
10
+ context "with no nodes" do
11
+ it "is nil" do
12
+ expect(subject.last).to eq nil
13
+ end
14
+ end
15
+ context "with one node" do
16
+ it "is that node" do
17
+ member = instance_double(ActiveFedora::Base)
18
+ subject.append_target member
19
+
20
+ expect(subject.last.target).to eq member
21
+ end
22
+ end
23
+ context "with two nodes" do
24
+ it "is the last node" do
25
+ member = instance_double(ActiveFedora::Base)
26
+ member_2 = instance_double(ActiveFedora::Base)
27
+ subject.append_target member
28
+ subject.append_target member_2
29
+
30
+ expect(subject.last.target).to eq member_2
31
+ end
32
+ end
33
+ end
34
+
35
+ describe "#order_will_change!" do
36
+ it "marks it as changed" do
37
+ expect(subject).not_to be_changed
38
+ subject.order_will_change!
39
+ expect(subject).to be_changed
40
+ end
41
+ end
42
+
43
+ describe "#target_ids" do
44
+ context "from a graph" do
45
+ let(:head_uri) { RDF::URI.new("parent#bla") }
46
+ let(:tail_uri) { RDF::URI.new("parent#bla") }
47
+ it "returns the IDs without building the object" do
48
+ node_subject = RDF::URI.new("parent#bla")
49
+ member_uri = RDF::URI.new(ActiveFedora::Base.translate_id_to_uri.call("member1"))
50
+ parent_uri = RDF::URI.new("parent")
51
+ graph << [node_subject, RDF::Vocab::ORE.proxyFor, member_uri]
52
+ graph << [node_subject, RDF::Vocab::ORE.proxyIn, parent_uri]
53
+ allow(ActiveFedora::Base).to receive(:from_uri)
54
+
55
+ expect(subject.target_ids).to eq ["member1"]
56
+ expect(ActiveFedora::Base).not_to have_received(:from_uri)
57
+ end
58
+ end
59
+ context "from a built up list" do
60
+ it "returns the IDs" do
61
+ member = instance_double(ActiveFedora::Base, id: "member1")
62
+ subject.append_target member
63
+
64
+ expect(subject.target_ids).to eq ["member1"]
65
+ end
66
+ end
67
+ end
68
+
69
+ describe "#proxy_in" do
70
+ context "when there's one proxy in" do
71
+ it "returns it" do
72
+ member = instance_double(ActiveFedora::Base)
73
+ subject.append_target member, proxy_in: RDF::URI("http://tar.dis")
74
+
75
+ expect(subject.proxy_in).to eq RDF::URI("http://tar.dis")
76
+ end
77
+ end
78
+ context "when the proxy in is an AF::Base object" do
79
+ it "returns the ID" do
80
+ member = instance_double(ActiveFedora::Base)
81
+ owner = instance_double(ActiveFedora::Base, id: "member1")
82
+ subject.append_target member, proxy_in: owner
83
+
84
+ expect(subject.proxy_in).to eq "member1"
85
+ end
86
+ end
87
+ context "when there's two proxy ins" do
88
+ it "returns the first and throws a warning" do
89
+ member = instance_double(ActiveFedora::Base)
90
+ subject.append_target member, proxy_in: RDF::URI("http://tar.dis")
91
+ subject.append_target member, proxy_in: RDF::URI("http://tar.di")
92
+ ActiveFedora::Base.logger = Logger.new(STDERR)
93
+ allow(ActiveFedora::Base.logger).to receive(:warn)
94
+
95
+ expect(subject.proxy_in).to eq RDF::URI("http://tar.dis")
96
+ expect(ActiveFedora::Base.logger).to have_received(:warn).with("WARNING: List contains nodes aggregated under different URIs. Returning only the first.")
97
+ end
98
+ end
99
+ end
100
+
101
+ describe "#[]" do
102
+ context "with no nodes" do
103
+ it "is always nil" do
104
+ expect(subject[0]).to eq nil
105
+ end
106
+ end
107
+ context "with two nodes" do
108
+ let(:member) { instance_double(ActiveFedora::Base) }
109
+ let(:member_2) { instance_double(ActiveFedora::Base) }
110
+ before do
111
+ subject.append_target member
112
+ subject.append_target member_2
113
+ end
114
+ it "can return the first" do
115
+ expect(subject[0].target).to eq member
116
+ end
117
+ it "can return the last" do
118
+ expect(subject[1].target).to eq member_2
119
+ end
120
+ it "returns nil for out of bounds values" do
121
+ expect(subject[3]).to eq nil
122
+ end
123
+ end
124
+ end
125
+ describe "#first" do
126
+ context "with no nodes" do
127
+ it "is nil" do
128
+ expect(subject.first).to eq nil
129
+ end
130
+ end
131
+ context "with a node" do
132
+ it "returns that node" do
133
+ member = instance_double(ActiveFedora::Base)
134
+ subject.append_target member
135
+ expect(subject.first.target).to eq member
136
+ expect(subject).to be_changed
137
+ end
138
+ end
139
+ context "with an item from the graph" do
140
+ let(:head_uri) { RDF::URI.new("parent#bla") }
141
+ let(:tail_uri) { RDF::URI.new("parent#bla") }
142
+ it "builds the node" do
143
+ node_subject = RDF::URI.new("parent#bla")
144
+ member_uri = RDF::URI.new("member1")
145
+ parent_uri = RDF::URI.new("parent")
146
+ graph << [node_subject, RDF::Vocab::ORE.proxyFor, member_uri]
147
+ graph << [node_subject, RDF::Vocab::ORE.proxyIn, parent_uri]
148
+ expect(subject.first.proxy_for).to eq member_uri
149
+ expect(subject.first.proxy_for).to be_kind_of RDF::URI
150
+ expect(subject.first.proxy_in).to eq parent_uri
151
+ expect(subject.first).not_to eq nil
152
+ end
153
+ it "is changed by a delete" do
154
+ node_subject = RDF::URI.new("parent#bla")
155
+ member_uri = RDF::URI.new("member1")
156
+ parent_uri = RDF::URI.new("parent")
157
+ graph << [node_subject, RDF::Vocab::ORE.proxyFor, member_uri]
158
+ graph << [node_subject, RDF::Vocab::ORE.proxyIn, parent_uri]
159
+
160
+ expect(subject).not_to be_changed
161
+ subject.delete_at(0)
162
+ expect(subject).to be_changed
163
+ end
164
+ context "with multiple nodes" do
165
+ let(:tail_uri) { RDF::URI.new("parent#bla2") }
166
+ it "can build multiple nodes" do
167
+ node_subject = RDF::URI.new("parent#bla")
168
+ node_2_subject = RDF::URI.new("parent#bla2")
169
+ member_uri = RDF::URI.new("member1")
170
+ parent_uri = RDF::URI.new("parent")
171
+ graph << [node_subject, RDF::Vocab::ORE.proxyFor, member_uri]
172
+ graph << [node_subject, RDF::Vocab::ORE.proxyIn, parent_uri]
173
+ graph << [node_subject, RDF::Vocab::IANA.next, node_2_subject]
174
+ graph << [node_2_subject, RDF::Vocab::IANA.prev, node_subject]
175
+ graph << [node_2_subject, RDF::Vocab::ORE.proxyFor, member_uri]
176
+ graph << [node_2_subject, RDF::Vocab::ORE.proxyIn, parent_uri]
177
+ expect(subject.length).to eq 2
178
+ expect(subject.tail.prev.prev).to eq subject.head.next
179
+ expect(subject.map(&:target).map(&:rdf_subject)).to eq [member_uri, member_uri]
180
+ expect(subject).not_to be_changed
181
+ end
182
+ end
183
+ end
184
+ end
185
+
186
+ describe "#append_target" do
187
+ it "appends multiple targets" do
188
+ member = instance_double(ActiveFedora::Base)
189
+ proxy_in = instance_double(ActiveFedora::Base, uri: RDF::URI("obj1"))
190
+ 600.times do
191
+ subject.append_target member, proxy_in: proxy_in
192
+ end
193
+ expect(subject.length).to eq 600
194
+ expect(subject.to_a.last.next).not_to eq nil
195
+ expect(subject.to_a.last.proxy_in).to eq proxy_in
196
+ end
197
+ end
198
+
199
+ describe "#insert_at" do
200
+ it "can insert in the middle" do
201
+ member = instance_double(ActiveFedora::Base)
202
+ member_2 = instance_double(ActiveFedora::Base)
203
+ 3.times do
204
+ subject.append_target member
205
+ end
206
+
207
+ subject.insert_at(1, member_2)
208
+
209
+ expect(subject.to_a.map(&:target)).to eq [member, member_2, member, member]
210
+ expect(subject).to be_changed
211
+ end
212
+ it "can insert at the beginning" do
213
+ member = instance_double(ActiveFedora::Base)
214
+ member_2 = instance_double(ActiveFedora::Base)
215
+ 2.times do
216
+ subject.append_target member
217
+ end
218
+
219
+ subject.insert_at(0, member_2)
220
+
221
+ expect(subject.to_a.map(&:target)).to eq [member_2, member, member]
222
+ end
223
+ end
224
+
225
+ describe "#delete_node" do
226
+ it "can delete a node in the middle" do
227
+ member = instance_double(ActiveFedora::Base)
228
+ member_2 = instance_double(ActiveFedora::Base)
229
+ subject.append_target member
230
+ subject.append_target member_2
231
+ subject.append_target member
232
+
233
+ subject.delete_node(subject.to_a[1])
234
+
235
+ expect(subject.map(&:target)).to eq [member, member]
236
+ end
237
+ it "can delete a node at the start" do
238
+ member = instance_double(ActiveFedora::Base)
239
+ member_2 = instance_double(ActiveFedora::Base)
240
+ subject.append_target member_2
241
+ subject.append_target member
242
+ subject.append_target member
243
+
244
+ subject.delete_node(subject.to_a[0])
245
+
246
+ expect(subject.map(&:target)).to eq [member, member]
247
+ end
248
+ it "can delete a node at the end" do
249
+ member = instance_double(ActiveFedora::Base)
250
+ member_2 = instance_double(ActiveFedora::Base)
251
+ subject.append_target member
252
+ subject.append_target member
253
+ subject.append_target member_2
254
+
255
+ subject.delete_node(subject.to_a[2])
256
+
257
+ expect(subject.map(&:target)).to eq [member, member]
258
+ end
259
+ end
260
+
261
+ describe "#delete_at" do
262
+ it "can delete a node in the middle" do
263
+ member = instance_double(ActiveFedora::Base)
264
+ member_2 = instance_double(ActiveFedora::Base)
265
+ subject.append_target member
266
+ subject.append_target member_2
267
+ subject.append_target member
268
+
269
+ subject.delete_at(1)
270
+
271
+ expect(subject.map(&:target)).to eq [member, member]
272
+ end
273
+ it "can delete a node at the start" do
274
+ member = instance_double(ActiveFedora::Base)
275
+ member_2 = instance_double(ActiveFedora::Base)
276
+ subject.append_target member_2
277
+ subject.append_target member
278
+ subject.append_target member
279
+
280
+ subject.delete_at(0)
281
+
282
+ expect(subject.map(&:target)).to eq [member, member]
283
+ end
284
+ it "can delete a node at the end" do
285
+ member = instance_double(ActiveFedora::Base)
286
+ member_2 = instance_double(ActiveFedora::Base)
287
+ subject.append_target member
288
+ subject.append_target member
289
+ subject.append_target member_2
290
+
291
+ subject.delete_at(2)
292
+
293
+ expect(subject.map(&:target)).to eq [member, member]
294
+ end
295
+ it "does not delete nodes if the loc is out of bounds" do
296
+ member = instance_double(ActiveFedora::Base)
297
+ member_2 = instance_double(ActiveFedora::Base)
298
+ subject.append_target member
299
+ subject.append_target member
300
+ subject.append_target member_2
301
+
302
+ subject.delete_at(3)
303
+ subject.delete_at(nil)
304
+
305
+ expect(subject.map(&:target)).to eq [member, member, member_2]
306
+ end
307
+ end
308
+
309
+ describe "#to_graph" do
310
+ it "creates a good graph" do
311
+ member = instance_double(ActiveFedora::Base, id: '123/456')
312
+ owner = instance_double(ActiveFedora::Base, uri: RDF::URI("http://owner.org"))
313
+ subject.append_target member
314
+ subject.append_target member, proxy_in: owner
315
+
316
+ graph = subject.to_graph
317
+
318
+ expect(graph.statements.to_a.length).to eq 5
319
+ expect(graph.subjects.to_a).to eq subject.to_a.map(&:rdf_subject)
320
+ expect(graph.query([nil, RDF::Vocab::ORE.proxyFor, nil]).to_a.last.object).to be_kind_of RDF::URI
321
+ end
322
+ end
323
+
324
+ describe "#changes_committed!" do
325
+ it "sets changed back to false" do
326
+ member = instance_double(ActiveFedora::Base, uri: RDF::URI("http://test.org"))
327
+ subject.append_target member
328
+ expect(subject).to be_changed
329
+
330
+ subject.changes_committed!
331
+
332
+ expect(subject).not_to be_changed
333
+ end
334
+ end
335
+ end
@@ -0,0 +1,22 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe ActiveFedora::Reflection::OrdersReflection do
4
+ subject { described_class.new(name, scope, options, active_fedora) }
5
+ let(:macro) { :orders }
6
+ let(:name) { "ordered_member_proxies" }
7
+ let(:options) { {} }
8
+ let(:scope) { nil }
9
+ let(:active_fedora) { double("active_fedora") }
10
+
11
+ describe "#klass" do
12
+ it "is a proxy" do
13
+ expect(subject.klass).to eq ActiveFedora::Orders::ListNode
14
+ end
15
+ end
16
+
17
+ describe "#class_name" do
18
+ it "is a list node" do
19
+ expect(subject.class_name).to eq "ActiveFedora::Orders::ListNode"
20
+ end
21
+ end
22
+ end
@@ -5,11 +5,10 @@ describe ActiveFedora::Reflection::AssociationReflection do
5
5
  let(:name) { 'dummy' }
6
6
  let(:options) { { inverse_of: :default_permissions } }
7
7
  let(:active_fedora) { double }
8
- let(:instance) { described_class.new(macro, name, nil, options, active_fedora) }
9
8
  subject { instance.send :derive_foreign_key }
10
9
 
11
10
  context "when a has_many" do
12
- let(:macro) { :has_many }
11
+ let(:instance) { ActiveFedora::Reflection::HasManyReflection.new(name, nil, options, active_fedora) }
13
12
 
14
13
  context "and the inverse is a collection association" do
15
14
  let(:inverse) { double(collection?: true) }
@@ -30,11 +29,10 @@ describe ActiveFedora::Reflection::AssociationReflection do
30
29
  let(:name) { 'dummy' }
31
30
  let(:options) { { as: 'foothing' } }
32
31
  let(:active_fedora) { double }
33
- let(:instance) { described_class.new(macro, name, nil, options, active_fedora) }
34
32
  subject { instance.send :automatic_inverse_of }
35
33
 
36
34
  context "when a has_many" do
37
- let(:macro) { :has_many }
35
+ let(:instance) { ActiveFedora::Reflection::HasManyReflection.new(name, nil, options, active_fedora) }
38
36
 
39
37
  context "and the inverse is a collection association" do
40
38
  it { is_expected.to eq :foothing }
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: 9.10.4
4
+ version: 9.11.0
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: 2016-03-28 00:00:00.000000000 Z
13
+ date: 2016-04-15 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rsolr
@@ -368,6 +368,11 @@ files:
368
368
  - config/solr.yml
369
369
  - lib/active-fedora.rb
370
370
  - lib/active_fedora.rb
371
+ - lib/active_fedora/aggregation.rb
372
+ - lib/active_fedora/aggregation/base_extension.rb
373
+ - lib/active_fedora/aggregation/list_source.rb
374
+ - lib/active_fedora/aggregation/ordered_reader.rb
375
+ - lib/active_fedora/aggregation/proxy.rb
371
376
  - lib/active_fedora/association_hash.rb
372
377
  - lib/active_fedora/association_relation.rb
373
378
  - lib/active_fedora/associations.rb
@@ -375,15 +380,18 @@ files:
375
380
  - lib/active_fedora/associations/association_scope.rb
376
381
  - lib/active_fedora/associations/basic_contains_association.rb
377
382
  - lib/active_fedora/associations/belongs_to_association.rb
383
+ - lib/active_fedora/associations/builder/aggregation.rb
378
384
  - lib/active_fedora/associations/builder/association.rb
379
385
  - lib/active_fedora/associations/builder/belongs_to.rb
380
386
  - lib/active_fedora/associations/builder/collection_association.rb
381
387
  - lib/active_fedora/associations/builder/contains.rb
382
388
  - lib/active_fedora/associations/builder/directly_contains.rb
383
389
  - lib/active_fedora/associations/builder/directly_contains_one.rb
390
+ - lib/active_fedora/associations/builder/filter.rb
384
391
  - lib/active_fedora/associations/builder/has_and_belongs_to_many.rb
385
392
  - lib/active_fedora/associations/builder/has_many.rb
386
393
  - lib/active_fedora/associations/builder/indirectly_contains.rb
394
+ - lib/active_fedora/associations/builder/orders.rb
387
395
  - lib/active_fedora/associations/builder/property.rb
388
396
  - lib/active_fedora/associations/builder/singular_association.rb
389
397
  - lib/active_fedora/associations/builder/singular_property.rb
@@ -395,11 +403,13 @@ files:
395
403
  - lib/active_fedora/associations/delete_proxy.rb
396
404
  - lib/active_fedora/associations/directly_contains_association.rb
397
405
  - lib/active_fedora/associations/directly_contains_one_association.rb
406
+ - lib/active_fedora/associations/filter_association.rb
398
407
  - lib/active_fedora/associations/has_and_belongs_to_many_association.rb
399
408
  - lib/active_fedora/associations/has_many_association.rb
400
409
  - lib/active_fedora/associations/id_composite.rb
401
410
  - lib/active_fedora/associations/indirectly_contains_association.rb
402
411
  - lib/active_fedora/associations/null_validator.rb
412
+ - lib/active_fedora/associations/orders_association.rb
403
413
  - lib/active_fedora/associations/rdf.rb
404
414
  - lib/active_fedora/associations/record_composite.rb
405
415
  - lib/active_fedora/associations/singular_association.rb
@@ -474,6 +484,11 @@ files:
474
484
  - lib/active_fedora/nom_datastream.rb
475
485
  - lib/active_fedora/null_relation.rb
476
486
  - lib/active_fedora/om_datastream.rb
487
+ - lib/active_fedora/orders.rb
488
+ - lib/active_fedora/orders/collection_proxy.rb
489
+ - lib/active_fedora/orders/list_node.rb
490
+ - lib/active_fedora/orders/ordered_list.rb
491
+ - lib/active_fedora/orders/target_proxy.rb
477
492
  - lib/active_fedora/pathing.rb
478
493
  - lib/active_fedora/persistence.rb
479
494
  - lib/active_fedora/predicates.rb
@@ -651,6 +666,8 @@ files:
651
666
  - spec/spec_helper.rb
652
667
  - spec/support/an_active_model.rb
653
668
  - spec/unit/active_fedora_spec.rb
669
+ - spec/unit/aggregation/list_source_spec.rb
670
+ - spec/unit/aggregation/ordered_reader_spec.rb
654
671
  - spec/unit/association_hash_spec.rb
655
672
  - spec/unit/attached_files_spec.rb
656
673
  - spec/unit/attributes_spec.rb
@@ -675,6 +692,7 @@ files:
675
692
  - spec/unit/file_path_builder_spec.rb
676
693
  - spec/unit/file_spec.rb
677
694
  - spec/unit/files_hash_spec.rb
695
+ - spec/unit/filter_spec.rb
678
696
  - spec/unit/finder_methods_spec.rb
679
697
  - spec/unit/fixity_service_spec.rb
680
698
  - spec/unit/forbidden_attributes_protection_spec.rb
@@ -692,6 +710,10 @@ files:
692
710
  - spec/unit/nom_datastream_spec.rb
693
711
  - spec/unit/ntriples_datastream_spec.rb
694
712
  - spec/unit/om_datastream_spec.rb
713
+ - spec/unit/ordered_spec.rb
714
+ - spec/unit/orders/list_node_spec.rb
715
+ - spec/unit/orders/ordered_list_spec.rb
716
+ - spec/unit/orders/reflection_spec.rb
695
717
  - spec/unit/pathing_spec.rb
696
718
  - spec/unit/persistence_spec.rb
697
719
  - spec/unit/predicates_spec.rb
@@ -741,7 +763,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
741
763
  version: '0'
742
764
  requirements: []
743
765
  rubyforge_project:
744
- rubygems_version: 2.5.1
766
+ rubygems_version: 2.4.5.1
745
767
  signing_key:
746
768
  specification_version: 4
747
769
  summary: A convenience libary for manipulating documents in the Fedora Repository.