diff options
Diffstat (limited to 'lib/killjoy/kafka/message.rb')
| -rw-r--r-- | lib/killjoy/kafka/message.rb | 21 |
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 |
