Module: PolymorphicConstraints::ConnectionAdapters::SQLite3Adapter

Includes:
Utils::PolymorphicModelFinder, Utils::SqlString
Defined in:
lib/polymorphic_constraints/connection_adapters/sqlite3_adapter.rb

Instance Method Summary collapse

Methods included from Utils::PolymorphicModelFinder

#get_polymorphic_models

Methods included from Utils::SqlString

#strip_non_essential_spaces

Instance Method Details

#add_polymorphic_constraints(relation, associated_table, options = {}) ⇒ Object Also known as: update_polymorphic_constraints



15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/polymorphic_constraints/connection_adapters/sqlite3_adapter.rb', line 15

def add_polymorphic_constraints(relation, associated_table, options = {})
  polymorphic_models = options.fetch(:polymorphic_models) { get_polymorphic_models(relation) }

  statements = constraints_remove_statements(relation)
  statements << generate_create_constraints(relation, associated_table, polymorphic_models)
  statements << generate_update_constraints(relation, associated_table, polymorphic_models)

  polymorphic_models.each do |polymorphic_model|
    statements << generate_delete_constraints(relation, associated_table, polymorphic_model)
  end

  statements.each { |statement| execute statement }
end

#remove_polymorphic_constraints(relation) ⇒ Object



29
30
31
32
# File 'lib/polymorphic_constraints/connection_adapters/sqlite3_adapter.rb', line 29

def remove_polymorphic_constraints(relation)
  statements = constraints_remove_statements(relation)
  statements.each { |statement| execute statement }
end

#supports_polymorphic_constraints?Boolean

Returns:

  • (Boolean)


11
12
13
# File 'lib/polymorphic_constraints/connection_adapters/sqlite3_adapter.rb', line 11

def supports_polymorphic_constraints?
  true
end