event_store_client 2.1.1 → 2.1.3

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
  SHA256:
3
- metadata.gz: a751756e4700e5e6329d009398cfa56fffed6c30d7672d57be5dac187a87a837
4
- data.tar.gz: f54b8d2b63d28d040834a0e07c76f12b3dd92a586a93fbd2cad1dd0879c3c2c1
3
+ metadata.gz: cf7ad41170584cd3dbe64ba7afff6e8e3af7a51277cf60e5732b6187e18e8170
4
+ data.tar.gz: 2cb382ee414a9d00373954e05f6a931e9bec042a84491dd58d2d96f4fd47559c
5
5
  SHA512:
6
- metadata.gz: 15412534b3a696afdd183edb291f929940babf747870938624b5262cbd15bf383ef6a4512bfb7690b71bc2774d535d09b4ad0dc81548ec91e7a28360a09528fa
7
- data.tar.gz: 0774e310c1460b957997fe9b78f0f0500483c31ea379f9828c5a6c5861c6dd7807ec7580ee726af1fb3e78f47e58e1a7f390817e4803e95048758f37fc4e657f
6
+ metadata.gz: adec2fceef915b4383e694f299e91963bd27bebcf6b3bcf5a25d8549bc6b6038a2d58ab1937444a8ffa3fd8785ed6f8351ec9b9960537a4d4000d3f7ce80d6c0
7
+ data.tar.gz: ad2b082b49f5c6d40f6f74bf5e31543878b1d09787650381687eb1b9367aecbc80121d277f929a242e26e7f82d15dede426dc0da983ced71712b87497a3ede36
@@ -1,44 +1,43 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'dry-configurable'
4
-
5
3
  module EventStoreClient
4
+ class Config
5
+ include Extensions::OptionsExtension
6
+
7
+ option(:eventstore_url) { 'esdb://localhost:2113' }
8
+ option(:per_page) { 20 }
9
+ option(:mapper) { Mapper::Default.new }
10
+ option(:default_event_class) { DeserializedEvent }
11
+ option(:logger)
12
+ option(:skip_deserialization) { false }
13
+ option(:skip_decryption) { false }
14
+
15
+ def eventstore_url=(value)
16
+ @eventstore_url =
17
+ if value.is_a?(Connection::Url)
18
+ value
19
+ else
20
+ Connection::UrlParser.new.call(value)
21
+ end
22
+ end
23
+
24
+ # @param logger [Logger, nil]
25
+ # @return [Logger, nil]
26
+ def logger=(logger)
27
+ ::GRPC.define_singleton_method :logger do
28
+ @logger ||= logger.nil? ? ::GRPC::DefaultLogger::NoopLogger.new : logger
29
+ end
30
+ @logger = logger
31
+ end
32
+ end
33
+
6
34
  class << self
7
35
  def configure
8
36
  yield(config) if block_given?
9
37
  end
10
38
 
11
39
  def config
12
- @config ||= Class.new do
13
- extend Dry::Configurable
14
-
15
- # @param logger [Logger, nil]
16
- # @return [Logger, nil]
17
- def self.assign_grpc_logger(logger)
18
- ::GRPC.define_singleton_method :logger do
19
- @logger ||= logger.nil? ? ::GRPC::DefaultLogger::NoopLogger.new : logger
20
- end
21
- logger
22
- end
23
-
24
- setting :eventstore_url,
25
- default: 'esdb://localhost:2113',
26
- constructor:
27
- proc { |value|
28
- value.is_a?(Connection::Url) ? value : Connection::UrlParser.new.call(value)
29
- }
30
- setting :per_page, default: 20
31
-
32
- setting :mapper, default: Mapper::Default.new
33
-
34
- setting :default_event_class, default: DeserializedEvent
35
-
36
- setting :logger, constructor: method(:assign_grpc_logger).to_proc
37
-
38
- setting :skip_deserialization, default: false
39
- setting :skip_decryption, default: false
40
- end
41
- @config.config
40
+ @config ||= Config.new
42
41
  end
43
42
 
44
43
  def client
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'event_store_client/configuration'
4
-
5
3
  module EventStoreClient
6
4
  class DataDecryptor
7
5
  include Configuration
@@ -34,8 +34,8 @@ module EventStoreClient
34
34
  def to_grpc
35
35
  {
36
36
  id: { string: id },
37
- data: serializer.serialize(data),
38
- custom_metadata: serializer.serialize(custom_metadata),
37
+ data: serializer.serialize(data).force_encoding('ASCII-8BIT'),
38
+ custom_metadata: serializer.serialize(custom_metadata).force_encoding('ASCII-8BIT'),
39
39
  metadata: metadata
40
40
  }
41
41
  end
@@ -19,7 +19,7 @@ module EventStoreClient
19
19
  # @param data [String, Object]
20
20
  # @return [String]
21
21
  def self.serialize(data)
22
- return data if data.is_a?(String)
22
+ return data.dup if data.is_a?(String)
23
23
 
24
24
  JSON.generate(data)
25
25
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module EventStoreClient
4
- VERSION = '2.1.1'
4
+ VERSION = '2.1.3'
5
5
  end
@@ -4,13 +4,12 @@ module EventStoreClient
4
4
  end
5
5
 
6
6
  require 'json'
7
+ require 'set'
7
8
 
8
9
  require 'event_store_client/serializer/json'
9
10
  require 'event_store_client/serializer/event_serializer'
10
11
  require 'event_store_client/serializer/event_deserializer'
11
12
 
12
- require 'event_store_client/mapper'
13
-
14
13
  require 'event_store_client/extensions/options_extension'
15
14
 
16
15
  require 'event_store_client/utils'
@@ -21,4 +20,6 @@ require 'event_store_client/deserialized_event'
21
20
  require 'event_store_client/serialized_event'
22
21
  require 'event_store_client/configuration'
23
22
 
23
+ require 'event_store_client/mapper'
24
+
24
25
  require 'event_store_client/adapters/grpc'
metadata CHANGED
@@ -1,29 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: event_store_client
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.1
4
+ version: 2.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sebastian Wilgosz
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-11-21 00:00:00.000000000 Z
11
+ date: 2022-11-26 00:00:00.000000000 Z
12
12
  dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: dry-configurable
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - "~>"
18
- - !ruby/object:Gem::Version
19
- version: '0.13'
20
- type: :runtime
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - "~>"
25
- - !ruby/object:Gem::Version
26
- version: '0.13'
27
13
  - !ruby/object:Gem::Dependency
28
14
  name: dry-monads
29
15
  requirement: !ruby/object:Gem::Requirement