aquasync_deltas_aggregator 0.1.1 → 0.2.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/aggregators/deltas_aggregator.rb +18 -8
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e56fed9acdc7b4cde577bebf8c10ff8330fdd471
|
4
|
+
data.tar.gz: e8fac9ce07824c112f56fbf4e1a55efa3d51a8e9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c9fb5d1f7cbcba7ca92b23bb54d08f150de025bfef54df1a7de2e97ce6a70dc0730045f68f0a421e0d987c9065b80ee6d84f3c57efe1c782dc5c1220e9e1e038
|
7
|
+
data.tar.gz: 4b99ab7ffca40630992d387e008bf26a360859b8c60f7f3e864d534c52349b8025c1577fc546f73fa0f92d452152f9b6baad099b5694a507be154781662bd415
|
@@ -8,9 +8,13 @@ require_relative '../delta_pack/delta_pack_builder'
|
|
8
8
|
# aggregator = DeltasAggregator.new
|
9
9
|
# aggregator.regist_model_manager(Book, Author)
|
10
10
|
# @example Obtain a DeltaPack from registered models.
|
11
|
-
# aggregator.pack_deltas
|
11
|
+
# aggregator.pack_deltas(ust)
|
12
12
|
# @example Commit a DeltaPack to registered models.
|
13
|
-
# aggregator.
|
13
|
+
# aggregator.commit_delta_pack(delta_pack)
|
14
|
+
# @example Add begin_of_association_chain options
|
15
|
+
# aggregator.pack_deltas(ust, begin_of_association_chain: current_user)
|
16
|
+
# @example Add append_attributes options
|
17
|
+
# aggregator.pack_deltas(ust, append_attributes: {all: {user_id: "some_id"}})
|
14
18
|
# @note Please implement #aq_deltas and #aq_commit_deltas to models. (DeltasAggregator requirement.)
|
15
19
|
class DeltasAggregator
|
16
20
|
attr_accessor :model_managers
|
@@ -22,7 +26,7 @@ class DeltasAggregator
|
|
22
26
|
# Adds target models to aggregate.
|
23
27
|
# @param klass [Aquasync::Base]
|
24
28
|
# @return [NilClass]
|
25
|
-
def
|
29
|
+
def add_model_manager(*klasses)
|
26
30
|
klasses.each do |klass|
|
27
31
|
name = klass.name
|
28
32
|
model_managers[name] = klass
|
@@ -39,22 +43,28 @@ class DeltasAggregator
|
|
39
43
|
# Unpacks a DeltaPack and delegates #aq_commit_deltas to registered model managers.
|
40
44
|
# @param [Hash] A DeltaPack (https://github.com/AQAquamarine/aquasync-protocol/blob/master/deltapack.md)
|
41
45
|
# @return [NilClass]
|
42
|
-
def commit_delta_pack(delta_pack)
|
46
|
+
def commit_delta_pack(delta_pack, opts = {})
|
43
47
|
unpacked_deltas = DeltaPackUnpacker.new.unpack(delta_pack).deltas
|
44
48
|
unpacked_deltas.each do |model_name, deltas|
|
45
49
|
manager = model_manager_class(model_name)
|
46
|
-
manager.aq_commit_deltas deltas
|
47
|
-
end
|
50
|
+
manager.aq_commit_deltas deltas, opts
|
51
|
+
end
|
48
52
|
end
|
49
53
|
|
50
54
|
# Packs deltas collected from registered model managers via #aq_deltas to DeltaPack.
|
51
55
|
# @param [Integer] from_ust latestUST
|
52
56
|
# @return [Hash] A DeltaPack (https://github.com/AQAquamarine/aquasync-protocol/blob/master/deltapack.md)
|
53
|
-
def pack_deltas(from_ust)
|
57
|
+
def pack_deltas(from_ust, opts = {})
|
54
58
|
builder = DeltaPackBuilder.new
|
55
59
|
model_managers.each do |model_name, model_manager|
|
56
|
-
builder.push_documents model_manager.aq_deltas(from_ust)
|
60
|
+
builder.push_documents model_manager.aq_deltas(from_ust, opts)
|
57
61
|
end
|
58
62
|
builder.delta_pack
|
59
63
|
end
|
64
|
+
|
65
|
+
# @deprecated
|
66
|
+
def regist_model_manager(*klasses)
|
67
|
+
warn "DEPRECATED"
|
68
|
+
add_model_manager(*klasses)
|
69
|
+
end
|
60
70
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: aquasync_deltas_aggregator
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- kaiinui
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-08-
|
11
|
+
date: 2014-08-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: simple_uuid
|