6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
# File 'lib/vkit/core/registry_diff.rb', line 6
def self.compute(local:, remote:)
local ||= {}
remote ||= {}
local_datasets = normalize(local)
remote_datasets = normalize(remote)
out = { "datasets" => [] }
all_names = (local_datasets.keys | remote_datasets.keys).sort
all_names.each do |name|
local_fields = local_datasets[name] || []
remote_fields = remote_datasets[name] || []
changes = diff_fields(local_fields, remote_fields)
next if changes.values.all?(&:empty?)
out["datasets"] << {
"name" => name,
"changes" => changes
}
end
out
end
|