bmx-event_hook_client_server 1.0.13 → 1.0.14

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
- SHA256:
3
- metadata.gz: 8ba8b1914d537dab9bddba9150d65445a335923fb4ebb7bfc91b47f85a34d639
4
- data.tar.gz: d616a2f88edfcf8496061e205169ede709c9a1215aa365b43433f68dd98ba250
2
+ SHA1:
3
+ metadata.gz: f94818f045fc39ccfa040260d12e48ec2c9e6a62
4
+ data.tar.gz: 4b8eab2970ef138fa742a2f3be228a3fe4320c72
5
5
  SHA512:
6
- metadata.gz: ee358a11fb1c433d61104cd4d5fafc7b81a3d6b44642edda11beb5c45011098b96af3154f09ea3d61520c4a31e2fa99b9fbdd2f1eb99e54f770f4ac0a5cab58f
7
- data.tar.gz: e24818c498fa28a21c0e15c64cab5237dfc2ce0caea2d2ed1f0e4591d029345830944ed0d40da09e2f9b3b90be70ab9d155a98efb8650224d907ceec91ec6dd6
6
+ metadata.gz: a72784c0984e1e06c35fa49fb6d6e42b69d2ca092e357bda760564981165ec59232ed579ab436d317b7b4f6a2a43ac554bf2988f215477c360f79cfac2d7b536
7
+ data.tar.gz: 4921ecc47b6eefbc10a4120f17e3573d2d3f98f021b5dbc49c92add14484bf9b8b357de90c39c1ee6d320ac080772426619c21faaef12951be1f656a183bba97
data/Gemfile CHANGED
@@ -8,4 +8,5 @@ group :development, :test do
8
8
  gem 'grpc'
9
9
  gem 'grpc-tools'
10
10
  gem 'pry'
11
+ gem 'timecop'
11
12
  end
@@ -1,20 +1,22 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- bmx-event_hook_client_server (1.0.12)
4
+ bmx-event_hook_client_server (1.0.13)
5
5
  dry-struct (~> 1.0)
6
- google-protobuf (~> 3.9.2)
7
- grpc (~> 1.24.0)
6
+ google-protobuf (~> 3.11.4)
7
+ grpc (~> 1.27.0)
8
+ retriable (~> 3.1.2)
8
9
 
9
10
  GEM
10
11
  remote: https://rubygems.org/
11
12
  specs:
12
13
  coderay (1.1.2)
13
- concurrent-ruby (1.1.5)
14
+ concurrent-ruby (1.1.6)
14
15
  diff-lcs (1.3)
15
- dry-configurable (0.9.0)
16
+ dry-configurable (0.11.2)
16
17
  concurrent-ruby (~> 1.0)
17
18
  dry-core (~> 0.4, >= 0.4.7)
19
+ dry-equalizer (~> 0.2)
18
20
  dry-container (0.7.2)
19
21
  concurrent-ruby (~> 1.0)
20
22
  dry-configurable (~> 0.1, >= 0.1.3)
@@ -22,48 +24,50 @@ GEM
22
24
  concurrent-ruby (~> 1.0)
23
25
  dry-equalizer (0.3.0)
24
26
  dry-inflector (0.2.0)
25
- dry-logic (1.0.5)
27
+ dry-logic (1.0.6)
26
28
  concurrent-ruby (~> 1.0)
27
29
  dry-core (~> 0.2)
28
30
  dry-equalizer (~> 0.2)
29
- dry-struct (1.1.1)
30
- dry-core (~> 0.4, >= 0.4.3)
31
- dry-equalizer (~> 0.2)
32
- dry-types (~> 1.0)
31
+ dry-struct (1.3.0)
32
+ dry-core (~> 0.4, >= 0.4.4)
33
+ dry-equalizer (~> 0.3)
34
+ dry-types (~> 1.3)
33
35
  ice_nine (~> 0.11)
34
- dry-types (1.2.1)
36
+ dry-types (1.3.1)
35
37
  concurrent-ruby (~> 1.0)
36
38
  dry-container (~> 0.3)
37
39
  dry-core (~> 0.4, >= 0.4.4)
38
- dry-equalizer (~> 0.2, >= 0.2.2)
40
+ dry-equalizer (~> 0.3)
39
41
  dry-inflector (~> 0.1, >= 0.1.2)
