Class: BBK::App::Processors::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/bbk/app/processors/base.rb

Direct Known Subclasses

Ping, Pong

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(*untyped, logger: BBK::App.logger) ⇒ Base

Returns a new instance of Base.



10
11
12
13
# File 'lib/bbk/app/processors/base.rb', line 10

def initialize(*untyped, logger: BBK::App.logger, **)
  logger = logger.respond_to?(:tagged) ? logger : ActiveSupport::TaggedLogging.new(logger)
  @logger = BBK::Utils::ProxyLogger.new(logger, tags: self.class.to_s)
end

Instance Attribute Details

#loggerObject (readonly)

Returns the value of attribute logger.



8
9
10
# File 'lib/bbk/app/processors/base.rb', line 8

def logger
  @logger
end

Instance Method Details

#call(message, results: []) ⇒ Object



23
24
25
26
27
28
29
# File 'lib/bbk/app/processors/base.rb', line 23

def call(message, results: [])
  debug 'processing message...'

  process(message, results: results)

  results
end

#process(_message, results: []) ⇒ Object

Raises:

  • (NotImplementedError)


31
32
33
# File 'lib/bbk/app/processors/base.rb', line 31

def process(_message, results: [])
  raise NotImplementedError.new("process method abstract in Processor class. Results count: #{results.count}")
end

#ruleObject



15
16
17
18
19
20
21
# File 'lib/bbk/app/processors/base.rb', line 15

def rule
  unless self.class.respond_to?(:rule)
    raise NotImplementedError.new("Not implemented class method rule in #{self.class.name}")
  end

  self.class.rule
end