Class: Rabbit::Receiving::Receive
- Inherits:
-
Object
- Object
- Rabbit::Receiving::Receive
- Defined in:
- lib/rabbit/receiving/receive.rb
Instance Attribute Summary collapse
-
#arguments ⇒ Object
Returns the value of attribute arguments.
-
#delivery_info ⇒ Object
Returns the value of attribute delivery_info.
-
#message ⇒ Object
Returns the value of attribute message.
Instance Method Summary collapse
- #after_hooks ⇒ Object
- #before_hooks ⇒ Object
- #call ⇒ Object
- #call_hooks(hooks) ⇒ Object
-
#initialize(message: nil, delivery_info: nil, arguments: nil) ⇒ Receive
constructor
A new instance of Receive.
- #job_class ⇒ Object
- #job_configs ⇒ Object
- #log! ⇒ Object
- #message_info ⇒ Object
- #process_message ⇒ Object
- #queue ⇒ Object
- #queue_name ⇒ Object
Constructor Details
#initialize(message: nil, delivery_info: nil, arguments: nil) ⇒ Receive
Returns a new instance of Receive.
11 12 13 14 15 |
# File 'lib/rabbit/receiving/receive.rb', line 11 def initialize(message: nil, delivery_info: nil, arguments: nil) self. = self.delivery_info = delivery_info self.arguments = arguments end |
Instance Attribute Details
#arguments ⇒ Object
Returns the value of attribute arguments.
9 10 11 |
# File 'lib/rabbit/receiving/receive.rb', line 9 def arguments @arguments end |
#delivery_info ⇒ Object
Returns the value of attribute delivery_info.
9 10 11 |
# File 'lib/rabbit/receiving/receive.rb', line 9 def delivery_info @delivery_info end |
#message ⇒ Object
Returns the value of attribute message.
9 10 11 |
# File 'lib/rabbit/receiving/receive.rb', line 9 def @message end |
Instance Method Details
#after_hooks ⇒ Object
52 53 54 |
# File 'lib/rabbit/receiving/receive.rb', line 52 def after_hooks Rabbit.config.after_receiving_hooks || [] end |
#before_hooks ⇒ Object
48 49 50 |
# File 'lib/rabbit/receiving/receive.rb', line 48 def before_hooks Rabbit.config.before_receiving_hooks || [] end |
#call ⇒ Object
17 18 19 20 21 22 |
# File 'lib/rabbit/receiving/receive.rb', line 17 def call log! call_hooks(before_hooks) call_hooks(after_hooks) end |
#call_hooks(hooks) ⇒ Object
42 43 44 45 46 |
# File 'lib/rabbit/receiving/receive.rb', line 42 def call_hooks(hooks) hooks.each do |hook_proc| hook_proc.call(, ) end end |
#job_class ⇒ Object
74 75 76 77 78 79 80 |
# File 'lib/rabbit/receiving/receive.rb', line 74 def job_class Rabbit.config.receiving_job_class_callable&.call( message: , delivery_info: delivery_info, arguments: arguments, ) || Rabbit::Receiving::Job end |
#job_configs ⇒ Object
66 67 68 |
# File 'lib/rabbit/receiving/receive.rb', line 66 def job_configs queue.handler.additional_job_configs end |
#log! ⇒ Object
24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/rabbit/receiving/receive.rb', line 24 def log! = .scan(/.{1,#{Rabbit.config.}}/) .each_with_index do |, index| = Rabbit::Helper.(, .size, index) Rabbit.config.receive_logger.debug( [, delivery_info, arguments].join(" / "), ) end end |
#message_info ⇒ Object
56 57 58 59 60 |
# File 'lib/rabbit/receiving/receive.rb', line 56 def arguments.merge( delivery_info.slice(:exchange, :routing_key), ) end |
#process_message ⇒ Object
36 37 38 39 40 |
# File 'lib/rabbit/receiving/receive.rb', line 36 def job_class .set(queue: queue_name, **job_configs) .perform_later(, ) end |
#queue ⇒ Object
62 63 64 |
# File 'lib/rabbit/receiving/receive.rb', line 62 def queue @queue ||= Rabbit::Receiving::Queue.new(, arguments) end |
#queue_name ⇒ Object
70 71 72 |
# File 'lib/rabbit/receiving/receive.rb', line 70 def queue_name queue.name end |