Class: Activerecord::Transactionable::Result

Inherits:
Object
  • Object
show all
Defined in:
lib/activerecord/transactionable/result.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(value, context:, transaction_open:, attempt:, error: nil, type: nil) ⇒ Result

Returns a new instance of Result.



8
9
10
11
12
13
14
15
16
# File 'lib/activerecord/transactionable/result.rb', line 8

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

Instance Attribute Details

#attemptObject (readonly)

Returns the value of attribute attempt.



6
7
8
# File 'lib/activerecord/transactionable/result.rb', line 6

def attempt
  @attempt
end

#contextObject (readonly)

Returns the value of attribute context.



6
7
8
# File 'lib/activerecord/transactionable/result.rb', line 6

def context
  @context
end

#errorObject (readonly)

Returns the value of attribute error.



6
7
8
# File 'lib/activerecord/transactionable/result.rb', line 6

def error
  @error
end

#nestedObject (readonly)

Returns the value of attribute nested.



6
7
8
# File 'lib/activerecord/transactionable/result.rb', line 6

def nested
  @nested
end

#resultObject (readonly)

Returns the value of attribute result.



6
7
8
# File 'lib/activerecord/transactionable/result.rb', line 6

def result
  @result
end

#typeObject (readonly)

Returns the value of attribute type.



6
7
8
# File 'lib/activerecord/transactionable/result.rb', line 6

def type
  @type
end

#valueObject (readonly)

Returns the value of attribute value.



6
7
8
# File 'lib/activerecord/transactionable/result.rb', line 6

def value
  @value
end

Instance Method Details

#fail?Boolean

Returns:

  • (Boolean)


18
19
20
# File 'lib/activerecord/transactionable/result.rb', line 18

def fail?
  value == false
end

#success?Boolean

Returns:

  • (Boolean)


22
23
24
# File 'lib/activerecord/transactionable/result.rb', line 22

def success?
  value == true
end

#to_h(skip_error: nil) ⇒ Object



26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/activerecord/transactionable/result.rb', line 26

def to_h(skip_error: nil)
  diagnostic_data = {
    result: result,
    type: type,
    context: context,
    nested: nested,
    attempt: attempt,
  }
  if !skip_error && error
    diagnostic_data[:error] = error.class.to_s
    diagnostic_data[:message] = error.message
  end
  diagnostic_data
end

#to_s(skip_error: nil) ⇒ Object



41
42
43
# File 'lib/activerecord/transactionable/result.rb', line 41

def to_s(skip_error: nil)
  to_h(skip_error: skip_error).to_s
end