Class: Unconstrained::Handlers::AbstractHandler

Inherits:
Object
  • Object
show all
Defined in:
lib/unconstrained/handlers/abstract_handler.rb

Direct Known Subclasses

PostgreSQLFKHandler

Instance Method Summary collapse

Constructor Details

#initialize(message, record) ⇒ AbstractHandler

Returns a new instance of AbstractHandler.



4
5
6
7
# File 'lib/unconstrained/handlers/abstract_handler.rb', line 4

def initialize message, record
  @message = message
  @record = record
end

Instance Method Details

#constraint_error_columnObject



38
39
# File 'lib/unconstrained/handlers/abstract_handler.rb', line 38

def constraint_error_column
end

#constraint_error_tableObject



41
42
# File 'lib/unconstrained/handlers/abstract_handler.rb', line 41

def constraint_error_table
end

#destroy_error_keyObject



30
31
32
# File 'lib/unconstrained/handlers/abstract_handler.rb', line 30

def destroy_error_key
  :"restrict_dependent_destroy.many"
end

#destroy_error_optionsObject



34
35
36
# File 'lib/unconstrained/handlers/abstract_handler.rb', line 34

def destroy_error_options
  { record: constraint_error_table.humanize.downcase }
end

#handle_destroyObject



18
19
20
# File 'lib/unconstrained/handlers/abstract_handler.rb', line 18

def handle_destroy
  @record.errors.add(:base, destroy_error_key, destroy_error_options)
end

#handle_saveObject



9
10
11
12
13
14
15
16
# File 'lib/unconstrained/handlers/abstract_handler.rb', line 9

def handle_save
  column_name = constraint_error_column
  if column_name == @record.class.primary_key
    @record.errors.add(:base, save_error_key, save_error_options)
  else
    @record.errors.add(column_name.to_sym, save_error_key, save_error_options)
  end
end

#save_error_keyObject



22
23
24
# File 'lib/unconstrained/handlers/abstract_handler.rb', line 22

def save_error_key
  :invalid
end

#save_error_optionsObject



26
27
28
# File 'lib/unconstrained/handlers/abstract_handler.rb', line 26

def save_error_options
  {}
end