Class: TrkDatatables::Preferences
- Inherits:
-
Object
- Object
- TrkDatatables::Preferences
- Defined in:
- lib/trk_datatables/preferences.rb
Constant Summary collapse
- KEY_IN_PREFERENCES =
"trk_datatables"
Instance Method Summary collapse
-
#get(key, check_value = nil) ⇒ Object
Get the key from holder Use check_value proc to ignore wrong format.
-
#initialize(holder, field, class_name) ⇒ Preferences
constructor
A new instance of Preferences.
- #set(key, value) ⇒ Object
Constructor Details
#initialize(holder, field, class_name) ⇒ Preferences
Returns a new instance of Preferences.
4 5 6 7 8 |
# File 'lib/trk_datatables/preferences.rb', line 4 def initialize(holder, field, class_name) @holder = holder @field = field @class_name = class_name end |
Instance Method Details
#get(key, check_value = nil) ⇒ Object
Get the key from holder Use check_value proc to ignore wrong format. This is usefull when you change format and you do not want to clear all existing values
13 14 15 16 17 18 19 20 |
# File 'lib/trk_datatables/preferences.rb', line 13 def get(key, check_value = nil) return unless @holder values = @holder.send(@field).dig KEY_IN_PREFERENCES, @class_name result = values&.fetch(key, nil) || values&.fetch(key.to_s, nil) return result if check_value.nil? result if check_value.call result end |
#set(key, value) ⇒ Object
22 23 24 25 26 27 28 29 |
# File 'lib/trk_datatables/preferences.rb', line 22 def set(key, value) return unless @holder h = {KEY_IN_PREFERENCES => {@class_name => {key.to_s => _value_for_serialization(value)}}} @holder.send(:"#{@field}=", {}) if @holder.send(@field).nil? @holder.send(@field).deep_merge! h @holder.save! end |