40
42
  dry-logic (~> 1.0, >= 1.0.2)
41
- google-protobuf (3.9.2)
43
+ google-protobuf (3.11.4)
42
44
  googleapis-common-protos-types (1.0.4)
43
45
  google-protobuf (~> 3.0)
44
- grpc (1.24.0)
45
- google-protobuf (~> 3.8)
46
+ grpc (1.27.0)
47
+ google-protobuf (~> 3.11)
46
48
  googleapis-common-protos-types (~> 1.0)
47
- grpc-tools (1.25.0)
49
+ grpc-tools (1.27.0)
48
50
  ice_nine (0.11.2)
49
51
  method_source (0.9.2)
50
52
  pry (0.12.2)
51
53
  coderay (~> 1.1.0)
52
54
  method_source (~> 0.9.0)
53
55
  rake (10.5.0)
56
+ retriable (3.1.2)
54
57
  rspec (3.9.0)
55
58
  rspec-core (~> 3.9.0)
56
59
  rspec-expectations (~> 3.9.0)
57
60
  rspec-mocks (~> 3.9.0)
58
- rspec-core (3.9.0)
59
- rspec-support (~> 3.9.0)
61
+ rspec-core (3.9.1)
62
+ rspec-support (~> 3.9.1)
60
63
  rspec-expectations (3.9.0)
61
64
  diff-lcs (>= 1.2.0, < 2.0)
62
65
  rspec-support (~> 3.9.0)
63
- rspec-mocks (3.9.0)
66
+ rspec-mocks (3.9.1)
64
67
  diff-lcs (>= 1.2.0, < 2.0)
65
68
  rspec-support (~> 3.9.0)
66
- rspec-support (3.9.0)
69
+ rspec-support (3.9.2)
70
+ timecop (0.9.1)
67
71
 
68
72
  PLATFORMS
69
73
  ruby
@@ -76,6 +80,7 @@ DEPENDENCIES
76
80
  pry
77
81
  rake (~> 10.0)
78
82
  rspec (~> 3.0)
83
+ timecop
79
84
 
80
85
  BUNDLED WITH
81
- 2.1.2
86
+ 2.1.4
@@ -57,8 +57,9 @@ Gem::Specification.new do |spec|
57
57
  spec.require_paths = ['lib']
58
58
 
59
59
  spec.add_dependency 'dry-struct', '~> 1.0'
60
- spec.add_dependency 'google-protobuf', '~> 3.9.2'
61
- spec.add_dependency 'grpc', '~> 1.24.0'
60
+ spec.add_dependency 'google-protobuf', '~> 3.11.4'
61
+ spec.add_dependency 'grpc', '~> 1.27.0'
62
+ spec.add_dependency 'retriable', '~> 3.1.2'
62
63
 
63
64
  spec.add_development_dependency 'bundler', '~> 2.0'
64
65
  spec.add_development_dependency 'rake', '~> 10.0'
@@ -1,6 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'json'
4
+ require 'resolv'
5
+ require 'retriable'
4
6
  require 'event_hook_client_server/protobuf/event_hook_client_server/v1/services/webhook_configurator_services_pb'
5
7
  require 'event_hook_client_server/refinements/protobuf/nullable_values'
6
8
  require 'event_hook_client_server/refinements/protobuf/hashable_struct_values'
@@ -15,7 +17,10 @@ using EventHookClientServer::Refinements::Hash::Transmute
15
17
  using EventHookClientServer::Refinements::Protobuf::HashableStructValues
16
18
 
17
19
  module EventHookClientServer
18
- class Client < EventHookClientServer::V1::Services::EventHook::Stub
20
+ class Client
21
+ GRPC_CLIENT_CLASS = EventHookClientServer::V1::Services::EventHook::Stub
22
+ private_constant :GRPC_CLIENT_CLASS
23
+
19
24
  # Configuration options can be found @
20
25
  # https://github.com/grpc/grpc/issues/19734
21
26
  DEFAULT_CONFIG = {
@@ -39,6 +44,15 @@ module EventHookClientServer
39
44
  }.freeze
40
45
  private_constant :DEFAULT_CONFIG
41
46
 
