aquasync_deltas_aggregator 0.1.1 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|