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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f34d448bd0a4b0bc443b50e52f5ed4a7e22b7ab1
4
- data.tar.gz: 681f923df0c5d4f25174f8b5623b45c255c5637a
3
+ metadata.gz: e56fed9acdc7b4cde577bebf8c10ff8330fdd471
4
+ data.tar.gz: e8fac9ce07824c112f56fbf4e1a55efa3d51a8e9
5
5
  SHA512:
6
- metadata.gz: cb225e95dc1c9082d43418adcaed4fe93610ccc08c99c7847e631d3b2458aaa0521bf8cfa5311d48677187c9c4cfac2d9d75abb105790af3122ad194820238d0
7
- data.tar.gz: 1aa12134a5bbe5fa15095e685c87555c5dba66297e702ffee0d0be2018f074aef270b74540f3627334c5f8013a739343578bff9ba1e7112ee1ca4dd1f5d5c1fa
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.unpack_and_commit_delta_pack(delta_pack)
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 regist_model_manager(*klasses)
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 # [TODO] raise error if any commit failed.
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.1.1
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-01 00:00:00.000000000 Z
11
+ date: 2014-08-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: simple_uuid