35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
# File 'lib/rspec/hermetic/diff.rb', line 35
def self.between(before_snapshot, after_snapshot)
changes = []
probe_names = before_snapshot.data.keys | after_snapshot.data.keys
probe_names.each do |probe|
before_data = before_snapshot.data.fetch(probe, {})
after_data = after_snapshot.data.fetch(probe, {})
keys = before_data.keys | after_data.keys
keys.each do |key|
before_value = before_data.key?(key) ? before_data[key] : Change::MISSING
after_value = after_data.key?(key) ? after_data[key] : Change::MISSING
next if before_value == after_value
changes << Change.new(probe: probe, key: key, before: before_value, after: after_value)
end
end
ChangeSet.new(
changes: changes,
before_errors: before_snapshot.errors,
after_errors: after_snapshot.errors,
before_timings: before_snapshot.timings,
after_timings: after_snapshot.timings
)
end
|