Class: OptOut::Adapters::MemoryAdapter

Inherits:
AbstractAdapter show all
Defined in:
lib/opt_out/adapters/memory_adapter.rb

Overview

Adapter that stores persists data in memory in a hash.

Options

:store - optional Hash instance to store unsubscriptions

Instance Method Summary collapse

Methods inherited from AbstractAdapter

#initialize, #subscribed?

Constructor Details

This class inherits a constructor from OptOut::Adapters::AbstractAdapter

Instance Method Details

#resetObject



29
30
31
# File 'lib/opt_out/adapters/memory_adapter.rb', line 29

def reset
  store.clear
end

#subscribe(list_id, user_id) ⇒ Object

Subscribe ‘user_id` to `list_id`. Returns nothing.



11
12
13
# File 'lib/opt_out/adapters/memory_adapter.rb', line 11

def subscribe(list_id, user_id)
  store.fetch(list_id, {}).delete(user_id) and return
end

#unsubscribe(list_id, user_id) ⇒ Object



15
16
17
18
19
# File 'lib/opt_out/adapters/memory_adapter.rb', line 15

def unsubscribe(list_id, user_id)
  store[list_id] ||= Set.new
  store[list_id] << user_id
  nil
end

#unsubscribed?(list_id, user_id) ⇒ Boolean

Returns:

  • (Boolean)


21
22
23
# File 'lib/opt_out/adapters/memory_adapter.rb', line 21

def unsubscribed?(list_id, user_id)
  (store[list_id] || []).include?(user_id)
end

#unsubscribers(list_id) ⇒ Object



25
26
27
# File 'lib/opt_out/adapters/memory_adapter.rb', line 25

def unsubscribers(list_id)
  store[list_id].to_a
end