Class: Engram::Adapters::InMemoryProcessedTurns

Inherits:
Object
  • Object
show all
Includes:
Ports::ProcessedTurns
Defined in:
lib/engram/adapters/in_memory_processed_turns.rb

Overview

In-process ProcessedTurns. The zero-config default; guards against double-processing within a single process. For cross-process/retry durability in Rails, use a persistent adapter such as Rails::CacheProcessedTurns.

Instance Method Summary collapse

Constructor Details

#initializeInMemoryProcessedTurns

Returns a new instance of InMemoryProcessedTurns.



11
12
13
# File 'lib/engram/adapters/in_memory_processed_turns.rb', line 11

def initialize
  @keys = Set.new
end

Instance Method Details

#clearObject



24
25
26
# File 'lib/engram/adapters/in_memory_processed_turns.rb', line 24

def clear
  @keys.clear
end

#record(key) ⇒ Object



19
20
21
22
# File 'lib/engram/adapters/in_memory_processed_turns.rb', line 19

def record(key)
  @keys << key
  key
end

#seen?(key) ⇒ Boolean

Returns:

  • (Boolean)


15
16
17
# File 'lib/engram/adapters/in_memory_processed_turns.rb', line 15

def seen?(key)
  @keys.include?(key)
end