Module: SaferRailsConsole::Patches::Sandbox::AutoRollback

Extended by:
Colors
Defined in:
lib/safer_rails_console/patches/sandbox/auto_rollback.rb

Defined Under Namespace

Modules: ActiveRecord

Constant Summary

Constants included from Colors

Colors::BLACK, Colors::BLUE, Colors::CYAN, Colors::GREEN, Colors::NONE, Colors::PINK, Colors::RED, Colors::WHITE, Colors::YELLOW

Class Method Summary collapse

Methods included from Colors

color_text

Class Method Details

.handle_and_reraise_exception(e) ⇒ Object



13
14
15
16
17
18
19
20
21
# File 'lib/safer_rails_console/patches/sandbox/auto_rollback.rb', line 13

def self.handle_and_reraise_exception(e)
  if e.message.include?('PG::ReadOnlySqlTransaction')
    puts color_text('An operation could not be completed due to read-only mode.', RED) # rubocop:disable Rails/Output
  else
    rollback_and_begin_new_transaction
  end

  raise e
end

.rollback_and_begin_new_transactionObject



7
8
9
10
11
# File 'lib/safer_rails_console/patches/sandbox/auto_rollback.rb', line 7

def self.rollback_and_begin_new_transaction
  connection = ::ActiveRecord::Base.connection
  connection.rollback_db_transaction
  connection.begin_db_transaction
end