Sha256: 6a5818b1ae3375f7f6156f43c242f28a4a46d91773815ed60d630220975ccb9b

Contents?: true

Size: 786 Bytes

Versions: 1

Compression:

Stored size: 786 Bytes

Contents

module Spree
  class StaticModelPreferences
    def initialize(model_class, name, preferences={})
      @name = name
      @model_class = model_class
      @preferences = preferences.dup.freeze

      validate_preferences
    end

    delegate :keys, :fetch, to: :@preferences

    def []=(name, value)
      puts "Ignoring assignment of preference #{name}"
    end

    private

    def validate_preferences
      model_preferences = @model_class.defined_preferences
      defined_preferences = @preferences.keys

      (model_preferences - defined_preferences).each do |pref|
        puts "WARNING: Missing definition for #{pref}"
      end

      (defined_preferences - model_preferences).each do |pref|
        puts "WARNING: Unknown preference #{pref}"
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
solidus_core-1.0.0.pre app/models/spree/static_model_preferences.rb