Class: Classifier::Storage::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/classifier/storage/base.rb

Overview

Abstract base class for storage backends. Implement this protocol to create custom storage (Redis, PostgreSQL, etc.)

Example:

class RedisStorage < Classifier::Storage::Base
def initialize(redis:, key:)
  @redis, @key = redis, key
end

def write(data) = @redis.set(@key, data)
def read = @redis.get(@key)
def delete = @redis.del(@key)
def exists? = @redis.exists?(@key)
end

Direct Known Subclasses

File, Memory

Instance Method Summary collapse

Instance Method Details

#deleteObject

Delete classifier data

RBS:

  • () -> void

Raises:

  • (NotImplementedError)


39
40
41
# File 'lib/classifier/storage/base.rb', line 39

def delete
  raise NotImplementedError, "#{self.class}#delete must be implemented"
end

#exists?Boolean

Check if data exists

RBS:

  • () -> bool

Returns:

  • (Boolean)

Raises:

  • (NotImplementedError)


45
46
47
# File 'lib/classifier/storage/base.rb', line 45

def exists?
  raise NotImplementedError, "#{self.class}#exists? must be implemented"
end

#readObject

Load classifier data

RBS:

  • () -> String?

Raises:

  • (NotImplementedError)


33
34
35
# File 'lib/classifier/storage/base.rb', line 33

def read
  raise NotImplementedError, "#{self.class}#read must be implemented"
end

#write(data) ⇒ Object

Save classifier data

RBS:

  • (String) -> void

Raises:

  • (NotImplementedError)


27
28
29
# File 'lib/classifier/storage/base.rb', line 27

def write(data)
  raise NotImplementedError, "#{self.class}#write must be implemented"
end