summaryrefslogtreecommitdiff
path: root/lib/killjoy/kafka/message.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/killjoy/kafka/message.rb')
-rw-r--r--lib/killjoy/kafka/message.rb21
1 files changed, 18 insertions, 3 deletions
diff --git a/lib/killjoy/kafka/message.rb b/lib/killjoy/kafka/message.rb
index cd1f14e..c63b186 100644
--- a/lib/killjoy/kafka/message.rb
+++ b/lib/killjoy/kafka/message.rb
@@ -1,10 +1,15 @@
module Killjoy
module Kafka
class Message
- attr_reader :to_hash, :info, :channel
+ attr_reader :to_hash
def initialize(raw_message)
@to_hash = JSON.parse(raw_message, symbolize_names: true)
+ @interceptors = { ack: [], reject: [] }
+ end
+
+ def intercept(response_type, &block)
+ @interceptors[response_type] << block
end
def process(future)
@@ -17,16 +22,26 @@ module Killjoy
end
def ack!
- puts "TODO:: ack!"
+ #puts "TODO:: ack!"
+ run_interceptors_for(:ack)
end
def reject!(requeue = false)
- puts "TODO:: reject!"
+ #puts "TODO:: reject!"
+ run_interceptors_for(:reject)
end
def to_s
to_hash
end
+
+ private
+
+ def run_interceptors_for(response_type)
+ @interceptors[response_type].each do |interceptor|
+ interceptor.call
+ end
+ end
end
end
end