class Spree::Preferences::PreferenceDifferentiator
Attributes
config_class[R]
Public Class Methods
new(config_class)
click to toggle source
# File lib/spree/preferences/preference_differentiator.rb, line 8 def initialize(config_class) @config_class = config_class end
Public Instance Methods
call(from:, to:)
click to toggle source
# File lib/spree/preferences/preference_differentiator.rb, line 12 def call(from:, to:) preferences_from = config_class.new.load_defaults(from) preferences_to = config_class.new.load_defaults(to) preferences_from.reduce({}) do |changes, (pref_key, value_from)| value_to = preferences_to[pref_key] if value_from == value_to changes else changes.merge( pref_key => { from: value_from, to: value_to } ) end end end