Module: Moneta::Defaults::ClassMethods Private
- Defined in:
- lib/moneta/mixins.rb
This module is part of a private API. You should avoid using this module if possible, as it may be removed or be changed in the future.
Instance Method Summary collapse
-
#features ⇒ Array<Symbol>
private
Returns features list.
-
#not_supports(*features) ⇒ Object
private
Declares that this adapter does not support the given feature, and adds a stub method that raises a NotImplementedError.
-
#supports(*features) ⇒ Object
private
Declares that this adapter supports the given feature.
Instance Method Details
#features ⇒ Array<Symbol>
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Returns features list
62 63 64 |
# File 'lib/moneta/mixins.rb', line 62 def features @features ||= superclass.respond_to?(:features) ? superclass.features : [].freeze end |
#not_supports(*features) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
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.
89 90 91 92 93 94 95 96 97 |
# File 'lib/moneta/mixins.rb', line 89 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) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Declares that this adapter supports the given feature.
76 77 78 |
# File 'lib/moneta/mixins.rb', line 76 def supports(*features) @features = (self.features | features).freeze end |