Class: DatabaseValidations::Adapters::SqliteAdapter

Inherits:
BaseAdapter
  • Object
show all
Defined in:
lib/database_validations/lib/adapters/sqlite_adapter.rb

Constant Summary collapse

ADAPTER =
:sqlite3

Constants inherited from BaseAdapter

BaseAdapter::SUPPORTED_OPTIONS

Class Method Summary collapse

Methods inherited from BaseAdapter

#find_foreign_key_by_column, #find_unique_index, #find_unique_index_by_name, #foreign_keys, #initialize, #table_name, #unique_indexes

Constructor Details

This class inherits a constructor from DatabaseValidations::Adapters::BaseAdapter

Class Method Details

.foreign_key_error_column(error) ⇒ Object



15
16
17
18
19
20
21
22
# File 'lib/database_validations/lib/adapters/sqlite_adapter.rb', line 15

def foreign_key_error_column(error)
  return [] unless error.respond_to?(:sql) && error.sql

  columns_clause = error.sql[/\(([^)]+)\)\s*VALUES/i, 1]
  return [] unless columns_clause

  columns_clause.scan(/"([^"]+)"/).flatten
end

.unique_error_columns(error) ⇒ Object



11
12
13
# File 'lib/database_validations/lib/adapters/sqlite_adapter.rb', line 11

def unique_error_columns(error)
  error.message.scan(/\w+\.([^,:]+)/).flatten
end

.unique_index_name(error) ⇒ Object



7
8
9
# File 'lib/database_validations/lib/adapters/sqlite_adapter.rb', line 7

def unique_index_name(error)
  error.message[/UNIQUE constraint failed: index '([^']+)'/, 1]
end