def load
change_times = {}
[:left, :right].each do |database|
changes[database] = LoggedChange.new loaders[database]
change_times[database] = loaders[database].oldest_change_time
end
return if change_times[:left] == nil and change_times[:right] == nil
oldest = nil
[:left, :right].each do |database|
oldest = OTHER_SIDE[database] if change_times[database] == nil
end
oldest ||= change_times[:left] <= change_times[:right] ? :left : :right
changes[oldest].load_oldest
changes[OTHER_SIDE[oldest]].load_specified(
session.corresponding_table(oldest, changes[oldest].table),
changes[oldest].key)
self.type = DIFF_TYPES[changes[:left].type][changes[:right].type]
self.loaded = true
end