Class: Plutonium::Wizard::Store::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/plutonium/wizard/store/base.rb

Overview

Storage port for wizard sessions. Adapters exchange Plutonium::Wizard::State value objects and are keyed by the derived InstanceKey digest.

Direct Known Subclasses

ActiveRecord, Memory

Instance Method Summary collapse

Instance Method Details

#clear(instance_key) ⇒ Object

Delete the row.

Parameters:

  • instance_key (String)

Raises:

  • (NotImplementedError)


30
# File 'lib/plutonium/wizard/store/base.rb', line 30

def clear(instance_key) = raise NotImplementedError

#complete(instance_key) ⇒ Object

Mark completed: status "completed", stamp completed_at, null data/persisted.

Parameters:

  • instance_key (String)

Raises:

  • (NotImplementedError)


25
# File 'lib/plutonium/wizard/store/base.rb', line 25

def complete(instance_key) = raise NotImplementedError

#completed?(instance_key:) ⇒ Boolean

One-time completion check (§4.3 / §9): does a completed row exist at this instance_key? Identity is the digest, so the caller recomputes the wizard's instance_key (concurrency_key + folded tenant) and asks here.

Parameters:

  • instance_key (String)

Returns:

  • (Boolean)

Raises:

  • (NotImplementedError)


38
# File 'lib/plutonium/wizard/store/base.rb', line 38

def completed?(instance_key:) = raise NotImplementedError

#read(instance_key) ⇒ State?

Parameters:

  • instance_key (String)

Returns:

Raises:

  • (NotImplementedError)


11
# File 'lib/plutonium/wizard/store/base.rb', line 11

def read(instance_key) = raise NotImplementedError

#write(instance_key, state, cleanup_after:) ⇒ State

Upsert by instance_key. Stamps +expires_at = now + cleanup_after+ (nil cleanup_after → null expiry).

Parameters:

  • instance_key (String)
  • state (State)
  • cleanup_after (ActiveSupport::Duration, nil)

Returns:

Raises:

  • (NotImplementedError)


20
# File 'lib/plutonium/wizard/store/base.rb', line 20

def write(instance_key, state, cleanup_after:) = raise NotImplementedError