Sha256: 022ca15c5dc54be93984e71f15be53e645d17a4abcfa0ff702b028b1c16d90a4

Contents?: true

Size: 796 Bytes

Versions: 61

Compression:

Stored size: 796 Bytes

Contents

module Concerns
  module Addressable
    class Config
      attr_reader :fields, :default

      def initialize
        @fields = []
        @default = nil
      end

      def update(categories, default: nil)
        unless categories.respond_to?(:each) && categories.any?
          raise 'Please provide an array with address categories'
        end

        @fields = categories.map(&:to_sym).uniq
        @default = @fields.first

        if default
          unless @fields.include?(default.to_sym)
            raise "You can't make '#{default.to_s}' the default address category because it's not in the list of categories"
          end

          @default = default.to_sym
        end
      end

      def allowed?(field)
        @fields.include?(field.to_sym)
      end
    end
  end
end

Version data entries

61 entries across 61 versions & 1 rubygems

Version Path
udongo-7.9.0 app/models/concerns/addressable/config.rb
udongo-7.8.1 app/models/concerns/addressable/config.rb
udongo-7.8.0 app/models/concerns/addressable/config.rb
udongo-7.7.2 app/models/concerns/addressable/config.rb
udongo-7.7.1 app/models/concerns/addressable/config.rb
udongo-7.7.0 app/models/concerns/addressable/config.rb
udongo-7.6.2 app/models/concerns/addressable/config.rb
udongo-7.6.1 app/models/concerns/addressable/config.rb
udongo-7.6.0 app/models/concerns/addressable/config.rb
udongo-7.5.1 app/models/concerns/addressable/config.rb
udongo-7.5.0 app/models/concerns/addressable/config.rb
udongo-7.4.2 app/models/concerns/addressable/config.rb
udongo-7.4.1 app/models/concerns/addressable/config.rb
udongo-7.4.0 app/models/concerns/addressable/config.rb
udongo-7.3.5 app/models/concerns/addressable/config.rb
udongo-7.3.4 app/models/concerns/addressable/config.rb
udongo-7.3.3 app/models/concerns/addressable/config.rb
udongo-7.3.2 app/models/concerns/addressable/config.rb
udongo-7.3.1 app/models/concerns/addressable/config.rb
udongo-7.2.1 app/models/concerns/addressable/config.rb