Module: Flog::PayloadValueShuntable

Included in:
ParamsFormattable, SqlFormattable
Defined in:
lib/flog/payload_value_shuntable.rb

Instance Method Summary collapse

Instance Method Details

#shunt_payload_value(payload, key, temp_value, &block) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/flog/payload_value_shuntable.rb', line 3

def shunt_payload_value(payload, key, temp_value, &block)
  return unless block

  key_exists = payload.key?(key)
  base_value = payload[key]
  begin
    payload[key] = temp_value
    block.call
  ensure
    if key_exists
      payload[key] = base_value
    else
      payload.delete(key)
    end
  end
end