module Moneta::Defaults::ClassMethods
@api private
Public Instance Methods
features()
click to toggle source
Returns features list
@return [Array<Symbol>] list of features
# File lib/moneta/defaults.rb, line 12 def features @features ||= superclass.respond_to?(:features) ? superclass.features : [].freeze end
not_supports(*features)
click to toggle source
Declares that this adapter does not support the given feature, and adds a stub method that raises a NotImplementedError. Useful when inheriting from another adapter.
@example
class MyAdapter < OtherAdapterWithCreate include Moneta::Defaults not_supports :create end
# File lib/moneta/defaults.rb, line 39 def not_supports(*features) features.each do |feature| define_method(feature) do raise ::NotImplementedError, "#{feature} not supported" end end @features = (self.features - features).freeze end
supports(*features)
click to toggle source
Declares that this adapter supports the given feature.
@example
class MyAdapter include Moneta::Defaults supports :create def create(key, value, options = {}) # implement create! end end
# File lib/moneta/defaults.rb, line 26 def supports(*features) @features = (self.features | features).freeze end