Class: Magick::Adapters::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/magick/adapters/base.rb

Direct Known Subclasses

ActiveRecord, Memory, Redis

Instance Method Summary collapse

Instance Method Details

#all_featuresObject

Raises:

  • (NotImplementedError)


22
23
24
# File 'lib/magick/adapters/base.rb', line 22

def all_features
  raise NotImplementedError, "#{self.class} must implement #all_features"
end

#delete(feature_name) ⇒ Object

Raises:

  • (NotImplementedError)


14
15
16
# File 'lib/magick/adapters/base.rb', line 14

def delete(feature_name)
  raise NotImplementedError, "#{self.class} must implement #delete"
end

#exists?(feature_name) ⇒ Boolean

Returns:

  • (Boolean)

Raises:

  • (NotImplementedError)


18
19
20
# File 'lib/magick/adapters/base.rb', line 18

def exists?(feature_name)
  raise NotImplementedError, "#{self.class} must implement #exists?"
end

#get(feature_name, key) ⇒ Object

Raises:

  • (NotImplementedError)


6
7
8
# File 'lib/magick/adapters/base.rb', line 6

def get(feature_name, key)
  raise NotImplementedError, "#{self.class} must implement #get"
end

#get_all_data(feature_name) ⇒ Object

Load all keys for a single feature in one call (override for efficiency)



27
28
29
# File 'lib/magick/adapters/base.rb', line 27

def get_all_data(feature_name)
  {}
end

#load_all_features_dataObject

Bulk load all features’ data in one call (override for efficiency)



32
33
34
# File 'lib/magick/adapters/base.rb', line 32

def load_all_features_data
  {}
end

#set(feature_name, key, value) ⇒ Object

Raises:

  • (NotImplementedError)


10
11
12
# File 'lib/magick/adapters/base.rb', line 10

def set(feature_name, key, value)
  raise NotImplementedError, "#{self.class} must implement #set"
end

#set_all_data(feature_name, data_hash) ⇒ Object

Bulk set multiple keys for a feature in one call. Subclasses MUST implement this — a no-op default silently drops bulk writes, which is why this used to cause hard-to-diagnose lost updates for custom adapters (audit P2-Co6).

Raises:

  • (NotImplementedError)


40
41
42
43
# File 'lib/magick/adapters/base.rb', line 40

def set_all_data(feature_name, data_hash)
  raise NotImplementedError,
        "#{self.class} must implement #set_all_data (feature=#{feature_name}, keys=#{data_hash.keys.inspect})"
end