123456789_123456789_123456789_123456789_123456789_

Class: ActiveRecord::ConnectionAdapters::TransactionState

Relationships & Source Files
Inherits: Object
Defined in: activerecord/lib/active_record/connection_adapters/abstract/transaction.rb

Class Method Summary

Instance Attribute Summary

Instance Method Summary

Constructor Details

.new(state = nil) ⇒ TransactionState

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/abstract/transaction.rb', line 9

def initialize(state = nil)
  @state = state
  @children = nil
end

Instance Attribute Details

#committed?Boolean (readonly)

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/abstract/transaction.rb', line 23

def committed?
  @state == :committed || @state == :fully_committed
end

#completed?Boolean (readonly)

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/abstract/transaction.rb', line 47

def completed?
  committed? || rolledback?
end

#finalized?Boolean (readonly)

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/abstract/transaction.rb', line 19

def finalized?
  @state
end

#fully_committed?Boolean (readonly)

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/abstract/transaction.rb', line 27

def fully_committed?
  @state == :fully_committed
end

#fully_completed?Boolean (readonly)

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/abstract/transaction.rb', line 43

def fully_completed?
  completed?
end

#fully_rolledback?Boolean (readonly)

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/abstract/transaction.rb', line 35

def fully_rolledback?
  @state == :fully_rolledback
end

#invalidated?Boolean (readonly)

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/abstract/transaction.rb', line 39

def invalidated?
  @state == :invalidated
end

#rolledback?Boolean (readonly)

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/abstract/transaction.rb', line 31

def rolledback?
  @state == :rolledback || @state == :fully_rolledback
end

Instance Method Details

#add_child(state)

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/abstract/transaction.rb', line 14

def add_child(state)
  @children ||= []
  @children << state
end

#commit!

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/abstract/transaction.rb', line 66

def commit!
  @state = :committed
end

#full_commit!

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/abstract/transaction.rb', line 70

def full_commit!
  @state = :fully_committed
end

#full_rollback!

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/abstract/transaction.rb', line 56

def full_rollback!
  @children&.each { |c| c.rollback! }
  @state = :fully_rolledback
end

#invalidate!

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/abstract/transaction.rb', line 61

def invalidate!
  @children&.each { |c| c.invalidate! }
  @state = :invalidated
end

#nullify!

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/abstract/transaction.rb', line 74

def nullify!
  @state = nil
end

#rollback!

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/abstract/transaction.rb', line 51

def rollback!
  @children&.each { |c| c.rollback! }
  @state = :rolledback
end