Class: Dbsketch::Comparison::PrimaryKeyComparator

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

Instance Method Summary collapse

Instance Method Details

#are_equivalent?(old_key, new_key) ⇒ Boolean

Returns:

  • (Boolean)

Raises:

  • (ArgumentError)


30
31
32
33
34
35
36
# File 'lib/dbsketch/comparison/primary_key_comparator.rb', line 30

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

#compare(old_key, new_key) ⇒ Object

Returns a PrimaryKeyDiff if tables are different, nil otherwise

Raises:

  • (ArgumentError)


39
40
41
42
43
44
45
# File 'lib/dbsketch/comparison/primary_key_comparator.rb', line 39

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