class LB::Operation

Base class for operations

Constants

VERSION

Version

Attributes

config[R]

Public Class Methods

operation_name() click to toggle source

Retrieves the operation name.

@return [Symbol]

# File lib/lb/operation.rb, line 24
def self.operation_name
  config.name
end

Public Instance Methods

call() click to toggle source

Executes the operation.

@return [self]

# File lib/lb/operation.rb, line 31
def call
  raise NotImplementedError, 'Override Operation#call(*args)!'
end
handle_exception(error) click to toggle source

Handles exception if given: Logs message and backtrace as :error.

@param [Hash] error @return [self]

# File lib/lb/operation.rb, line 49
def handle_exception(error)
  return self unless error.key?(:exception)
  exception = error.fetch(:exception)
  log :error, exception.message
  log :error, exception.backtrace.inspect

  self
end
value(*args) click to toggle source

Executes the operation with given arguments. Returns result or value of result if result responds to :value.

@param [Array] args @return [Object]

# File lib/lb/operation.rb, line 40
def value(*args)
  result = call(*args)
  result.respond_to?(:value) ? result.value : result
end