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