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

Version Path
renalware-core-2.1.1 app/models/renalware/remembered_preferences.rb
renalware-core-2.1.0 app/models/renalware/remembered_preferences.rb
renalware-core-2.0.167 app/models/renalware/remembered_preferences.rb
renalware-core-2.0.166 app/models/renalware/remembered_preferences.rb
renalware-core-2.0.165 app/models/renalware/remembered_preferences.rb
renalware-core-2.0.164 app/models/renalware/remembered_preferences.rb
renalware-core-2.0.163 app/models/renalware/remembered_preferences.rb
renalware-core-2.0.162 app/models/renalware/remembered_preferences.rb
renalware-core-2.0.161 app/models/renalware/remembered_preferences.rb
renalware-core-2.0.160 app/models/renalware/remembered_preferences.rb
renalware-core-2.0.159 lib/renalware/remembered_preferences.rb
renalware-core-2.0.158 lib/renalware/remembered_preferences.rb
renalware-core-2.0.157 lib/renalware/remembered_preferences.rb
renalware-core-2.0.156 lib/renalware/remembered_preferences.rb
renalware-core-2.0.155 lib/renalware/remembered_preferences.rb
renalware-core-2.0.153 lib/renalware/remembered_preferences.rb
renalware-core-2.0.152 lib/renalware/remembered_preferences.rb
renalware-core-2.0.151 lib/renalware/remembered_preferences.rb
renalware-core-2.0.149 lib/renalware/remembered_preferences.rb
renalware-core-2.0.148 lib/renalware/remembered_preferences.rb