class Dbsketch::Comparison::IndexComparator
Public Instance Methods
are_equivalent?(old_index, new_index)
click to toggle source
# File lib/dbsketch/comparison/index_comparator.rb, line 33 def are_equivalent? old_index, new_index ### Preconditions raise ArgumentError, "old_index is not a Dbsketch::Model::Index" unless nil == old_index or old_index.is_a? Dbsketch::Model::Index raise ArgumentError, "new_index is not a Dbsketch::Model::Index" unless nil == new_index or new_index.is_a? Dbsketch::Model::Index ### (nil != old_index and nil != new_index) and old_index.target.name == new_index.target.name and columns(old_index, new_index).empty? end
compare(old_index, new_index)
click to toggle source
# File lib/dbsketch/comparison/index_comparator.rb, line 43 def compare old_index, new_index ### Preconditions raise ArgumentError, "old_index is not a Dbsketch::Model::Index" unless nil == old_index or old_index.is_a? Dbsketch::Model::Index raise ArgumentError, "new_index is not a Dbsketch::Model::Index" unless nil == new_index or new_index.is_a? Dbsketch::Model::Index ### IndexDiff.new(old_index, new_index, columns(old_index, new_index)) if not are_equivalent? old_index, new_index end
Private Instance Methods
columns(old_index, new_index)
click to toggle source
# File lib/dbsketch/comparison/index_comparator.rb, line 53 def columns old_index, new_index diffs = [] if nil != old_index and nil != new_index diffs << old_index.columns.select { |old_i| not new_index.has_column? old_i.name }.map { |old_i| Diff.new old_i.name, nil } diffs << new_index.columns.select { |new_i| not old_index.has_column? new_i.name }.map { |new_i| Diff.new nil, new_i.name } end diffs.flatten.compact end