class Activerecord::Transactionable::Result

Attributes

attempt[R]
context[R]
error[R]
nested[R]
result[R]
type[R]
value[R]

Public Class Methods

new(value, context:, transaction_open:, attempt:, error: nil, type: nil) click to toggle source
# File lib/activerecord/transactionable/result.rb, line 5
def initialize(value, context:, transaction_open:, attempt:, error: nil, type: nil)
  @value = value
  @result = fail? ? 'fail' : 'success'
  @context = context
  @nested = transaction_open ? true : false
  @attempt = attempt
  @error = error
  @type = type
end

Public Instance Methods

fail?() click to toggle source
# File lib/activerecord/transactionable/result.rb, line 15
def fail?
  value == false
end
success?() click to toggle source
# File lib/activerecord/transactionable/result.rb, line 19
def success?
  value == true
end
to_h(skip_error: nil) click to toggle source
# File lib/activerecord/transactionable/result.rb, line 23
def to_h(skip_error: nil)
  diagnostic_data = {
      result: result,
      type: type,
      context: context,
      nested: nested,
      attempt: attempt,
  }
  diagnostic_data.merge!(
    error: error.class.to_s,
    message: error.message,
  ) if !skip_error && error
  diagnostic_data
end
to_s(skip_error: nil) click to toggle source
# File lib/activerecord/transactionable/result.rb, line 38
def to_s(skip_error: nil)
  to_h(skip_error: skip_error).to_s
end