eventq 2.5.3 → 3.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
  SHA256:
3
- metadata.gz: 694ed72384dbe126f58a0813b002ba2ba597fd4cd0d2f477a3fd68d9f12396bc
4
- data.tar.gz: 00eb675d57cd63827d55d59f9af6083d830226dcac7e2db3d281099cf30c8a06
3
+ metadata.gz: 6ee761f649fda6582f070d0dc7f2aed0f0b22224e64b98a41f4eddd284a36656
4
+ data.tar.gz: 7c19c2c2af06b57f61fa74c5720cf554409cdd86b1bebf05092c709ea81bb6eb
5
5
  SHA512:
6
- metadata.gz: 7e5368f9ac76beb781594a4d058bf4f71dfcf8b406d94af08aa3aee5edf67ff607edcd3eec54dceaa4c5d1f4ecff995500076353c2b4d4be6afaf6c03fb7c92e
7
- data.tar.gz: ea183d9565147acaa569cec2c7e8f8ceeb43dc6a152085f28ea31d7e737ee7b2b335340388ace7d84221909934bb66da08cf4cab5286511a3c2ac18e9bcac0c9
6
+ metadata.gz: cf3d1b36f92d9e46e5b20b37f30ae3a9870ac3e20c62a590fa768d986d8548b6fa8f873de36157d47ee0b3691aec8a95704baa5c1af71ddf55fc2f7abd0f00f7
7
+ data.tar.gz: 878f29fdaef648d5b1fb1e1ae0536bab58243bf323d2a56e83228a2a9c632394c5eb4b7e34132fb5174e6b4b7ef6c132936d1a47df2b6378bebaab6d5ff712f1
data/README.md CHANGED
@@ -1,6 +1,5 @@
1
1
  # EventQ
2
2
 
