dapr 0.3.3 → 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/.release-please-manifest.json +1 -1
- data/.version.txt +1 -1
- data/CHANGELOG.md +11 -0
- data/coverage/coverage.json +1 -1
- data/lib/dapr/client/state.rb +70 -0
- data/lib/dapr/client.rb +2 -1
- data/lib/dapr/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 5cef0f3267e0f07b9ccedcfb29297c49cd9c5cbc5d16e556c72c82821c1ff4c8
|
|
4
|
+
data.tar.gz: 23d4d7a6e7b0aa1e9482c08eae87290deb7b23508820c88bcb31f1e34432dad9
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: d6f5d917f97ad175316c3552f48b02e3600e585f9cc13dd38ec7f511f84004c6596edc9891e0e2d4ad84797be87b6d5a587093b79c81b83b1054bf7404aac96c
|
|
7
|
+
data.tar.gz: 6516a0a52f7538992c413d0fdf8e888124d5840e3f149bdd9247a191763256fdd4a4912037acadccd4bfd87d3b736de163af77f917fee3e5cedb2c1d81a5889e
|
data/.version.txt
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.
|
|
1
|
+
0.4.0
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
## [Unreleased]
|
|
2
2
|
|
|
3
|
+
## [0.4.0](https://github.com/rubyists/dapr-ruby-client/compare/v0.3.3...v0.4.0) (2024-10-23)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### ⚠ BREAKING CHANGES
|
|
7
|
+
|
|
8
|
+
* **state:** Adds state management component ([#74](https://github.com/rubyists/dapr-ruby-client/issues/74))
|
|
9
|
+
|
|
10
|
+
### Features
|
|
11
|
+
|
|
12
|
+
* **state:** Adds state management component ([#74](https://github.com/rubyists/dapr-ruby-client/issues/74)) ([2fc596d](https://github.com/rubyists/dapr-ruby-client/commit/2fc596dad1439c5d52a03bdf763d8b0d38aa9bab))
|
|
13
|
+
|
|
3
14
|
## [0.3.3](https://github.com/rubyists/dapr-ruby-client/compare/v0.3.2...v0.3.3) (2024-10-08)
|
|
4
15
|
|
|
5
16
|
|
data/coverage/coverage.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"timestamp":
|
|
1
|
+
{"timestamp":1729718516,"command_name":"Unit Tests","files":[{"filename":"/home/bougyman/rubyists/dapr/lib/dapr.rb","covered_percent":100.0,"coverage":{"lines":[null,null,1,1,null,null,1,1,7,null,null,null,1,1,1,1,1,null,null]},"covered_strength":1.6,"covered_lines":10,"lines_of_code":10},{"filename":"/home/bougyman/rubyists/dapr/lib/dapr/client.rb","covered_percent":100.0,"coverage":{"lines":[null,null,1,1,1,1,1,null,1,1,null,1,1,1,1,1,1,null,1,4,null,1,1,null,null,1,11,null,null,1,1,null,null,1,14,null,null,null,1,1,null,1,5,null,null,1,1,1,1,null,1,null,null,1,1,null,null,null,null,null]},"covered_strength":1.8823529411764706,"covered_lines":34,"lines_of_code":34},{"filename":"/home/bougyman/rubyists/dapr/lib/dapr/client/configuration.rb","covered_percent":100.0,"coverage":{"lines":[null,null,1,null,1,1,1,null,1,null,1,1,null,null,1,null,null,1,null,1,1,null,1,1,1,null,null,null,null,null,null,null,1,1,1,1,null,null,1,1,1,null,null,null,null,null]},"covered_strength":1.0,"covered_lines":21,"lines_of_code":21},{"filename":"/home/bougyman/rubyists/dapr/lib/dapr/client/lock.rb","covered_percent":100.0,"coverage":{"lines":[null,null,1,1,null,1,1,1,null,1,null,1,1,null,null,1,null,null,1,null,1,1,null,null,null,null,null,null,1,6,6,null,null,null,null,null,null,1,6,6,null,null,null,1,6,6,5,5,null,null,1,null,null,null,1,4,4,4,null,3,3,null,null,1,null,null,1,18,null,null,null,null,null,1,6,null,null,null,null,null]},"covered_strength":3.085714285714286,"covered_lines":35,"lines_of_code":35},{"filename":"/home/bougyman/rubyists/dapr/lib/dapr/client/state.rb","covered_percent":100.0,"coverage":{"lines":[null,null,1,null,1,1,1,null,null,1,null,1,1,null,1,null,1,1,1,1,1,1,null,null,null,null,null,null,1,1,null,null,null,null,null,null,null,1,1,null,null,null,null,null,1,2,null,null,null,null,null,null,1,1,1,1,null,null,null,null,1,3,1,1,1,null,null,null,null,null]},"covered_strength":1.103448275862069,"covered_lines":29,"lines_of_code":29},{"filename":"/home/bougyman/rubyists/dapr/lib/dapr/version.rb","covered_percent":100.0,"coverage":{"lines":[null,null,1,1,null,1,null,null,null]},"covered_strength":1.0,"covered_lines":3,"lines_of_code":3}],"metrics":{"covered_percent":100.0,"covered_strength":1.8484848484848484,"covered_lines":132,"total_lines":132}}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative '../client'
|
|
4
|
+
|
|
5
|
+
module Rubyists
|
|
6
|
+
module Dapr
|
|
7
|
+
module Client
|
|
8
|
+
# The State class is a client for the Dapr State Management Building block
|
|
9
|
+
# Info here: https://docs.dapr.io/developing-applications/building-blocks/state-management/
|
|
10
|
+
class State
|
|
11
|
+
# Include the client module
|
|
12
|
+
include Client
|
|
13
|
+
include SemanticLogger::Loggable
|
|
14
|
+
|
|
15
|
+
attr_reader :store_name
|
|
16
|
+
|
|
17
|
+
Empty = Google::Protobuf::Empty
|
|
18
|
+
Runtime = Client::Runtime
|
|
19
|
+
GetBulkStateResponse = Runtime::GetBulkStateResponse
|
|
20
|
+
GetStateRequest = Runtime::GetBulkStateRequest
|
|
21
|
+
SaveStateRequest = Runtime::SaveStateRequest
|
|
22
|
+
DEFAULT_STORE_NAME = 'statestore'
|
|
23
|
+
|
|
24
|
+
# @param keys [Array<String>] keys to retrieve from the state store
|
|
25
|
+
# @param store_name [String] name of the State Management component, defaults to 'dapr-statestore'
|
|
26
|
+
# @param metadata [Hash] metadata to include
|
|
27
|
+
#
|
|
28
|
+
# @return [GetBulkStateResponse] The response from the Dapr State Management component
|
|
29
|
+
def self.get(*keys, store_name: DEFAULT_STORE_NAME, metadata: {})
|
|
30
|
+
new(store_name).get(keys, metadata:)
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
# @param states [Hash] states to set in the state store, key/value pairs
|
|
34
|
+
# @param store_name [String] name of the State Management component, defaults to 'dapr-statestore'
|
|
35
|
+
# @param metadata [Hash] metadata to include
|
|
36
|
+
#
|
|
37
|
+
# @return [Empty] The response from the Dapr State Management component
|
|
38
|
+
def self.set(states, store_name: DEFAULT_STORE_NAME, metadata: {})
|
|
39
|
+
new(store_name).set(states, metadata:)
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
# Initialize the State Management client
|
|
43
|
+
#
|
|
44
|
+
# @param store_name [String] name of the Dapr Configuration component to use
|
|
45
|
+
def initialize(store_name)
|
|
46
|
+
@store_name = store_name
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
# @param keys [Array<String>] keys to retrieve from the state store
|
|
50
|
+
# @param metadata [Hash] metadata to include
|
|
51
|
+
#
|
|
52
|
+
# @return [Array<BulkStateItem>] Array of items returned by the state store
|
|
53
|
+
def get(keys, metadata: {})
|
|
54
|
+
logger.debug('Getting state', keys:, store_name:, metadata:)
|
|
55
|
+
response = singleton.get_bulk_state GetStateRequest.new(store_name:, keys:, metadata:)
|
|
56
|
+
response.items
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
# @param states [Hash] states to set (key/values in the state store)
|
|
60
|
+
# @param metadata [Hash] metadata to include
|
|
61
|
+
def set(states, metadata: {})
|
|
62
|
+
states = states.map { |key, value| { key:, value:, metadata: } }
|
|
63
|
+
request = SaveStateRequest.new(store_name:, states:)
|
|
64
|
+
logger.debug('Setting state', states:, store_name:)
|
|
65
|
+
singleton.save_state request
|
|
66
|
+
end
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
end
|
data/lib/dapr/client.rb
CHANGED
|
@@ -11,9 +11,10 @@ module Rubyists
|
|
|
11
11
|
# The namespace for the Dapr client
|
|
12
12
|
module Client
|
|
13
13
|
include SemanticLogger::Loggable
|
|
14
|
+
Runtime = ::Dapr::Proto::Runtime::V1
|
|
14
15
|
DAPR_PORT = ENV.fetch('DAPR_GRPC_PORT', nil)
|
|
15
16
|
DAPR_URI = ENV.fetch('DAPR_GRPC_HOST', 'localhost')
|
|
16
|
-
DAPR_STUB =
|
|
17
|
+
DAPR_STUB = Runtime::Dapr::Stub
|
|
17
18
|
|
|
18
19
|
def self.client(dapr_port: DAPR_PORT, dapr_uri: DAPR_URI)
|
|
19
20
|
return DummyClient.new if dapr_port.nil?
|
data/lib/dapr/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: dapr
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.4.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Tj (bougyman) Vanderpoel
|
|
@@ -9,7 +9,7 @@ authors:
|
|
|
9
9
|
autorequire:
|
|
10
10
|
bindir: exe
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date: 2024-10-
|
|
12
|
+
date: 2024-10-23 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: dapr-ruby
|
|
@@ -63,6 +63,7 @@ files:
|
|
|
63
63
|
- lib/dapr/client/configuration.rb
|
|
64
64
|
- lib/dapr/client/lock.rb
|
|
65
65
|
- lib/dapr/client/publisher.rb
|
|
66
|
+
- lib/dapr/client/state.rb
|
|
66
67
|
- lib/dapr/service.rb
|
|
67
68
|
- lib/dapr/service/subscriber.rb
|
|
68
69
|
- lib/dapr/version.rb
|