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