pheromone 0.1.1 → 0.1.2

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
  SHA1:
3
- metadata.gz: 1bc0ae4ecb429df63bc40406f5cce6cff3a00fe1
4
- data.tar.gz: a459c5422e13328a2301345fd54dc6269b27faee
3
+ metadata.gz: 72824e89ef3425da33b45c276319f332728461b7
4
+ data.tar.gz: 5b5bba2271b1fbc069d06615fec68d66b6279cf2
5
5
  SHA512:
6
- metadata.gz: 2cc5100938018080e908b82f8168d1f92fea428572148422a036fb7fe2e40fde9d1603993cb761c3624fe9f1f26162209946680bdbe862908c976b8fda30976e
7
- data.tar.gz: 00c32581b39cf273e9ffe702fc1ec4cdc20de5217e4c335b9c8a6c2463a12aaee80b4928a0449ad26409431c1d75fe953ce9fb0907aa1421b77573fc18ce646e
6
+ metadata.gz: bf9d4a27bb39fff06ee9fb98c0b501f3c0815330a73abfaf60d1f267588e523d9d550a5d645dd9d9f20a764f63375aba8a3a196aab1b39dc4be6907216f09061
7
+ data.tar.gz: 0c39091b06b7533f7c9989d9116f314c1badb813096e1e5ece4d0a675536b0eaba324e2f38584736bab54cc04bf8bd1f8543a8535364433889c71aae65d4af88
data/README.md CHANGED
@@ -208,6 +208,42 @@ class PublishableModel < ActiveRecord::Base
208
208
  end
209
209
  ```
210
210
 
211
+ ### 5. Specifying producer options
212
+
213
+ [Ruby-Kafka](https://github.com/zendesk/ruby-kafka) allows sending options to change the behaviour of Kafka Producer.
214
+
215
+ These can be sent in by passing `producer_options` to the `publish` method:
216
+
217
+ ```
218
+ class PublishableModel < ActiveRecord::Base
219
+ include Pheromone
220
+ publish [
221
+ {
222
+ event_types: [:create],
223
+ topic: :topic_test,
224
+ message: ->(obj) { { name: obj.name } },
225
+ producer_options: {
226
+ # The number of retries when attempting to deliver messages. The default is
227
+ # 2, so 3 attempts in total, but you can configure a higher or lower number:
228
+ max_retries: 5,
229
+ # The number of seconds to wait between retries. In order to handle longer
230
+ # periods of Kafka being unavailable, increase this number. The default is
231
+ # 1 second.
232
+ retry_backoff: 5,
233
+ # number of acknowledgements that the client should write to before returning
234
+ # possible values are :all, 0 or 1 and default behaviour is :all, requiring all
235
+ # replicas to acknowledge
236
+ required_acks: 1,
237
+ # compression can be enabled in order to improve bandwidth, and a minimum number
238
+ # of messages that need to be in the buffer before they are compressed can be
239
+ # specified using compression threshold
240
+ compression_codec: :snappy,
241
+ compression_threshold: 10
242
+ }
243
+ }
244
+ ]
245
+ end
246
+ ```
211
247
 
212
248
  ## Development
213
249
 
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module Pheromone
3
- VERSION = '0.1.1'.freeze
3
+ VERSION = '0.1.2'.freeze
4
4
  end
data/lib/pheromone.rb CHANGED
@@ -9,6 +9,13 @@ require 'waterdrop'
9
9
  # publish message_options: [
10
10
  # {
11
11
  # topic: :topic1,
12
+ # producer_options: {
13
+ # max_retries: 5,
14
+ # retry_backoff: 5,
15
+ # compression_codec: :snappy,
16
+ # compression_threshold: 10,
17
+ # required_acks: 1
18
+ # }
12
19
  # event_types: [:create, :update],
13
20
  # message: { a: 1, b: 2 }
14
21
  # },....
@@ -61,7 +68,8 @@ module Pheromone
61
68
  def send_message(options)
62
69
  WaterDrop::Message.new(
63
70
  options[:topic],
64
- message_meta_data.merge!(blob: message_blob(options)).to_json
71
+ message_meta_data.merge!(blob: message_blob(options)).to_json,
72
+ options[:producer_options] || {}
65
73
  ).send!
66
74
  end
67
75
 
metadata CHANGED
@@ -1,31 +1,31 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pheromone
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ankita Gupta
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-07-31 00:00:00.000000000 Z
11
+ date: 2017-08-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: sqlite3
14
+ name: active_model_serializers
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0'
20
- type: :development
19
+ version: 0.9.3
20
+ type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ">="
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '0'
26
+ version: 0.9.3
27
27
  - !ruby/object:Gem::Dependency
28
- name: activesupport
28
+ name: activerecord
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - ">="
@@ -39,7 +39,7 @@ dependencies:
39
39
  - !ruby/object:Gem::Version
40
40
  version: 4.2.5
41
41
  - !ruby/object:Gem::Dependency
42
- name: activerecord
42
+ name: activesupport
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - ">="
@@ -52,20 +52,6 @@ dependencies:
52
52
  - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: 4.2.5
55
- - !ruby/object:Gem::Dependency
56
- name: active_model_serializers
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - "~>"
60
- - !ruby/object:Gem::Version
61
- version: 0.9.3
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - "~>"
67
- - !ruby/object:Gem::Version
68
- version: 0.9.3
69
55
  - !ruby/object:Gem::Dependency
70
56
  name: waterdrop
71
57
  requirement: !ruby/object:Gem::Requirement
@@ -136,6 +122,20 @@ dependencies:
136
122
  - - "~>"
137
123
  - !ruby/object:Gem::Version
138
124
  version: '3.5'
125
+ - !ruby/object:Gem::Dependency
126
+ name: sqlite3
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
139
139
  - !ruby/object:Gem::Dependency
140
140
  name: with_model
141
141
  requirement: !ruby/object:Gem::Requirement