Class: EurekaBot::Controller::Response

Inherits:
Object
  • Object
show all
Includes:
ActiveSupport::Callbacks
Defined in:
lib/eureka_bot/controller/response.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(logger: EurekaBot.logger) ⇒ Response

Returns a new instance of Response.



8
9
10
11
12
# File 'lib/eureka_bot/controller/response.rb', line 8

def initialize(logger: EurekaBot.logger)
  @logger = logger
  @data   = []
  @order_counters = {}
end

Instance Attribute Details

#controllerObject

Returns the value of attribute controller.



6
7
8
# File 'lib/eureka_bot/controller/response.rb', line 6

def controller
  @controller
end

#dataObject (readonly)

Returns the value of attribute data.



5
6
7
# File 'lib/eureka_bot/controller/response.rb', line 5

def data
  @data
end

#loggerObject (readonly)

Returns the value of attribute logger.



5
6
7
# File 'lib/eureka_bot/controller/response.rb', line 5

def logger
  @logger
end

Class Method Details

.sender_classObject



38
39
40
# File 'lib/eureka_bot/controller/response.rb', line 38

def self.sender_class
  @@sender_class ||= EurekaBot::Sender
end

Instance Method Details

#<<(params = {}) ⇒ Object



30
31
32
# File 'lib/eureka_bot/controller/response.rb', line 30

def <<(params={})
  add(params)
end

#add(sync: false, **params) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/eureka_bot/controller/response.rb', line 14

def add(sync: false, **params)
  run_callbacks :add do
    message = params
    if message[:order_queue]
      @order_counters[message[:order_queue]] = (@order_counters[message[:order_queue]] || 0) + 1
      message = {order: @order_counters[message[:order_queue]]}.merge(message)
    end
    if sync
      self.class.sender_class.new.deliver(message)
    else
      @data << message
      nil
    end
  end
end

#to_aObject



34
35
36
# File 'lib/eureka_bot/controller/response.rb', line 34

def to_a
  data
end