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

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

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

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

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