class Mv::Core::Constraint::Builder::Index
Public Instance Methods
create()
click to toggle source
Calls superclass method
Mv::Core::Constraint::Builder::Base#create
# File lib/mv/core/constraint/builder/index.rb, line 8 def create super constraint.validations.group_by(&:table_name).each do |table_name, validations| remove_index(table_name) add_index(table_name, validations.collect(&:column_name)) end end
delete()
click to toggle source
Calls superclass method
Mv::Core::Constraint::Builder::Base#delete
# File lib/mv/core/constraint/builder/index.rb, line 17 def delete super constraint.validations.group_by(&:table_name).each do |table_name, validations| remove_index(table_name) end end
update(new_constraint_builder)
click to toggle source
Calls superclass method
Mv::Core::Constraint::Builder::Base#update
# File lib/mv/core/constraint/builder/index.rb, line 25 def update new_constraint_builder super delete new_constraint_builder.create end
Private Instance Methods
add_index(table_name, columns)
click to toggle source
# File lib/mv/core/constraint/builder/index.rb, line 43 def add_index(table_name, columns) db.add_index(table_name, columns, name: name, unique: true) end
index_exists?(table_name)
click to toggle source
# File lib/mv/core/constraint/builder/index.rb, line 34 def index_exists?(table_name) db.data_source_exists?(table_name) && db.index_name_exists?(table_name, name, false) end
remove_index(table_name)
click to toggle source
# File lib/mv/core/constraint/builder/index.rb, line 39 def remove_index(table_name) db.remove_index(table_name, name: name) if index_exists?(table_name) end