Class: Toggly::SnapshotProviders::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/toggly/snapshot_providers/base.rb

Overview

Base class for snapshot providers.

Snapshot providers persist feature definitions for offline access and faster startup.

Direct Known Subclasses

File, Memory

Instance Method Summary collapse

Instance Method Details

#clearObject

Clear the snapshot

Raises:

  • (NotImplementedError)


30
31
32
# File 'lib/toggly/snapshot_providers/base.rb', line 30

def clear
  raise NotImplementedError, "Subclass must implement #clear"
end

#exists?Boolean

Check if a snapshot exists

Returns:

  • (Boolean)


37
38
39
40
41
# File 'lib/toggly/snapshot_providers/base.rb', line 37

def exists?
  !load.nil?
rescue StandardError
  false
end

#loadHash?

Load definitions snapshot

Returns:

  • (Hash, nil)

    Hash with :definitions and :metadata, or nil if not found

Raises:

  • (NotImplementedError)


23
24
25
# File 'lib/toggly/snapshot_providers/base.rb', line 23

def load
  raise NotImplementedError, "Subclass must implement #load"
end

#save(definitions, metadata = {}) ⇒ Object

Save definitions snapshot

Parameters:

  • definitions (Hash<String, FeatureDefinition>)

    Definitions to save

  • metadata (Hash) (defaults to: {})

    Optional metadata (e.g., version, timestamp)

Raises:

  • (NotImplementedError)


15
16
17
# File 'lib/toggly/snapshot_providers/base.rb', line 15

def save(definitions,  = {})
  raise NotImplementedError, "Subclass must implement #save"
end