Class: Smith::PersistenceAdapters::RedisVersionedWrite

Inherits:
Object
  • Object
show all
Extended by:
Dry::Initializer
Defined in:
lib/smith/persistence_adapters/redis_versioned_write.rb

Instance Method Summary collapse

Instance Method Details

#callObject



17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/smith/persistence_adapters/redis_versioned_write.rb', line 17

def call
  result = client.watch(storage_key) do
    current = client.get(storage_key)
    validate_current!(current)
    enqueue_write
  end
  return result unless result.nil?

  raise PersistenceVersionConflict.new(
    key: key,
    expected: expected_version,
    actual: :concurrent
  )
end