class Spacebunny::Device::Message
Attributes
channel_name[R]
delivery_info[R]
device[R]
metadata[R]
payload[R]
sender_id[R]
Public Class Methods
new(device, options, delivery_info, metadata, payload)
click to toggle source
# File lib/spacebunny/device/message.rb, line 6 def initialize(device, options, delivery_info, metadata, payload) @device = device @options = options @delivery_info = delivery_info @metadata = metadata @payload = payload extract_options set_sender_id_and_channel end
Public Instance Methods
ack(options = {})
click to toggle source
# File lib/spacebunny/device/message.rb, line 17 def ack(options = {}) multiple = options.fetch :multiple, false @device.input_channel.acknowledge @delivery_info.delivery_tag, multiple end
blacklisted?()
click to toggle source
# File lib/spacebunny/device/message.rb, line 28 def blacklisted? # Discard packet if it has been sent from me if @discard_mine && @device.id.eql?(@sender_id) && !from_api? return true end # Discard packet if has been published from APIs if @discard_from_api && from_api? return true end false end
from_api?()
click to toggle source
# File lib/spacebunny/device/message.rb, line 40 def from_api? !@metadata[:headers].nil? && @metadata[:headers]['x-from-sb-api'] end
nack(options = {})
click to toggle source
# File lib/spacebunny/device/message.rb, line 22 def nack(options = {}) multiple = options.fetch :multiple, false requeue = options.fetch :requeue, false @device.input_channel.nack @delivery_info.delivery_tag, multiple, requeue end
Private Instance Methods
extract_options()
click to toggle source
# File lib/spacebunny/device/message.rb, line 46 def extract_options @discard_mine = @options.fetch :discard_mine, false @discard_from_api = @options.fetch :discard_from_api, false end
set_sender_id_and_channel()
click to toggle source
# File lib/spacebunny/device/message.rb, line 51 def set_sender_id_and_channel @sender_id, @channel_name = @delivery_info[:routing_key].split('.') end