class Moneta::Proxy
Proxy
base class @api public
Attributes
Public Class Methods
@api private
# File lib/moneta/proxy.rb, line 128 def features_mask @features_mask ||= [].freeze end
@param [Moneta store] adapter underlying adapter @param [Hash] options
# File lib/moneta/proxy.rb, line 12 def initialize(adapter, options = {}) @adapter = adapter configure(**options) end
(see Defaults::ClassMethods#not_supports
)
# File lib/moneta/proxy.rb, line 133 def not_supports(*features) @features_mask = (features_mask | features).freeze super end
Public Instance Methods
Clear all keys in this store
@param [Hash] options @return [void] @api public
# File lib/moneta/proxy.rb, line 95 def clear(options = {}) adapter.clear(options) self end
(see Defaults#close
)
# File lib/moneta/proxy.rb, line 43 def close adapter.close end
Overrides the default implementation of the config method to:
-
pass the adapter’s config, if this proxy has no configuration of its own
-
return a merged configuration, allowing the proxy have precedence over the adapter
Moneta::Config#config
# File lib/moneta/proxy.rb, line 145 def config unless @proxy_config config = super adapter_config = adapter.config if adapter.class.include?(Config) @proxy_config = if config && adapter_config adapter_members = adapter_config.members - config.members members = config.members + adapter_members struct = Struct.new(*members) values = config.values + adapter_config.to_h.values_at(*adapter_members) struct.new(*values) else config || adapter_config end end @proxy_config end
(see Defaults#create
)
# File lib/moneta/proxy.rb, line 38 def create(key, value, options = {}) adapter.create(key, value, options) end
Delete the key from the store and return the current value
@param [Object] key @return [Object] current value @param [Hash] options @option options [Boolean] :raw Raw access without value transformation (See {Transformer}) @option options [String] :prefix Prefix key (See {Transformer}) @option options Other options as defined by the adapters or middleware @api public
# File lib/moneta/proxy.rb, line 86 def delete(key, options = {}) adapter.delete(key, options) end
(see Defaults#each_key
)
# File lib/moneta/proxy.rb, line 23 def each_key(&block) raise NotImplementedError, "each_key is not supported on this proxy" \ unless supports? :each_key return enum_for(:each_key) { adapter.each_key.size } unless block_given? adapter.each_key(&block) self end
(see Defaults#features
)
# File lib/moneta/proxy.rb, line 122 def features @features ||= (self.class.features | adapter.features - self.class.features_mask).freeze end
(see Defaults#fetch_values
)
# File lib/moneta/proxy.rb, line 106 def fetch_values(*keys, **options, &defaults) adapter.fetch_values(*keys, **options, &defaults) end
(see Defaults#increment
)
# File lib/moneta/proxy.rb, line 33 def increment(key, amount = 1, options = {}) adapter.increment(key, amount, options) end
(see Defaults#key?
)
# File lib/moneta/proxy.rb, line 18 def key?(key, options = {}) adapter.key?(key, options) end
Fetch value with key. Return nil if the key doesn’t exist
@param [Object] key @param [Hash] options @option options [Integer] :expires Update expiration time (See {Expires}) @option options [Boolean] :raw Raw access without value transformation (See {Transformer}) @option options [String] :prefix Prefix key (See {Transformer}) @option options [Boolean] :sync Synchronized load ({Cache} reloads from adapter, {Adapters::Daybreak} syncs with file) @option options Other options as defined by the adapters or middleware @return [Object] value @api public
# File lib/moneta/proxy.rb, line 58 def load(key, options = {}) adapter.load(key, options) end
(see Defaults#merge!
)
# File lib/moneta/proxy.rb, line 116 def merge!(pairs, options = {}, &block) adapter.merge!(pairs, options, &block) self end
(see Defaults#slice
)
# File lib/moneta/proxy.rb, line 111 def slice(*keys, **options) adapter.slice(*keys, **options) end
Store value with key
@param [Object] key @param [Object] value @param [Hash] options @option options [Integer] :expires Set expiration time (See {Expires}) @option options [Boolean] :raw Raw access without value transformation (See {Transformer}) @option options [String] :prefix Prefix key (See {Transformer}) @option options Other options as defined by the adapters or middleware @return value @api public
# File lib/moneta/proxy.rb, line 73 def store(key, value, options = {}) adapter.store(key, value, options) end
(see Defaults#values_at
)
# File lib/moneta/proxy.rb, line 101 def values_at(*keys, **options) adapter.values_at(*keys, **options) end