Class: Plasma::Storage::Variable
- Inherits:
-
ApplicationRecord
- Object
- ActiveRecord::Base
- ApplicationRecord
- Plasma::Storage::Variable
- Defined in:
- lib/plasma/storage/variable.rb
Overview
Model for storing key-value pairs with automatic JSON parsing
Class Attribute Summary collapse
-
.default_value ⇒ Object
Returns the value of attribute default_value.
Class Method Summary collapse
- .default(value) ⇒ Object
- .get ⇒ Object
- .inherited(subclass) ⇒ Object
- .key ⇒ Object
- .set(value) ⇒ Object
Class Attribute Details
.default_value ⇒ Object
Returns the value of attribute default_value.
25 26 27 |
# File 'lib/plasma/storage/variable.rb', line 25 def default_value @default_value end |
Class Method Details
.default(value) ⇒ Object
47 48 49 |
# File 'lib/plasma/storage/variable.rb', line 47 def default(value) @default_value = value end |
.get ⇒ Object
43 44 45 |
# File 'lib/plasma/storage/variable.rb', line 43 def get find_by(key: key)&.value || default_value end |
.inherited(subclass) ⇒ Object
27 28 29 30 31 |
# File 'lib/plasma/storage/variable.rb', line 27 def inherited(subclass) super const_name = subclass.to_s.split("::").last Plasma.const_set(const_name, subclass) unless Plasma.const_defined?(const_name) end |
.key ⇒ Object
33 34 35 |
# File 'lib/plasma/storage/variable.rb', line 33 def key name.demodulize.underscore end |
.set(value) ⇒ Object
37 38 39 40 41 |
# File 'lib/plasma/storage/variable.rb', line 37 def set(value) raise "Failed to set value for #{key}" unless create_or_find_by(key: key).update(value: value) value end |