Class: BBK::App::Dispatcher::Message
- Inherits:
-
Object
- Object
- BBK::App::Dispatcher::Message
show all
- Defined in:
- lib/bbk/app/dispatcher/message.rb
Instance Attribute Summary collapse
Instance Method Summary
collapse
Constructor Details
#initialize(consumer, delivery_info, headers, body, *_args, **_kwargs) ⇒ Message
Returns a new instance of Message.
10
11
12
13
14
15
16
17
|
# File 'lib/bbk/app/dispatcher/message.rb', line 10
def initialize(consumer, delivery_info, , body, *_args, **_kwargs)
@consumer = consumer
@delivery_info = delivery_info
@headers = .to_h.with_indifferent_access
@body = body
@acked = false
@nacked = false
end
|
Instance Attribute Details
#body ⇒ Object
Returns the value of attribute body.
8
9
10
|
# File 'lib/bbk/app/dispatcher/message.rb', line 8
def body
@body
end
|
#consumer ⇒ Object
Returns the value of attribute consumer.
8
9
10
|
# File 'lib/bbk/app/dispatcher/message.rb', line 8
def consumer
@consumer
end
|
#delivery_info ⇒ Object
Returns the value of attribute delivery_info.
8
9
10
|
# File 'lib/bbk/app/dispatcher/message.rb', line 8
def delivery_info
@delivery_info
end
|
Returns the value of attribute headers.
8
9
10
|
# File 'lib/bbk/app/dispatcher/message.rb', line 8
def
@headers
end
|
Instance Method Details
#ack(*args, answer: nil, **kwargs) ⇒ Object
28
29
30
31
32
33
34
|
# File 'lib/bbk/app/dispatcher/message.rb', line 28
def ack(*args, answer: nil, **kwargs)
return if processed?
consumer.ack(self, *args, answer: answer, **kwargs)
@acked = true
nil
end
|
#acked? ⇒ Boolean
75
76
77
|
# File 'lib/bbk/app/dispatcher/message.rb', line 75
def acked?
@acked
end
|
#inspect ⇒ Object
71
72
73
|
# File 'lib/bbk/app/dispatcher/message.rb', line 71
def inspect "#<#{self.class.name} @consumer=#{consumer.class.name}, @headers=#{.inspect}>"
end
|
#message_id ⇒ Object
44
45
46
|
# File 'lib/bbk/app/dispatcher/message.rb', line 44
def message_id
raise NotImplementedError.new("#{self.class.name} does not implement #{__method__} method")
end
|
#nack(*args, error: nil, **kwargs) ⇒ Object
36
37
38
39
40
41
42
|
# File 'lib/bbk/app/dispatcher/message.rb', line 36
def nack(*args, error: nil, **kwargs)
return if processed?
consumer.nack(self, *args, error: error, **kwargs)
@nacked = true
nil
end
|
#nacked? ⇒ Boolean
79
80
81
|
# File 'lib/bbk/app/dispatcher/message.rb', line 79
def nacked?
@nacked
end
|
#payload ⇒ Object
20
21
22
23
24
25
26
|
# File 'lib/bbk/app/dispatcher/message.rb', line 20
def payload
@payload ||= begin
Oj.load(@body).with_indifferent_access
rescue StandardError
{}.with_indifferent_access
end
end
|
#processed? ⇒ Boolean
83
84
85
|
# File 'lib/bbk/app/dispatcher/message.rb', line 83
def processed?
acked? || nacked?
end
|
#protocol ⇒ Object
56
57
58
|
# File 'lib/bbk/app/dispatcher/message.rb', line 56
def protocol
raise NotImplementedError.new("#{self.class.name} does not implement #{__method__} method")
end
|
#reply_message_id(addon) ⇒ Object
60
61
62
|
# File 'lib/bbk/app/dispatcher/message.rb', line 60
def reply_message_id(addon)
Digest::SHA1.hexdigest("#{addon}#{message_id}")
end
|
#reply_to ⇒ Object
48
49
50
|
# File 'lib/bbk/app/dispatcher/message.rb', line 48
def reply_to
raise NotImplementedError.new("#{self.class.name} does not implement #{__method__} method")
end
|
#to_h ⇒ Object
64
65
66
67
68
69
|
# File 'lib/bbk/app/dispatcher/message.rb', line 64
def to_h
{
headers: ,
body: body
}
end
|
#user_id ⇒ Object
52
53
54
|
# File 'lib/bbk/app/dispatcher/message.rb', line 52
def user_id
raise NotImplementedError.new("#{self.class.name} does not implement #{__method__} method")
end
|