Sha256: c77973b7cbd29d633c3ce22d1a12e1fe74ab8b4b5b866e4c2d833bf7b0c1aeec
Contents?: true
Size: 894 Bytes
Versions: 114
Compression:
Stored size: 894 Bytes
Contents
# frozen_string_literal: true module Renalware class RememberedPreferences def initialize(session) @session = session end def persist(model) return unless model self.class::ATTRIBUTES_TO_REMEMBER.each do |attribute| remembered_attributes[attribute] = model.public_send(attribute) end session[self.class::SESSION_KEY] = remembered_attributes end def apply_to(model) return unless model self.class::ATTRIBUTES_TO_REMEMBER.each do |attribute| unless model.public_send(:"#{attribute}?") model.public_send(:"#{attribute}=", remembered_attributes[attribute]) end end end protected attr_accessor :session def remembered_attributes @remembered_attributes ||= begin session.fetch(self.class::SESSION_KEY, {}).with_indifferent_access end end end end
Version data entries
114 entries across 114 versions & 1 rubygems