yakc 0.1.1 → 0.1.2

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
  SHA1:
3
- metadata.gz: 85582e1cc1e9f75e02b293ac2eb08e1e5c854805
4
- data.tar.gz: 7cb171469ffcf5d4794f53c595c30ddc15d8277b
3
+ metadata.gz: 44d8d2354964fbc66a258745f1e258c27bbc4365
4
+ data.tar.gz: 61b5be7b9f75f887a8b0e7a6a76802c3244dd0a5
5
5
  SHA512:
6
- metadata.gz: 93f2c0c330970fe2bf899f0770b7424b85d2e22a488135e47abf7ff5b917e13a5f4218bb3d3ef9d78e753703eb3e11e8d5cfced784a3fa38a24199ea7f1f939a
7
- data.tar.gz: 38236c41997a8f531c7197d36892af9341ed58cbad981d08f3ce654e4738a0eabef983cd21cfdcf995830eb412c01c9529c6715ede02e19c335fa58ac271b599
6
+ metadata.gz: c5f17b3bc8143c260747832d695f94335df0b84ee7cdf1f63ed89662d01bccbcb745fdd9bb014d3caa4ddedbc27f123c09b7599b9f72804ac2a68796a4915af6
7
+ data.tar.gz: 5c1a6955c2f3c4762cf085404f2997af70d628127e330e350fa032326255ccf8b598310d4a6f73ab190f8025b3ba15771b982d8dfd1ee212c0f24eb0129d5010
data/README.md CHANGED
@@ -32,9 +32,9 @@ This is the bit of code that handles what to do with the messages once they are
32
32
  To set it up:
33
33
 
34
34
  ```ruby
35
- handler = YAKC::MessageBroadcaster.new publisher: MyBroadcaster, message_class: MyMessageClass
35
+ handler = YAKC::MessageBroadcaster.new publisher: MyBroadcaster, message_parser: MyMessageClass
36
36
  # or, if you are okay with Yeller
37
- handler = YAKC::MessageBroadcaster.new message_class: MyMessageClass
37
+ handler = YAKC::MessageBroadcaster.new message_parser: MyMessageClass
38
38
  ```
39
39
 
40
40
  And now you're ready to init the [reader](#reader)
@@ -103,7 +103,7 @@ It implements:
103
103
  Here's how you would use it:
104
104
 
105
105
  ```ruby
106
- handler = YAKC::MessageBroadcaster.new message_class: AvroMessage
106
+ handler = YAKC::MessageBroadcaster.new message_parser: AvroMessage
107
107
  reader = YAKC::Reader.new message_handler: handler
108
108
 
109
109
  reader.read
@@ -142,7 +142,7 @@ The reader would look like
142
142
  In your reader job
143
143
 
144
144
  ```ruby
145
- handler = YAKC::MessageBroadcaster.new message_class: AvroMessage
145
+ handler = YAKC::MessageBroadcaster.new message_parser: AvroMessage
146
146
  reader = YAKC::Reader.new message_handler: handler
147
147
 
148
148
  reader.read
@@ -3,12 +3,12 @@ module YAKC
3
3
  attr_accessor :zookeepers, :brokers, :app, :suffix, :topics, :logger
4
4
 
5
5
  def initialize
6
- logger = Logger.new(STDOUT)
7
- brokers = ENV.fetch("BROKERS", "localhost:9092").split(",")
8
- zookeepers = ENV.fetch("ZOOKEEPERS", "localhost:2181").split(",")
9
- app = ENV["APP"]
10
- suffix = ENV["SUFFIX"]
11
- topics = ENV["TOPICS"].split(",")
6
+ @logger = Logger.new(STDOUT)
7
+ @brokers = ENV.fetch("BROKERS", "localhost:9092").split(",")
8
+ @zookeepers = ENV.fetch("ZOOKEEPERS", "localhost:2181").split(",")
9
+ @app = ENV["APP"]
10
+ @suffix = ENV["SUFFIX"]
11
+ @topics = ENV.fetch("TOPICS", "").split(",")
12
12
  end
13
13
  end
14
14
  end
