class ActiveRecord::ConnectionAdapters::TransactionState

Public Class Methods

new(state = nil) click to toggle source
# File lib/active_record/connection_adapters/abstract/transaction.rb, line 6
def initialize(state = nil)
  @state = state
  @children = []
end

Public Instance Methods

add_child(state) click to toggle source
# File lib/active_record/connection_adapters/abstract/transaction.rb, line 11
def add_child(state)
  @children << state
end
commit!() click to toggle source
# File lib/active_record/connection_adapters/abstract/transaction.rb, line 71
def commit!
  @state = :committed
end
committed?() click to toggle source
# File lib/active_record/connection_adapters/abstract/transaction.rb, line 19
def committed?
  @state == :committed || @state == :fully_committed
end
completed?() click to toggle source
# File lib/active_record/connection_adapters/abstract/transaction.rb, line 39
def completed?
  committed? || rolledback?
end
finalized?() click to toggle source
# File lib/active_record/connection_adapters/abstract/transaction.rb, line 15
def finalized?
  @state
end
full_commit!() click to toggle source
# File lib/active_record/connection_adapters/abstract/transaction.rb, line 75
def full_commit!
  @state = :fully_committed
end
full_rollback!() click to toggle source
# File lib/active_record/connection_adapters/abstract/transaction.rb, line 66
def full_rollback!
  @children.each { |c| c.rollback! }
  @state = :fully_rolledback
end
fully_committed?() click to toggle source
# File lib/active_record/connection_adapters/abstract/transaction.rb, line 23
def fully_committed?
  @state == :fully_committed
end
fully_completed?() click to toggle source
# File lib/active_record/connection_adapters/abstract/transaction.rb, line 35
def fully_completed?
  completed?
end
fully_rolledback?() click to toggle source
# File lib/active_record/connection_adapters/abstract/transaction.rb, line 31
def fully_rolledback?
  @state == :fully_rolledback
end
nullify!() click to toggle source
# File lib/active_record/connection_adapters/abstract/transaction.rb, line 79
def nullify!
  @state = nil
end
rollback!() click to toggle source
# File lib/active_record/connection_adapters/abstract/transaction.rb, line 61
def rollback!
  @children.each { |c| c.rollback! }
  @state = :rolledback
end
rolledback?() click to toggle source
# File lib/active_record/connection_adapters/abstract/transaction.rb, line 27
def rolledback?
  @state == :rolledback || @state == :fully_rolledback
end
set_state(state) click to toggle source
# File lib/active_record/connection_adapters/abstract/transaction.rb, line 43
      def set_state(state)
        ActiveSupport::Deprecation.warn(<<-MSG.squish)
          The set_state method is deprecated and will be removed in
          Rails 6.0. Please use rollback! or commit! to set transaction
          state directly.
        MSG
        case state
        when :rolledback
          rollback!
        when :committed
          commit!
        when nil
          nullify!
        else
          raise ArgumentError, "Invalid transaction state: #{state}"
        end
      end