Sha256: eb49c97bdc8f401a0d3b57998e7b669cd948d054dacfe0e801d36d39ab300569

Contents?: true

Size: 810 Bytes

Versions: 7

Compression:

Stored size: 810 Bytes

Contents

module TrkDatatables
  class Preferences
    def initialize(holder, field)
      @holder = holder
      @field = field
    end

    # 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
    def get(key, check_value = nil)
      return unless @holder

      result = @holder.send(@field).dig :dt_preferences, self.class.name, key
      return result if check_value.nil?
      return result if check_value.call result
    end

    def set(key, value)
      return unless @holder

      h = { dt_preferences: { self.class.name => { key => value } } }
      @holder.send("#{@field}=", {}) if @holder.send(@field).nil?
      @holder.send(@field).deep_merge! h
      @holder.save!
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
trk_datatables-0.1.9 lib/trk_datatables/preferences.rb
trk_datatables-0.1.8 lib/trk_datatables/preferences.rb
trk_datatables-0.1.7 lib/trk_datatables/preferences.rb
trk_datatables-0.1.6 lib/trk_datatables/preferences.rb
trk_datatables-0.1.5 lib/trk_datatables/preferences.rb
trk_datatables-0.1.4 lib/trk_datatables/preferences.rb
trk_datatables-0.1.3 lib/trk_datatables/preferences.rb