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 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