activefedora-aggregation 0.6.0 → 0.7.0
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/lib/active_fedora/aggregation/list_source.rb +1 -0
- data/lib/active_fedora/aggregation/version.rb +1 -1
- data/lib/active_fedora/orders/association.rb +12 -1
- data/lib/active_fedora/orders/collection_proxy.rb +1 -1
- data/lib/active_fedora/orders/ordered_list.rb +21 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5d1dbe9ac23451faae6cff0a8249099b3f0a16fc
|
4
|
+
data.tar.gz: 898c460e4a8a953f275af28566c31c81aaabc45e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 16db6ed94d16e66e200b6b50df6a828fcf939e85263bb7ac87acbd5831fb5324953b488c085a949c0235e2e29d59c1a21add23c2fb8eddf2ed766639b95c8f40
|
7
|
+
data.tar.gz: 50dd60edc92c86eb29ff2a3cf1187637f8e0fcff844d0a6c7e56f0c96e8fe261f4fac63a6d4e406a11180fb6b718acfee48e978a2273b6b1e2092b5e277cd99f
|
@@ -1,6 +1,7 @@
|
|
1
1
|
module ActiveFedora
|
2
2
|
module Aggregation
|
3
3
|
class ListSource < ActiveFedora::Base
|
4
|
+
delegate :order_will_change!, to: :ordered_self
|
4
5
|
property :head, predicate: ::RDF::Vocab::IANA['first'], multiple: false
|
5
6
|
property :tail, predicate: ::RDF::Vocab::IANA.last, multiple: false
|
6
7
|
property :nodes, predicate: ::RDF::DC::hasPart
|
@@ -62,7 +62,18 @@ module ActiveFedora::Orders
|
|
62
62
|
unless unordered_association.target.include?(record)
|
63
63
|
unordered_association.concat(record)
|
64
64
|
end
|
65
|
-
target.insert_at(loc, record)
|
65
|
+
target.insert_at(loc, record, proxy_in: owner)
|
66
|
+
end
|
67
|
+
|
68
|
+
# Insert a target ID in a specific position
|
69
|
+
# @param [Integer] loc Position to insert record ID
|
70
|
+
# @param [String] id ID of record to insert.
|
71
|
+
def insert_target_id_at(loc, id)
|
72
|
+
raise ArgumentError.new "ID can not be nil" if id.nil?
|
73
|
+
unless unordered_association.ids_reader.include?(id)
|
74
|
+
raise ArgumentError.new "#{id} is not a part of #{unordered_association.reflection.name}"
|
75
|
+
end
|
76
|
+
target.insert_proxy_for_at(loc, ActiveFedora::Base.id_to_uri(id), proxy_in: owner)
|
66
77
|
end
|
67
78
|
|
68
79
|
# Delete whatever node is at a specific position
|
@@ -2,7 +2,7 @@ module ActiveFedora
|
|
2
2
|
module Orders
|
3
3
|
class CollectionProxy < ActiveFedora::Associations::CollectionProxy
|
4
4
|
attr_reader :association
|
5
|
-
delegate :append_target, :insert_target_at, :delete_at, to: :association
|
5
|
+
delegate :append_target, :insert_target_at, :insert_target_id_at, :delete_at, to: :association
|
6
6
|
end
|
7
7
|
end
|
8
8
|
end
|
@@ -82,9 +82,23 @@ module ActiveFedora
|
|
82
82
|
|
83
83
|
# @param [Integer] loc Location to insert target at
|
84
84
|
# @param [ActiveFedora::Base] target Target to insert
|
85
|
-
def insert_at(loc, target)
|
85
|
+
def insert_at(loc, target, proxy_in: nil)
|
86
86
|
node = build_node(new_node_subject)
|
87
87
|
node.target = target
|
88
|
+
node.proxy_in = proxy_in
|
89
|
+
if loc == 0
|
90
|
+
append_to(node, head)
|
91
|
+
else
|
92
|
+
append_to(node, ordered_reader.take(loc).last)
|
93
|
+
end
|
94
|
+
end
|
95
|
+
|
96
|
+
# @param [Integer] loc Location to insert target at
|
97
|
+
# @param [String] proxy_for proxyFor to add
|
98
|
+
def insert_proxy_for_at(loc, proxy_for, proxy_in: nil)
|
99
|
+
node = build_node(new_node_subject)
|
100
|
+
node.proxy_for = proxy_for
|
101
|
+
node.proxy_in = proxy_in
|
88
102
|
if loc == 0
|
89
103
|
append_to(node, head)
|
90
104
|
else
|
@@ -123,6 +137,12 @@ module ActiveFedora
|
|
123
137
|
@changed
|
124
138
|
end
|
125
139
|
|
140
|
+
# Marks this ordered list as about to change. Useful for when changing
|
141
|
+
# proxies individually.
|
142
|
+
def order_will_change!
|
143
|
+
@changed = true
|
144
|
+
end
|
145
|
+
|
126
146
|
# @return [::RDF::Graph] Graph representation of this list.
|
127
147
|
def to_graph
|
128
148
|
::RDF::Graph.new.tap do |g|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: activefedora-aggregation
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Justin Coyne
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-11-
|
11
|
+
date: 2015-11-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -216,7 +216,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
216
216
|
version: '0'
|
217
217
|
requirements: []
|
218
218
|
rubyforge_project:
|
219
|
-
rubygems_version: 2.
|
219
|
+
rubygems_version: 2.5.0
|
220
220
|
signing_key:
|
221
221
|
specification_version: 4
|
222
222
|
summary: Aggregations for active-fedora
|