class RunTimeSettings::Settings
Model settings holds namespaced key-value pairs. This acts as the data store for the PersistentAttributes
mixin. See RunTimeSettings::PersistentAttributes.settings for information.
Public Class Methods
add_setting_type(namespace, key, type)
click to toggle source
# File lib/run_time_settings/settings.rb, line 14 def add_setting_type(namespace, key, type) setting_types[[namespace, key]] = type end
read(namespace, key)
click to toggle source
# File lib/run_time_settings/settings.rb, line 18 def read(namespace, key) value = RunTimeSettings::Settings.find_by(namespace: namespace, key_name: key)&.db_value type_for(namespace, key).deserialize(value) if value.present? end
write(namespace, key, value)
click to toggle source
# File lib/run_time_settings/settings.rb, line 23 def write(namespace, key, value) setting = RunTimeSettings::Settings.find_or_initialize_by(namespace: namespace, key_name: key) setting.update!(db_value: type_for(namespace, key).serialize(value)) end
Private Class Methods
setting_types()
click to toggle source
# File lib/run_time_settings/settings.rb, line 34 def setting_types @setting_types ||= {} end
type_for(namespace, key)
click to toggle source
# File lib/run_time_settings/settings.rb, line 30 def type_for(namespace, key) setting_types[[namespace, key]] end