47
+ RETRIABLE_ERRORS = [
48
+ GRPC::DeadlineExceeded, GRPC::Unavailable, GRPC::ResourceExhausted,
49
+ GRPC::Unknown
50
+ ]
51
+ private_constant :RETRIABLE_ERRORS
52
+
53
+ SRV = Resolv::DNS::Resource::IN::SRV
54
+ private_constant :SRV
55
+
42
56
  def self.default
43
57
  @default ||= new(default_config)
44
58
  end
@@ -47,10 +61,38 @@ module EventHookClientServer
47
61
  @default_config ||= DEFAULT_CONFIG.dup
48
62
  end
49
63
 
64
+ attr_reader :hosts
65
+ attr_reader :hosts_expire_at
66
+ attr_reader :options
67
+ attr_reader :grpc_client
68
+
50
69
  def initialize(options)
51
- options = self.class.default_config.merge(options)
52
- super(
53
- options[:host],
70
+ @options = self.class.default_config.merge(options)
71
+
72
+ refresh_hosts!
73
+ recreate_grpc_client!
74
+ end
75
+
76
+ def rotate_host!
77
+ refresh_hosts!
78
+ recreate_grpc_client!
79
+ end
80
+
81
+ def refresh_hosts!
82
+ return if !hosts_expire_at.nil? && Time.now.to_i < hosts_expire_at
83
+
84
+ result = fetch_srv_host_record
85
+ @hosts_expire_at = Time.now.to_i + (result.map(&:ttl).min || 60)
86
+
87
+ hosts = result.map { |r| [r.target&.to_s, r.port].compact.join(':') }
88
+ hosts = [options[:host]].compact if hosts.empty?
89
+
90
+ @hosts = hosts.each.cycle
91
+ end
92
+
93
+ def recreate_grpc_client!
94
+ @grpc_client = GRPC_CLIENT_CLASS.new(
95
+ hosts.next,
54
96
  options[:channel_mode],
55
97
  timeout: options[:timeout],
56
98
  channel_args: options[:channel_args]
@@ -64,7 +106,9 @@ module EventHookClientServer
64
106
  pagination: { cursor: cursor }
65
107
  )
66
108
 
67
- response = handle_timeout { super(request) }
109
+ response = retry_on_failure do
110
+ grpc_client.find_integration_from_headers(request)
111
+ end
68
112
 
69
113
  integrations = response.integrations.map do |integration|
70
114
  Integration.new(integration.to_h)
@@ -78,7 +122,7 @@ module EventHookClientServer
78
122
  def integration(id)
79
123
  request = V1::Messages::GetIntegrationRequest.new(id: id.to_s)
80
124
 
81
- response = handle_timeout { super(request) }
125
+ response = retry_on_failure { grpc_client.integration(request) }
82
126
 
83
127
  if response.errors.any?
84
128
  Response.fail!(response.errors.map { |e| Error.new(e.to_h) })
@@ -106,7 +150,7 @@ module EventHookClientServer
106
150
  V1::Messages::ListIntegrationsRequest.new(query_params: query_params,
107
151
  pagination: pagination)
108
152
 
109
- response = handle_timeout { super(request) }
153
+ response = retry_on_failure { grpc_client.integrations(request) }
110
154
 
111
155
  integrations = response.integrations.map do |integration|
112
156
  Integration.new(integration.to_h)
@@ -124,7 +168,7 @@ module EventHookClientServer
124
168
 
125
169
  request = V1::Messages::IntegrationCreateRequest.new(input: params)
126
170
 
127
- response = handle_timeout { super(request) }
171
+ response = retry_on_failure { grpc_client.create_integration(request) }
128
172
 
129
173
  if response.errors.any?
130
174
  Response.fail!(response.errors.map { |e| Error.new(e.to_h) })
@@ -141,7 +185,7 @@ module EventHookClientServer
141
185
 
142
186
  request = V1::Messages::IntegrationUpdateRequest.new(id: id.to_s,
143
187
  input: params)
144
- response = handle_timeout { super(request) }
188
+ response = retry_on_failure { grpc_client.update_integration(request) }
145
189
 
146
190
  if response.errors.any?
147
191
  Response.fail!(response.errors.map { |e| Error.new(e.to_h) })
@@ -154,7 +198,7 @@ module EventHookClientServer
154
198
  def destroy_integration(id:)
155
199
  request = V1::Messages::IntegrationDestroyRequest.new(id: id.to_s)
156
200
 
157
- response = handle_timeout { super(request) }
201
+ response = retry_on_failure { grpc_client.destroy_integration(request) }
158
202
 
159
203
  if response.errors.any?
160
204
  Response.fail!([])
@@ -165,22 +209,34 @@ module EventHookClientServer
165
209
 
166
210
  private
167
211
 
168
- def handle_timeout(max_retries: 10, sleep_time: 1)
169
- yield
170
- rescue GRPC::DeadlineExceeded, GRPC::Unavailable, GRPC::ResourceExhausted,
171
- GRPC::Unknown => error
172
- try ||= 0
173
- try += 1
174
-
175
- sleep(sleep_time) if sleep_time.positive?
176
- retry if try < max_retries
177
-
178
- raise(error)
212
+ def retry_on_failure(&block)
213
+ Retriable
214
+ .retriable(on: RETRIABLE_ERRORS, on_retry: method(:rotate_host!)) do
215
+ block.call
216
+ end
179
217
  end
180
218
 
181
219
  def symbolize_keys(hash)
182
220
  JSON.parse(hash.to_json, symbolize_names: true)
183
221
  end
222
+
223
+ def fetch_srv_host_record
224
+ records = []
225
+
226
+ Resolv::DNS.new
227
+ .each_resource(options[:host], SRV) do |x|
228
+ records << x
229
+ end
230
+
231
+ records.sort do |a, b|
232
+ priority = a.priority <=> b.priority
233
+ weight = (a.weight <=> b.weight) * -1
234
+
235
+ priority.zero? ? weight : priority
236
+ end
237
+ rescue Resolv::ResolvError, ArgumentError
238
+ []
239
+ end
184
240
  end
185
241
  end
186
242
 
@@ -15,7 +15,7 @@ end
15
15
  module EventHookClientServer
16
16
  module V1
17
17
  module Enums
18
- Integrator = Google::Protobuf::DescriptorPool.generated_pool.lookup("event_hook_client_server.v1.enums.Integrator").enummodule
18
+ Integrator = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("event_hook_client_server.v1.enums.Integrator").enummodule
19
19
  end
20
20
  end
21
21
  end
@@ -17,7 +17,7 @@ end
17
17
  module EventHookClientServer
18
18
  module V1
19
19
  module Messages
20
- Error = Google::Protobuf::DescriptorPool.generated_pool.lookup("event_hook_client_server.v1.messages.Error").msgclass
20
+ Error = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("event_hook_client_server.v1.messages.Error").msgclass
21
21
  end
22
22
  end
23
23
  end
@@ -87,21 +87,21 @@ end
87
87
  module EventHookClientServer
88
88
  module V1
89
89
  module Messages
90
- Integration = Google::Protobuf::DescriptorPool.generated_pool.lookup("event_hook_client_server.v1.messages.Integration").msgclass
91
- IntegrationConfiguration = Google::Protobuf::DescriptorPool.generated_pool.lookup("event_hook_client_server.v1.messages.IntegrationConfiguration").msgclass
92
- IntegrationBinding = Google::Protobuf::DescriptorPool.generated_pool.lookup("event_hook_client_server.v1.messages.IntegrationBinding").msgclass
93
- IntegrationInput = Google::Protobuf::DescriptorPool.generated_pool.lookup("event_hook_client_server.v1.messages.IntegrationInput").msgclass
94
- IntegrationInputConfiguration = Google::Protobuf::DescriptorPool.generated_pool.lookup("event_hook_client_server.v1.messages.IntegrationInputConfiguration").msgclass
95
- IntegrationBindingInput = Google::Protobuf::DescriptorPool.generated_pool.lookup("event_hook_client_server.v1.messages.IntegrationBindingInput").msgclass
96
- IntegrationCreateRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("event_hook_client_server.v1.messages.IntegrationCreateRequest").msgclass
97
- IntegrationUpdateRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("event_hook_client_server.v1.messages.IntegrationUpdateRequest").msgclass
98
- IntegrationDestroyRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("event_hook_client_server.v1.messages.IntegrationDestroyRequest").msgclass
99
- GetIntegrationRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("event_hook_client_server.v1.messages.GetIntegrationRequest").msgclass
100
- ListIntegrationsRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("event_hook_client_server.v1.messages.ListIntegrationsRequest").msgclass
101
- FindIntegrationsFromHeadersRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("event_hook_client_server.v1.messages.FindIntegrationsFromHeadersRequest").msgclass
102
- IntegrationSingleResponse = Google::Protobuf::DescriptorPool.generated_pool.lookup("event_hook_client_server.v1.messages.IntegrationSingleResponse").msgclass
103
- IntegrationsListResponse = Google::Protobuf::DescriptorPool.generated_pool.lookup("event_hook_client_server.v1.messages.IntegrationsListResponse").msgclass
104
- IntegrationQueryParams = Google::Protobuf::DescriptorPool.generated_pool.lookup("event_hook_client_server.v1.messages.IntegrationQueryParams").msgclass
90
+ Integration = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("event_hook_client_server.v1.messages.Integration").msgclass
91
+ IntegrationConfiguration = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("event_hook_client_server.v1.messages.IntegrationConfiguration").msgclass
92
+ IntegrationBinding = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("event_hook_client_server.v1.messages.IntegrationBinding").msgclass
93
+ IntegrationInput = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("event_hook_client_server.v1.messages.IntegrationInput").msgclass
94
+ IntegrationInputConfiguration = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("event_hook_client_server.v1.messages.IntegrationInputConfiguration").msgclass
95
+ IntegrationBindingInput = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("event_hook_client_server.v1.messages.IntegrationBindingInput").msgclass
96
+ IntegrationCreateRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("event_hook_client_server.v1.messages.IntegrationCreateRequest").msgclass
97
+ IntegrationUpdateRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("event_hook_client_server.v1.messages.IntegrationUpdateRequest").msgclass
98
+ IntegrationDestroyRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("event_hook_client_server.v1.messages.IntegrationDestroyRequest").msgclass
99
+ GetIntegrationRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("event_hook_client_server.v1.messages.GetIntegrationRequest").msgclass
100
+ ListIntegrationsRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("event_hook_client_server.v1.messages.ListIntegrationsRequest").msgclass
101
+ FindIntegrationsFromHeadersRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("event_hook_client_server.v1.messages.FindIntegrationsFromHeadersRequest").msgclass
102
+ IntegrationSingleResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("event_hook_client_server.v1.messages.IntegrationSingleResponse").msgclass
103
+ IntegrationsListResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("event_hook_client_server.v1.messages.IntegrationsListResponse").msgclass
104
+ IntegrationQueryParams = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("event_hook_client_server.v1.messages.IntegrationQueryParams").msgclass
105
105
  end
106
106
  end
107
107
  end
@@ -27,9 +27,9 @@ end
27
27
  module EventHookClientServer
28
28
  module V1
29
29
  module Messages
30
- Cursors = Google::Protobuf::DescriptorPool.generated_pool.lookup("event_hook_client_server.v1.messages.Cursors").msgclass
31
- Pagination = Google::Protobuf::DescriptorPool.generated_pool.lookup("event_hook_client_server.v1.messages.Pagination").msgclass
32
- PaginationInput = Google::Protobuf::DescriptorPool.generated_pool.lookup("event_hook_client_server.v1.messages.PaginationInput").msgclass
30
+ Cursors = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("event_hook_client_server.v1.messages.Cursors").msgclass
31
+ Pagination = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("event_hook_client_server.v1.messages.Pagination").msgclass
32
+ PaginationInput = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("event_hook_client_server.v1.messages.PaginationInput").msgclass
33
33
  end
34
34
  end
35
35
  end
@@ -4,6 +4,9 @@ require 'event_hook_client_server/protobuf/event_hook_client_server/v1/services/
4
4
 
5
5
  module EventHookClientServer
6
6
  class Server < EventHookClientServer::V1::Services::EventHook::Service
7
+ require 'event_hook_client_server/server/definition_helpers'
8
+ extend EventHookClientServer::Server::DefinitionHelpers
9
+
7
10
  # Configuration options can be found @
8
11
  # https://github.com/grpc/grpc/issues/19734
9
12
  DEFAULT_CONFIG = {
@@ -29,31 +32,6 @@ module EventHookClientServer
29
32
  }.freeze
30
33
  private_constant :DEFAULT_CONFIG
31
34
 
32
- def self.generic_rpc(name, options = {})
33
- [
34
- [:create_],
35
- [:update_],
36
- [:destroy_],
37
- [],
38
- [nil, :s]
39
- ].compact.each do |prefix, suffix|
40
- method_name = [prefix, name, suffix].compact.join
41
- handler_name = "#{method_name}_handler".to_sym
42
-
43
- attr_accessor handler_name
44
-
45
- # NOTE: this is ugly, but it's (performance wise) much faster than
46
- # define_method
47
- method_definition = <<-RUBY
48
- def #{method_name}(input, request)
49
- process_request(:#{method_name}, input, request)
50
- end
51
- RUBY
52
-
53
- class_eval(method_definition, __FILE__, __LINE__ - 5)
54
- end
55
- end
56
-
57
35
  def self.default_config
58
36
  @default_config ||= DEFAULT_CONFIG.dup
59
37
  end
@@ -90,11 +68,11 @@ module EventHookClientServer
90
68
  @logger ||= Logger.new(STDOUT)
91
69
  end
92
70
 
71
+ # Defines SHOW, INDEX, CREATE, UPDATE and DELETE methods
93
72
  generic_rpc :integration
94
73
 
95
- attr_accessor :find_integration_from_headers_handler
96
74
  def find_integration_from_headers(input, request)
97
- process_request(:find_integration_from_headers, input, request)
75
+ process_request(__method__, input, request)
98
76
  end
99
77
 
100
78
  protected
@@ -0,0 +1,25 @@
1
+ module EventHookClientServer
2
+ class Server
3
+ module DefinitionHelpers
4
+ def generic_rpc(name, options = {})
5
+ [[:create_], [:update_], [:destroy_], [], [nil, :s]]
6
+ .compact.each do |prefix, suffix|
7
+ method_name = [prefix, name, suffix].compact.join
8
+ handler_name = "#{method_name}_handler".to_sym
9
+
10
+ attr_accessor handler_name
11
+
12
+ # NOTE: this is ugly, but it's (performance wise) much faster than
13
+ # define_method
14
+ method_definition = <<-RUBY
15
+ def #{method_name}(input, request)
16
+ process_request(:#{method_name}, input, request)
17
+ end
18
+ RUBY
19
+
20
+ class_eval(method_definition, __FILE__, __LINE__ - 5)
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
@@ -3,6 +3,6 @@
3
3
  module EventHookClientServer
4
4
  MAJOR = 1
5
5
  MINOR = 0
6
- PATCH = 13
6
+ PATCH = 14
7
7
  VERSION = [MAJOR, MINOR, PATCH].join('.')
8
8
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bmx-event_hook_client_server
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.13
4
+ version: 1.0.14
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stanko K.R.
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-02-07 00:00:00.000000000 Z
11
+ date: 2020-02-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: dry-struct
@@ -30,28 +30,42 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 3.9.2
33
+ version: 3.11.4
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 3.9.2
40
+ version: 3.11.4
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: grpc
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 1.24.0
47
+ version: 1.27.0
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 1.24.0
54
+ version: 1.27.0
55
+ - !ruby/object:Gem::Dependency
56
+ name: retriable
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: 3.1.2
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: 3.1.2
55
69
  - !ruby/object:Gem::Dependency
56
70
  name: bundler
57
71
  requirement: !ruby/object:Gem::Requirement
@@ -123,6 +137,7 @@ files:
123
137
  - lib/event_hook_client_server/refinements/protobuf/hashable_struct_values.rb
124
138
  - lib/event_hook_client_server/refinements/protobuf/nullable_values.rb
125
139
  - lib/event_hook_client_server/server.rb
140
+ - lib/event_hook_client_server/server/definition_helpers.rb
126
141
  - lib/event_hook_client_server/server/request_processor.rb
127
142
  - lib/event_hook_client_server/service.rb
128
143
  - lib/event_hook_client_server/services/grpc/struct_encoder.rb
@@ -150,7 +165,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
150
165
  - !ruby/object:Gem::Version
151
166
  version: '0'
152
167
  requirements: []
153
- rubygems_version: 3.1.2
168
+ rubyforge_project:
169
+ rubygems_version: 2.6.14.3
154
170
  signing_key:
155
171
  specification_version: 4
156
172
  summary: Client and server implementation for the Webhook Configurator service.