11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
# File 'lib/table_sync/receiving/handler.rb', line 11
def call
configs.each do |config|
next unless config.allow_event?(event)
data = processed_data(config)
next if data.empty?
version_key = config.version_key(data:)
data.each { |row| row[version_key] = version }
target_keys = config.target_keys(data:)
validate_data(data, target_keys:)
data.sort_by! { |row| row.values_at(*target_keys).map { |value| sort_key(value) } }
params = { data:, target_keys:, version_key: }
if event == :update
params[:default_values] = config.default_values(data:)
end
config.wrap_receiving(event:, **params) do
perform(config, params)
end
end
end
|