3
- [![Build Status](https://travis-ci.org/Sage/eventq.svg?branch=master)](https://travis-ci.org/Sage/eventq)
4
3
  [![Maintainability](https://api.codeclimate.com/v1/badges/87205b497059e2733bdc/maintainability)](https://codeclimate.com/github/Sage/eventq/maintainability)
5
4
  [![Test Coverage](https://api.codeclimate.com/v1/badges/87205b497059e2733bdc/test_coverage)](https://codeclimate.com/github/Sage/eventq/test_coverage)
6
5
 
@@ -15,25 +15,37 @@ module EventQ
15
15
  @serialization_manager = EventQ::SerializationProviders::Manager.new
16
16
  @signature_manager = EventQ::SignatureProviders::Manager.new
17
17
 
18
- # this array is used to record known event types
19
- @known_event_types = []
20
-
18
+ # this hash is used to record known event types:
19
+ # key = event_type / name
20
+ # value = topic arn
21
+ @known_event_types = {}
21
22
  end
22
23
 
24
+ # Returns true if the event has already been registerd, or false
25
+ # otherwise.
26
+ #
27
+ # @param [String] event_type
28
+ # @param [String] region
29
+ #
30
+ # @return [Boolean]
23
31
  def registered?(event_type, region = nil)
24
32
  topic_key = "#{region}:#{event_type}"
25
- @known_event_types.include?(topic_key)
33
+ @known_event_types.key?(topic_key)
26
34
  end
27
35
 
36
+ # Registers the event event_type and returns its topic arn.
37
+ #
38
+ # @param [String] event_type
39
+ # @param [String] region
40
+ #
41
+ # @return [String]
28
42
  def register_event(event_type, region = nil)
29
- if registered?(event_type, region)
30
- return true
31
- end
32
-
33
43
  topic_key = "#{region}:#{event_type}"
34
- @client.sns_helper(region).create_topic_arn(event_type, region)
35
- @known_event_types << topic_key
36
- true
44
+ return @known_event_types[topic_key] if registered?(event_type, region)
45
+
46
+ topic_arn = @client.sns_helper(region).create_topic_arn(event_type, region)
47
+ @known_event_types[topic_key] = topic_arn
48
+ topic_arn
37
49
  end
38
50
 
39
51
  def publish(topic:, event:, context: {}, region: nil)
@@ -88,6 +100,9 @@ module EventQ
88
100
  qm.type = event_type
89
101
  qm.context = context
90
102
  qm.content_type = event.class.to_s
103
+ if event.respond_to? :Correlation
104
+ qm.correlation_trace_id = event.Correlation['Trace']
105
+ end
91
106
 
92
107
  if EventQ::Configuration.signature_secret != nil
93
108
  provider = @signature_manager.get_provider(EventQ::Configuration.signature_provider)
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'aws-sdk'
3
+ require 'aws-sdk-sns'
4
+ require 'aws-sdk-sqs'
4
5
 
5
6
  module EventQ
6
7
  module Amazon
@@ -10,6 +10,7 @@ module EventQ
10
10
  attr_accessor_type :created, type: Float
11
11
  attr_accessor_type :signature, type: String
12
12
  attr_accessor_type :context, type: Hash
13
+ attr_accessor_type :correlation_trace_id, type: String
13
14
 
14
15
  def initialize
15
16
  @retry_attempts = 0
metadata CHANGED
@@ -1,15 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: eventq
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.5.3
4
+ version: 3.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - SageOne
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-01-23 00:00:00.000000000 Z
11
+ date: 2021-09-28 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: activesupport
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '4'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '4'
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: bundler
15
29
  requirement: !ruby/object:Gem::Requirement
@@ -24,6 +38,34 @@ dependencies:
24
38
  - - "~>"
25
39
  - !ruby/object:Gem::Version
26
40
  version: '1.11'
41
+ - !ruby/object:Gem::Dependency
42
+ name: byebug
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '11.0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '11.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: pry-byebug
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '3.9'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '3.9'
27
69
  - !ruby/object:Gem::Dependency
28
70
  name: rake
29
71
  requirement: !ruby/object:Gem::Requirement
@@ -53,7 +95,7 @@ dependencies:
53
95
  - !ruby/object:Gem::Version
54
96
  version: '0'
55
97
  - !ruby/object:Gem::Dependency
56
- name: simplecov
98
+ name: shoulda-matchers
57
99
  requirement: !ruby/object:Gem::Requirement
58
100
  requirements:
59
101
  - - ">="
@@ -67,49 +109,49 @@ dependencies:
67
109
  - !ruby/object:Gem::Version
68
110
  version: '0'
69
111
  - !ruby/object:Gem::Dependency
70
- name: shoulda-matchers
112
+ name: simplecov
71
113
  requirement: !ruby/object:Gem::Requirement
72
114
  requirements:
73
- - - ">="
115
+ - - "<"
74
116
  - !ruby/object:Gem::Version
75
- version: '0'
117
+ version: 0.18.0
76
118
  type: :development
77
119
  prerelease: false
78
120
  version_requirements: !ruby/object:Gem::Requirement
79
121
  requirements:
80
- - - ">="
122
+ - - "<"
81
123
  - !ruby/object:Gem::Version
82
- version: '0'
124
+ version: 0.18.0
83
125
  - !ruby/object:Gem::Dependency
84
- name: activesupport
126
+ name: aws-sdk-sqs
85
127
  requirement: !ruby/object:Gem::Requirement
86
128
  requirements:
87
129
  - - "~>"
88
130
  - !ruby/object:Gem::Version
89
- version: '4'
90
- type: :development
131
+ version: '1'
132
+ type: :runtime
91
133
  prerelease: false
92
134
  version_requirements: !ruby/object:Gem::Requirement
93
135
  requirements:
94
136
  - - "~>"
95
137
  - !ruby/object:Gem::Version
96
- version: '4'
138
+ version: '1'
97
139
  - !ruby/object:Gem::Dependency
98
- name: aws-sdk
140
+ name: aws-sdk-sns
99
141
  requirement: !ruby/object:Gem::Requirement
100
142
  requirements:
101
143
  - - "~>"
102
144
  - !ruby/object:Gem::Version
103
- version: '2.0'
145
+ version: '1'
104
146
  type: :runtime
105
147
  prerelease: false
106
148
  version_requirements: !ruby/object:Gem::Requirement
107
149
  requirements:
108
150
  - - "~>"
109
151
  - !ruby/object:Gem::Version
110
- version: '2.0'
152
+ version: '1'
111
153
  - !ruby/object:Gem::Dependency
112
- name: class_kit
154
+ name: bunny
113
155
  requirement: !ruby/object:Gem::Requirement
114
156
  requirements:
115
157
  - - ">="
@@ -123,7 +165,7 @@ dependencies:
123
165
  - !ruby/object:Gem::Version
124
166
  version: '0'
125
167
  - !ruby/object:Gem::Dependency
126
- name: redlock
168
+ name: class_kit
127
169
  requirement: !ruby/object:Gem::Requirement
128
170
  requirements:
129
171
  - - ">="
@@ -137,7 +179,7 @@ dependencies:
137
179
  - !ruby/object:Gem::Version
138
180
  version: '0'
139
181
  - !ruby/object:Gem::Dependency
140
- name: openssl
182
+ name: concurrent-ruby
141
183
  requirement: !ruby/object:Gem::Requirement
142
184
  requirements:
143
185
  - - ">="
@@ -151,7 +193,7 @@ dependencies:
151
193
  - !ruby/object:Gem::Version
152
194
  version: '0'
153
195
  - !ruby/object:Gem::Dependency
154
- name: concurrent-ruby
196
+ name: oj
155
197
  requirement: !ruby/object:Gem::Requirement
156
198
  requirements:
157
199
  - - ">="
@@ -165,7 +207,7 @@ dependencies:
165
207
  - !ruby/object:Gem::Version
166
208
  version: '0'
167
209
  - !ruby/object:Gem::Dependency
168
- name: oj
210
+ name: openssl
169
211
  requirement: !ruby/object:Gem::Requirement
170
212
  requirements:
171
213
  - - ">="
@@ -179,7 +221,7 @@ dependencies:
179
221
  - !ruby/object:Gem::Version
180
222
  version: '0'
181
223
  - !ruby/object:Gem::Dependency
182
- name: bunny
224
+ name: redlock
183
225
  requirement: !ruby/object:Gem::Requirement
184
226
  requirements:
185
227
  - - ">="
@@ -268,8 +310,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
268
310
  - !ruby/object:Gem::Version
269
311
  version: '0'
270
312
  requirements: []
271
- rubyforge_project:
272
- rubygems_version: 2.7.7
313
+ rubygems_version: 3.1.2
273
314
  signing_key:
274
315
  specification_version: 4
275
316
  summary: EventQ is a pub/sub system that uses async notifications and message queues