diff options
Diffstat (limited to 'lib/killjoy/message.rb')
| -rw-r--r-- | lib/killjoy/message.rb | 47 |
1 files changed, 0 insertions, 47 deletions
diff --git a/lib/killjoy/message.rb b/lib/killjoy/message.rb deleted file mode 100644 index 2aa9c7d..0000000 --- a/lib/killjoy/message.rb +++ /dev/null @@ -1,47 +0,0 @@ -module Killjoy - class Message - attr_reader :to_hash, :info, :channel - - def initialize(raw_message, info, channel) - @to_hash = JSON.parse(raw_message, symbolize_names: true) - @info = info - @channel = channel - @interceptors = { ack: [], reject: [] } - end - - def intercept(response_type, &block) - @interceptors[response_type] << block - end - - def process(future) - future.on_success do |rows| - ack! - end - future.on_failure do |error| - reject! - end - end - - def ack! - run_interceptors_for(:ack) - channel.acknowledge(info.delivery_tag, false) - end - - def reject!(requeue = false) - run_interceptors_for(:reject) - channel.reject(info.delivery_tag, requeue) - 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 |
