Class: ActiveRecord::ConnectionAdapters::TransactionState
Relationships & Source Files | |
Inherits: | Object |
Defined in: | activerecord/lib/active_record/connection_adapters/abstract/transaction.rb |
Class Method Summary
- .new(state = nil) ⇒ TransactionState constructor
Instance Attribute Summary
- #committed? ⇒ Boolean readonly
- #completed? ⇒ Boolean readonly
- #finalized? ⇒ Boolean readonly
- #fully_committed? ⇒ Boolean readonly
- #fully_completed? ⇒ Boolean readonly
- #fully_rolledback? ⇒ Boolean readonly
- #rolledback? ⇒ Boolean readonly
Instance Method Summary
Constructor Details
.new(state = nil) ⇒ TransactionState
# File 'activerecord/lib/active_record/connection_adapters/abstract/transaction.rb', line 6
def initialize(state = nil) @state = state @children = [] end
Instance Attribute Details
#committed? ⇒ Boolean
(readonly)
[ GitHub ]
# File 'activerecord/lib/active_record/connection_adapters/abstract/transaction.rb', line 19
def committed? @state == :committed || @state == :fully_committed end
#completed? ⇒ Boolean
(readonly)
[ GitHub ]
# File 'activerecord/lib/active_record/connection_adapters/abstract/transaction.rb', line 39
def completed? committed? || rolledback? end
#finalized? ⇒ Boolean
(readonly)
[ GitHub ]
# File 'activerecord/lib/active_record/connection_adapters/abstract/transaction.rb', line 15
def finalized? @state end
#fully_committed? ⇒ Boolean
(readonly)
[ GitHub ]
# File 'activerecord/lib/active_record/connection_adapters/abstract/transaction.rb', line 23
def fully_committed? @state == :fully_committed end
#fully_completed? ⇒ Boolean
(readonly)
[ GitHub ]
# File 'activerecord/lib/active_record/connection_adapters/abstract/transaction.rb', line 35
def fully_completed? completed? end
#fully_rolledback? ⇒ Boolean
(readonly)
[ GitHub ]
# File 'activerecord/lib/active_record/connection_adapters/abstract/transaction.rb', line 31
def fully_rolledback? @state == :fully_rolledback end
#rolledback? ⇒ Boolean
(readonly)
[ GitHub ]
# File 'activerecord/lib/active_record/connection_adapters/abstract/transaction.rb', line 27
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 11
def add_child(state) @children << state end
#commit!
[ GitHub ]# File 'activerecord/lib/active_record/connection_adapters/abstract/transaction.rb', line 71
def commit! @state = :committed end
#full_commit!
[ GitHub ]# File 'activerecord/lib/active_record/connection_adapters/abstract/transaction.rb', line 75
def full_commit! @state = :fully_committed end
#full_rollback!
[ GitHub ]# File 'activerecord/lib/active_record/connection_adapters/abstract/transaction.rb', line 66
def full_rollback! @children.each { |c| c.rollback! } @state = :fully_rolledback end
#nullify!
[ GitHub ]# File 'activerecord/lib/active_record/connection_adapters/abstract/transaction.rb', line 79
def nullify! @state = nil end
#rollback!
[ GitHub ]# File 'activerecord/lib/active_record/connection_adapters/abstract/transaction.rb', line 61
def rollback! @children.each { |c| c.rollback! } @state = :rolledback end
#set_state(state)
[ GitHub ]# 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