statelydb 0.3.0 → 0.4.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/statelydb.rb +18 -4
- data/lib/transaction/transaction.rb +4 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9da53da8635a6ab8f8e30bf199d0b4fe353319888398d8ec524e3b3d7384eae5
|
4
|
+
data.tar.gz: c09b521842ffaa90a6f441328ac470af5ae8f11579058fa88d09f32fd32186fc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fe2629a952686bc0ef0b7e46f8f826430411f8ea6569c454afd702805e53424c15b456ccb5783cdb1691a196b88f488ccde4489f04fdaaa26f1dee24f4eb1bb0
|
7
|
+
data.tar.gz: c43a2b8013e2756b3605511dca167b0197b8cea5bbf83c0ef63b2ca6fbaa99ed07c1c54a5f4b48e20fc3c126d91d57c041508bd51c67ccc717299c3d8f59556f
|
data/lib/statelydb.rb
CHANGED
@@ -92,6 +92,7 @@ module StatelyDB
|
|
92
92
|
key_paths = Array(key_paths).flatten
|
93
93
|
req = Stately::Db::GetRequest.new(
|
94
94
|
store_id: @store_id,
|
95
|
+
schema_version_id: @schema::SCHEMA_VERSION_ID,
|
95
96
|
gets:
|
96
97
|
key_paths.map { |key_path| Stately::Db::GetItem.new(key_path: String(key_path)) },
|
97
98
|
allow_stale: @allow_stale
|
@@ -125,7 +126,8 @@ module StatelyDB
|
|
125
126
|
limit:,
|
126
127
|
sort_property:,
|
127
128
|
sort_direction:,
|
128
|
-
allow_stale: @allow_stale
|
129
|
+
allow_stale: @allow_stale,
|
130
|
+
schema_version_id: @schema::SCHEMA_VERSION_ID
|
129
131
|
)
|
130
132
|
resp = @stub.begin_list(req)
|
131
133
|
process_list_response(resp)
|
@@ -188,6 +190,7 @@ module StatelyDB
|
|
188
190
|
items = Array(items).flatten
|
189
191
|
req = Stately::Db::PutRequest.new(
|
190
192
|
store_id: @store_id,
|
193
|
+
schema_version_id: @schema::SCHEMA_VERSION_ID,
|
191
194
|
puts: items.map do |item|
|
192
195
|
Stately::Db::PutItem.new(
|
193
196
|
item: item.send("marshal_stately")
|
@@ -214,6 +217,7 @@ module StatelyDB
|
|
214
217
|
key_paths = Array(key_paths).flatten
|
215
218
|
req = Stately::Db::DeleteRequest.new(
|
216
219
|
store_id: @store_id,
|
220
|
+
schema_version_id: @schema::SCHEMA_VERSION_ID,
|
217
221
|
deletes: key_paths.map { |key_path| Stately::Db::DeleteItem.new(key_path: String(key_path)) }
|
218
222
|
)
|
219
223
|
@stub.delete(req)
|
@@ -308,6 +312,7 @@ module StatelyDB
|
|
308
312
|
def process_sync_response(resp)
|
309
313
|
changed_items = []
|
310
314
|
deleted_item_paths = []
|
315
|
+
updated_outside_list_window_paths = []
|
311
316
|
token = nil
|
312
317
|
is_reset = false
|
313
318
|
resp.each do |r|
|
@@ -319,6 +324,9 @@ module StatelyDB
|
|
319
324
|
r.result.deleted_items.each do |item|
|
320
325
|
deleted_item_paths << item.key_path
|
321
326
|
end
|
327
|
+
r.result.updated_item_keys_outside_list_window.each do |item|
|
328
|
+
updated_outside_list_window_paths << item.key_path
|
329
|
+
end
|
322
330
|
when :reset
|
323
331
|
is_reset = true
|
324
332
|
when :finished
|
@@ -328,7 +336,7 @@ module StatelyDB
|
|
328
336
|
can_sync: raw_token.can_sync)
|
329
337
|
end
|
330
338
|
end
|
331
|
-
SyncResult.new(changed_items:, deleted_item_paths:, is_reset:, token:)
|
339
|
+
SyncResult.new(changed_items:, deleted_item_paths:, updated_outside_list_window_paths:, is_reset:, token:)
|
332
340
|
end
|
333
341
|
end
|
334
342
|
|
@@ -336,18 +344,24 @@ module StatelyDB
|
|
336
344
|
#
|
337
345
|
# @attr_reader changed_items [Array<StatelyDB::Item>] the items that were changed
|
338
346
|
# @attr_reader deleted_item_paths [Array<String>] the key paths that were deleted
|
347
|
+
# @attr_reader updated_outside_list_window_paths [Array<String>] the key paths of
|
348
|
+
# items that were updated but Stately cannot tell if they were in the sync window.
|
349
|
+
# Treat these as deleted in most cases.
|
339
350
|
# @attr_reader is_reset [Boolean] whether the sync operation reset the token
|
340
351
|
# @attr_reader token [StatelyDB::Token] the token to continue from
|
341
352
|
class SyncResult
|
342
|
-
attr_reader :changed_items, :deleted_item_paths, :is_reset, :token
|
353
|
+
attr_reader :changed_items, :deleted_item_paths, :updated_outside_list_window_paths, :is_reset, :token
|
343
354
|
|
344
355
|
# @param changed_items [Array<StatelyDB::Item>] the items that were changed
|
345
356
|
# @param deleted_item_paths [Array<String>] the key paths that were deleted
|
357
|
+
# @param updated_outside_list_window_paths [Array<String>] key paths for items that were updated
|
358
|
+
# but do not currently use the sort property that the list window is based on
|
346
359
|
# @param is_reset [Boolean] whether the sync operation reset the token
|
347
360
|
# @param token [StatelyDB::Token] the token to continue from
|
348
|
-
def initialize(changed_items:, deleted_item_paths:, is_reset:, token:)
|
361
|
+
def initialize(changed_items:, deleted_item_paths:, updated_outside_list_window_paths:, is_reset:, token:)
|
349
362
|
@changed_items = changed_items
|
350
363
|
@deleted_item_paths = deleted_item_paths
|
364
|
+
@updated_outside_list_window_paths = updated_outside_list_window_paths
|
351
365
|
@is_reset = is_reset
|
352
366
|
@token = token
|
353
367
|
end
|
@@ -124,7 +124,10 @@ module StatelyDB
|
|
124
124
|
# @!visibility private
|
125
125
|
def begin
|
126
126
|
@is_transaction_open = true
|
127
|
-
req = Stately::Db::TransactionRequest.new(
|
127
|
+
req = Stately::Db::TransactionRequest.new(
|
128
|
+
begin: Stately::Db::TransactionBegin.new(store_id: @store_id.to_i,
|
129
|
+
schema_version_id: @schema::SCHEMA_VERSION_ID)
|
130
|
+
)
|
128
131
|
request_only(req)
|
129
132
|
@incoming_responses = @stub.transaction(@outgoing_requests)
|
130
133
|
nil
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: statelydb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stately Cloud, Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-10-
|
11
|
+
date: 2024-10-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: async
|