fastly_nsq 1.16.0 → 1.17.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +0 -1
- data/ChangeLog.md +18 -2
- data/Gemfile +2 -2
- data/README.md +4 -0
- data/lib/fastly_nsq/messenger.rb +23 -13
- data/lib/fastly_nsq/version.rb +1 -1
- data/spec/messenger_spec.rb +13 -0
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0a0de08856671c960970c164a3b95efdaef29bfb05ba2c8282cbc81d0e3d8282
|
4
|
+
data.tar.gz: bb52cbe4e13ca5bce686409eb20c7f13fd1975f41da73cc14a231a94d737a80c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 71ed32139074cf89fdb848675df2b52a9a62dc76d3a9027f78620c9656791c580e2132a4ab06bbdcfe726c42a7b22e54b85c5fe3096cbcfbe4a32ee68c8cf9e8
|
7
|
+
data.tar.gz: fc1b312239fa56c20f49e37dbf999b8decedff1532b1882be3358e524ff14cdc4e0091c727f1ac11d378cb71ba8112dab61fc0736dd9db063baa11cfc6f4f674
|
data/.travis.yml
CHANGED
data/ChangeLog.md
CHANGED
@@ -1,7 +1,23 @@
|
|
1
1
|
# Change Log
|
2
2
|
|
3
|
-
## [v1.
|
3
|
+
## [v1.17.0](https://github.com/fastly/fastly_nsq/tree/v1.17.0) (2021-02-11)
|
4
|
+
[Full Changelog](https://github.com/fastly/fastly_nsq/compare/v1.16.0...v1.17.0)
|
4
5
|
|
6
|
+
**Merged pull requests:**
|
7
|
+
|
8
|
+
- Support for arbitary sent\_at Time [\#99](https://github.com/fastly/fastly_nsq/pull/99) ([leklund](https://github.com/leklund))
|
9
|
+
- remove version pin on rake for development [\#97](https://github.com/fastly/fastly_nsq/pull/97) ([leklund](https://github.com/leklund))
|
10
|
+
- Ignore from Humane Registry [\#96](https://github.com/fastly/fastly_nsq/pull/96) ([leklund](https://github.com/leklund))
|
11
|
+
|
12
|
+
## [v1.16.0](https://github.com/fastly/fastly_nsq/tree/v1.16.0) (2019-08-16)
|
13
|
+
[Full Changelog](https://github.com/fastly/fastly_nsq/compare/v1.15.0...v1.16.0)
|
14
|
+
|
15
|
+
**Merged pull requests:**
|
16
|
+
|
17
|
+
- Log the internal NSQ id [\#95](https://github.com/fastly/fastly_nsq/pull/95) ([leklund](https://github.com/leklund))
|
18
|
+
- Consumer still attempts connections in Test mode [\#93](https://github.com/fastly/fastly_nsq/pull/93) ([alieander](https://github.com/alieander))
|
19
|
+
|
20
|
+
## [v1.15.0](https://github.com/fastly/fastly_nsq/tree/v1.15.0) (2018-10-05)
|
5
21
|
[Full Changelog](https://github.com/fastly/fastly_nsq/compare/v1.14.0...v1.15.0)
|
6
22
|
|
7
23
|
**Merged pull requests:**
|
@@ -431,4 +447,4 @@
|
|
431
447
|
## [v0.0.1](https://github.com/fastly/fastly_nsq/tree/v0.0.1) (2016-01-30)
|
432
448
|
|
433
449
|
|
434
|
-
\* *This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)*
|
450
|
+
\* *This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)*
|
data/Gemfile
CHANGED
data/README.md
CHANGED
data/lib/fastly_nsq/messenger.rb
CHANGED
@@ -18,23 +18,26 @@ module FastlyNsq::Messenger
|
|
18
18
|
##
|
19
19
|
# Deliver an NSQ message. Uses +pub+
|
20
20
|
#
|
21
|
-
#
|
22
|
-
# +originating_service+ which defaults to {FastlyNsq#originating_service}
|
23
|
-
# +sent_at+ which will be set to +Time.now.iso8601(5)+
|
21
|
+
# Adds keys to the `+meta+:
|
22
|
+
# +originating_service+ which defaults to {FastlyNsq#originating_service}.
|
23
|
+
# +sent_at+ which will be set to +Time.now.iso8601(5)+ if the +sent_at+ param is nil OR
|
24
|
+
# if the passed +sent_at+ is not a valid timestamp.
|
24
25
|
# @param message [#to_json(*)] written to the +data+ key of the NSQ message payload
|
25
26
|
# @param topic [String] NSQ topic on which to deliver the message
|
26
27
|
# @param originating_service [String] added to meta key of message payload
|
28
|
+
# @param sent_at [Time] Timestamp that will be added to the meta payload
|
27
29
|
# @param meta [Hash]
|
28
30
|
# @return [Void]
|
29
31
|
# @example
|
30
32
|
# FastlyNsq::Messenger.deliver(
|
31
33
|
# message: {a: 1, count: 123},
|
32
34
|
# topic: 'count',
|
35
|
+
# meta: { sent_at: Time.now }
|
33
36
|
# )
|
34
|
-
def deliver(message:, topic:, originating_service: nil, meta: {})
|
37
|
+
def deliver(message:, topic:, originating_service: nil, sent_at: nil, meta: {})
|
35
38
|
payload = {
|
36
39
|
data: message,
|
37
|
-
meta: populate_meta(originating_service: originating_service, meta: meta),
|
40
|
+
meta: populate_meta(originating_service: originating_service, sent_at: sent_at, meta: meta),
|
38
41
|
}
|
39
42
|
|
40
43
|
deliver_payload(topic: topic, payload: payload.to_json)
|
@@ -43,15 +46,16 @@ module FastlyNsq::Messenger
|
|
43
46
|
##
|
44
47
|
# Deliver many NSQ messages at once. Uses +mpub+
|
45
48
|
#
|
46
|
-
# For each message will add two keys to the `+meta+ payload of each message
|
47
|
-
#
|
48
|
-
# +
|
49
|
-
# +
|
49
|
+
# For each message will add two keys to the `+meta+ payload of each message:
|
50
|
+
# +originating_service+ which defaults to {FastlyNsq#originating_service}
|
51
|
+
# +sent_at+ which will be set to +Time.now.iso8601(5)+ when messages are processed if not included
|
52
|
+
# in the +meta+ param OR if the pased +sent_at+ is not a valid timestamp.
|
50
53
|
# The +sent_at+ time and +originating_service+ will be the same for every message.
|
51
54
|
# @param messages [Array] Array of message which will be written to +data+ key of the
|
52
55
|
# individual NSQ message payload. Each message needs to respond to +to_json(*)+.
|
53
56
|
# @param topic [String] NSQ topic on which to deliver the message
|
54
57
|
# @param originating_service [String] added to meta key of message payload
|
58
|
+
# @param sent_at [Time] Timestamp that will be added to the meta payload
|
55
59
|
# @param meta [Hash]
|
56
60
|
# @return [Void]
|
57
61
|
# @example
|
@@ -59,8 +63,8 @@ module FastlyNsq::Messenger
|
|
59
63
|
# messages: [{a: 1, count: 11}, {a: 2, count: 22}],
|
60
64
|
# topic: 'counts',
|
61
65
|
# )
|
62
|
-
def deliver_multi(messages:, topic:, originating_service: nil, meta: {})
|
63
|
-
meta = populate_meta(originating_service: originating_service, meta: meta)
|
66
|
+
def deliver_multi(messages:, topic:, originating_service: nil, sent_at: nil, meta: {})
|
67
|
+
meta = populate_meta(originating_service: originating_service, sent_at: sent_at, meta: meta)
|
64
68
|
|
65
69
|
payload = messages.each_with_object([]) do |message, a|
|
66
70
|
msg = {
|
@@ -121,9 +125,15 @@ module FastlyNsq::Messenger
|
|
121
125
|
producer_for(topic: topic) { |producer| producer.write payload }
|
122
126
|
end
|
123
127
|
|
124
|
-
def populate_meta(originating_service: nil, meta: {})
|
128
|
+
def populate_meta(originating_service: nil, sent_at: nil, meta: {})
|
125
129
|
meta[:originating_service] = originating_service || self.originating_service
|
126
|
-
|
130
|
+
|
131
|
+
meta[:sent_at] = if sent_at && sent_at.respond_to?(:iso8601)
|
132
|
+
sent_at.iso8601(5)
|
133
|
+
else
|
134
|
+
Time.now.iso8601(5)
|
135
|
+
end
|
136
|
+
|
127
137
|
meta
|
128
138
|
end
|
129
139
|
end
|
data/lib/fastly_nsq/version.rb
CHANGED
data/spec/messenger_spec.rb
CHANGED
@@ -72,6 +72,19 @@ RSpec.describe FastlyNsq::Messenger do
|
|
72
72
|
|
73
73
|
expect(producer).to have_received(:write).with(expected_attributes.to_json)
|
74
74
|
end
|
75
|
+
|
76
|
+
it 'can set the sent_at in the metadata' do
|
77
|
+
sent_at = Time.parse('2020-06-08 23:42:42')
|
78
|
+
meta = {}
|
79
|
+
|
80
|
+
expected_attributes = { data: message, meta: meta.merge(originating_service: origin, sent_at: sent_at.iso8601(5)) }
|
81
|
+
|
82
|
+
subject.producers['topic'] = producer
|
83
|
+
|
84
|
+
subject.deliver message: message, topic: 'topic', sent_at: sent_at, meta: meta, originating_service: origin
|
85
|
+
|
86
|
+
expect(producer).to have_received(:write).with(expected_attributes.to_json)
|
87
|
+
end
|
75
88
|
end
|
76
89
|
|
77
90
|
describe '#deliver_multi' do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fastly_nsq
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.17.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tommy O'Neil
|
@@ -10,10 +10,10 @@ authors:
|
|
10
10
|
- Lukas Eklund
|
11
11
|
- Josh Lane
|
12
12
|
- Hassan Shahid
|
13
|
-
autorequire:
|
13
|
+
autorequire:
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
|
-
date:
|
16
|
+
date: 2021-02-16 00:00:00.000000000 Z
|
17
17
|
dependencies:
|
18
18
|
- !ruby/object:Gem::Dependency
|
19
19
|
name: awesome_print
|
@@ -254,7 +254,7 @@ homepage: https://github.com/fastly/fastly_nsq
|
|
254
254
|
licenses:
|
255
255
|
- MIT
|
256
256
|
metadata: {}
|
257
|
-
post_install_message:
|
257
|
+
post_install_message:
|
258
258
|
rdoc_options: []
|
259
259
|
require_paths:
|
260
260
|
- lib
|
@@ -269,9 +269,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
269
269
|
- !ruby/object:Gem::Version
|
270
270
|
version: '0'
|
271
271
|
requirements: []
|
272
|
-
rubyforge_project:
|
272
|
+
rubyforge_project:
|
273
273
|
rubygems_version: 2.7.9
|
274
|
-
signing_key:
|
274
|
+
signing_key:
|
275
275
|
specification_version: 4
|
276
276
|
summary: Fastly NSQ Adapter
|
277
277
|
test_files: []
|