Methods

Class Public methods

new(state = nil)

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

Instance Public methods

add_child(state)

# File activerecord/lib/active_record/connection_adapters/abstract/transaction.rb, line 11
def add_child(state)
  @children << state
end

commit!()

# File activerecord/lib/active_record/connection_adapters/abstract/transaction.rb, line 71
def commit!
  @state = :committed
end

committed?()

# File activerecord/lib/active_record/connection_adapters/abstract/transaction.rb, line 19
def committed?
  @state == :committed || @state == :fully_committed
end

completed?()

# File activerecord/lib/active_record/connection_adapters/abstract/transaction.rb, line 39
def completed?
  committed? || rolledback?
end

finalized?()

# File activerecord/lib/active_record/connection_adapters/abstract/transaction.rb, line 15
def finalized?
  @state
end

full_commit!()

# File activerecord/lib/active_record/connection_adapters/abstract/transaction.rb, line 75
def full_commit!
  @state = :fully_committed
end

full_rollback!()

# File activerecord/lib/active_record/connection_adapters/abstract/transaction.rb, line 66
def full_rollback!
  @children.each { |c| c.rollback! }
  @state = :fully_rolledback
end

fully_committed?()

# File activerecord/lib/active_record/connection_adapters/abstract/transaction.rb, line 23
def fully_committed?
  @state == :fully_committed
end

fully_completed?()

# File activerecord/lib/active_record/connection_adapters/abstract/transaction.rb, line 35
def fully_completed?
  completed?
end

fully_rolledback?()

# File activerecord/lib/active_record/connection_adapters/abstract/transaction.rb, line 31
def fully_rolledback?
  @state == :fully_rolledback
end

nullify!()

# File activerecord/lib/active_record/connection_adapters/abstract/transaction.rb, line 79
def nullify!
  @state = nil
end

rollback!()

# File activerecord/lib/active_record/connection_adapters/abstract/transaction.rb, line 61
def rollback!
  @children.each { |c| c.rollback! }
  @state = :rolledback
end

rolledback?()

# File activerecord/lib/active_record/connection_adapters/abstract/transaction.rb, line 27
def rolledback?
  @state == :rolledback || @state == :fully_rolledback
end

set_state(state)

# File activerecord/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