Sha256: cf9140be41b2993776955cd9ce56ab644b1eb9b9c44ae548f1b69825145dd414

Contents?: true

Size: 677 Bytes

Versions: 8

Compression:

Stored size: 677 Bytes

Contents

# frozen_string_literal: true

module Spree
  module Preferences
    module Persistable
      extend ActiveSupport::Concern

      included do
        include Spree::Preferences::Preferable

        if method(:serialize).parameters.include?([:key, :type]) # Rails 7.1+
          serialize :preferences, type: Hash, coder: YAML
        else
          serialize :preferences, Hash, coder: YAML
        end

        after_initialize :initialize_preference_defaults
      end

      private

      def initialize_preference_defaults
        if has_attribute?(:preferences)
          self.preferences = default_preferences.merge(preferences)
        end
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
solidus_core-4.4.2 lib/spree/preferences/persistable.rb
solidus_core-4.4.1 lib/spree/preferences/persistable.rb
solidus_core-4.4.0 lib/spree/preferences/persistable.rb
solidus_core-4.3.4 lib/spree/preferences/persistable.rb
solidus_core-4.3.3 lib/spree/preferences/persistable.rb
solidus_core-4.3.2 lib/spree/preferences/persistable.rb
solidus_core-4.3.1 lib/spree/preferences/persistable.rb
solidus_core-4.3.0 lib/spree/preferences/persistable.rb