# class Bundler::Settings::Validator::Rule

### Attributes

description[R]

### Public Class Methods

new(keys, description, &validate) click to toggle source

    # File lib/bundler/settings/validator.rb, line 9
    def initialize(keys, description, &validate)
      @keys = keys
      @description = description
      @validate = validate
    end

### Public Instance Methods

fail!(key, value, *reasons) click to toggle source

    # File lib/bundler/settings/validator.rb, line 19
    def fail!(key, value, *reasons)
      reasons.unshift @description
      raise InvalidOption, "Setting `#{key}` to #{value.inspect} failed:\n#{reasons.map {|r| " - #{r}" }.join("\n")}"
    end

k(key) click to toggle source

    # File lib/bundler/settings/validator.rb, line 36
    def k(key)
      Bundler.settings.key_for(key)
    end

set(settings, key, value, *reasons) click to toggle source

    # File lib/bundler/settings/validator.rb, line 24
    def set(settings, key, value, *reasons)
      hash_key = k(key)
      return if settings[hash_key] == value
      reasons.unshift @description
      Bundler.ui.info "Setting `#{key}` to #{value.inspect}, since #{reasons.join(", ")}"
      if value.nil?
        settings.delete(hash_key)
      else
        settings[hash_key] = value
      end
    end

validate!(key, value, settings) click to toggle source

    # File lib/bundler/settings/validator.rb, line 15
    def validate!(key, value, settings)
      instance_exec(key, value, settings, &@validate)
    end