Class: Dbsketch::Comparison::ForeignKeyComparator

Inherits:
Object
  • Object
show all
Defined in:
lib/dbsketch/comparison/foreign_key_comparator.rb

Instance Method Summary collapse

Instance Method Details

#are_equivalent?(old_key, new_key) ⇒ Boolean

Returns:

  • (Boolean)

Raises:

  • (ArgumentError)


34
35
36
37
38
39
40
41
42
43
# File 'lib/dbsketch/comparison/foreign_key_comparator.rb', line 34

def are_equivalent? old_key, new_key
	### Preconditions
	raise ArgumentError, "old_key is not a Dbsketch::Model::ForeignKey" unless nil == old_key or old_key.is_a? Dbsketch::Model::ForeignKey
	raise ArgumentError, "new_key is not a Dbsketch::Model::ForeignKey" unless nil == new_key or new_key.is_a? Dbsketch::Model::ForeignKey
	###
	(nil != old_key and nil != new_key) and
		old_key.constricted_column.name == new_key.constricted_column.name and
		old_key.referenced_table.name == new_key.referenced_table.name and
		old_key.referenced_column.name == new_key.referenced_column.name
end

#compare(old_key, new_key) ⇒ Object

Raises:

  • (ArgumentError)


45
46
47
48
49
50
51
# File 'lib/dbsketch/comparison/foreign_key_comparator.rb', line 45

def compare old_key, new_key
	### Preconditions
	raise ArgumentError, "old_key is not a Dbsketch::Model::ForeignKey" unless nil == old_key or old_key.is_a? Dbsketch::Model::ForeignKey
	raise ArgumentError, "new_key is not a Dbsketch::Model::ForeignKey" unless nil == new_key or new_key.is_a? Dbsketch::Model::ForeignKey
	###
	ForeignKeyDiff.new(old_key, new_key) if not are_equivalent? old_key, new_key
end