@@ -1,10 +1,8 @@
1
1
  module YAKC
2
- module Instrumenter
3
- class FallthroughInstrumenter
2
+ class FallthroughInstrumenter
4
3
 
5
- def instrument( message )
6
- yield
7
- end
4
+ def instrument( message )
5
+ yield
8
6
  end
9
7
  end
10
8
  end
@@ -15,7 +15,7 @@ module YAKC
15
15
  @instrumenter.instrument( msg ) do
16
16
  if msg.broadcastable?
17
17
  # broadcast the specific topic event
18
- @publisher.broadcast msg.payload, broadcast_key( topic, msg.event )
18
+ @publisher.broadcast msg.payload, broadcast_key( topic, msg.event )
19
19
  end
20
20
  end
21
21
  end
data/lib/yakc/reader.rb CHANGED
@@ -1,31 +1,36 @@
1
1
  module YAKC
2
2
  class Reader
3
- attr_reader :message_handler, :terminated
3
+ attr_reader :message_handler, :terminated, :config
4
+ delegate :topics, :brokers, :zookeepers, :logger, :app, :suffix, to: :config
4
5
 
5
6
  def initialize( message_handler: )
6
7
  @message_handler = message_handler
7
- @config = YAKC.configuration
8
+ @config = YAKC.configuration
8
9
 
9
10
  raise KeyError, "YAKC::Reader initialized without a message handler. Please specify one so that your receives messages don't end up on the floor. For more info, go to: https://github.com/gaorlov/yakc#message-handler" unless message_handler
10
11
 
11
- Signal.trap("INT") do
12
- @terminated = true
12
+ %w(INT TERM).each do |signal|
13
+ Signal.trap(signal) do
14
+ @terminated = true
15
+ end
13
16
  end
14
17
  end
15
18
 
16
19
  def read
20
+ logger.info "YAKC: Starting reading"
17
21
  loop do
18
22
  consumers.map do |consumer|
19
23
  consumer.fetch do |partition, bulk|
20
24
  bulk.each do |message|
21
- message_handler.handle topic, message
25
+ message_handler.handle consumer.topic, message
22
26
  end
23
27
  end
24
28
  return if terminated
25
29
  end
30
+ return if terminated
26
31
  end
27
32
  rescue => e
28
- YACK.logger.error e
33
+ logger.error e
29
34
  retry
30
35
  end
31
36
 
@@ -35,8 +40,8 @@ module YAKC
35
40
  @consumers ||= topics.map do |topic|
36
41
  Poseidon::ConsumerGroup.new(
37
42
  "#{app}-#{topic}-consumer-#{suffix}",
38
- @config.brokers,
39
- @config.zookeepers,
43
+ brokers,
44
+ zookeepers,
40
45
  topic,
41
46
  {})
42
47
  end
data/lib/yakc/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Yakc
2
- VERSION = "0.1.1"
2
+ VERSION = "0.1.2"
3
3
  end
data/lib/yakc.rb CHANGED
@@ -5,7 +5,7 @@ require 'yeller'
5
5
 
6
6
  module YAKC
7
7
  autoload :Configuration, 'yakc/configuration'
8
- autoload :FallthroughInstrumenter, 'yakc/fallthorugh_instrumenter'
8
+ autoload :FallthroughInstrumenter, 'yakc/fallthrough_instrumenter'
9
9
  autoload :MessageBroadcaster, 'yakc/message_broadcaster'
10
10
  autoload :Reader, 'yakc/reader'
11
11
  autoload :Message, 'yakc/message'
@@ -14,13 +14,13 @@ module YAKC
14
14
  attr_writer :configuration
15
15
  end
16
16
 
17
- def self.configuration
18
- @configuration ||= Configuration.new
19
- end
20
-
21
17
  def self.configure
22
18
  yield configuration
23
19
  end
20
+
21
+ def self.configuration
22
+ @configuration ||= YAKC::Configuration.new
23
+ end
24
24
 
25
25
  delegate :logger, to: :configuration
26
26
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: yakc
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
  - Greg
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-12-30 00:00:00.000000000 Z
11
+ date: 2016-12-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: yeller