module Flog::PayloadValueShuntable

Public Instance Methods

shunt_payload_value(payload, key, temp_value, &block) click to toggle source
# File lib/flog/payload_value_shuntable.rb, line 4
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