Class: OptOut::Adapters::AbstractAdapter

Inherits:
Object
  • Object
show all
Defined in:
lib/opt_out/adapters/abstract_adapter.rb

Overview

An adapter is responsible for tracking (un/re)subscriptions, and unsubscribers.

Direct Known Subclasses

ActiveRecordAdapter, MemoryAdapter, RedisAdapter

Instance Method Summary collapse

Constructor Details

#initialize(options = nil) ⇒ AbstractAdapter

Returns a new instance of AbstractAdapter.



6
7
8
# File 'lib/opt_out/adapters/abstract_adapter.rb', line 6

def initialize(options = nil)
  @options = options || {}
end

Instance Method Details

#resetObject

Private: reset internal data store for testing

Raises:

  • (NotImplementedError)


47
48
49
# File 'lib/opt_out/adapters/abstract_adapter.rb', line 47

def reset
  raise NotImplementedError.new
end

#subscribe(list_id, user_id) ⇒ Object

Public: Resubscribe ‘user_id` to `list_id`. Note that adapters should only keep track of unsubscriptions. Even if subscribe has never been called before, a user is unsubscribed only if `#unsubscribe` is called.

Returns nothing.

Raises:

  • (NotImplementedError)


23
24
25
# File 'lib/opt_out/adapters/abstract_adapter.rb', line 23

def subscribe(list_id, user_id)
  raise NotImplementedError.new
end

#subscribed?(list_id, user_id) ⇒ Boolean

Public: ‘user_id` is subscribed? to `list_id` iff it’s unsubscribed.

Returns boolean.

Returns:

  • (Boolean)


13
14
15
# File 'lib/opt_out/adapters/abstract_adapter.rb', line 13

def subscribed?(list_id, user_id)
  !unsubscribed?(list_id, user_id)
end

#unsubscribe(list_id, user_id) ⇒ Object

Public: unsubscribe ‘user_id` from `list_id`

Returns nothing.

Raises:

  • (NotImplementedError)


30
31
32
# File 'lib/opt_out/adapters/abstract_adapter.rb', line 30

def unsubscribe(list_id, user_id)
  raise NotImplementedError.new
end

#unsubscribed?(list_id, user_id) ⇒ Boolean

Public: is ‘user_id` unsubscribed from `list_id`?

Returns boolean.

Returns:

  • (Boolean)

Raises:

  • (NotImplementedError)


37
38
39
# File 'lib/opt_out/adapters/abstract_adapter.rb', line 37

def unsubscribed?(list_id, user_id)
  raise NotImplementedError.new
end

#unsubscribers(list_id) ⇒ Object

Public: returns an array of unsubscribers for ‘list_id`

Raises:

  • (NotImplementedError)


42
43
44
# File 'lib/opt_out/adapters/abstract_adapter.rb', line 42

def unsubscribers(list_id)
  raise NotImplementedError.new
end