Sha256: 6d1cf8be3058464c45bcda96cee7b3b65d1b4f9c627edf6452a9702164d262b4

Contents?: true

Size: 906 Bytes

Versions: 68

Compression:

Stored size: 906 Bytes

Contents

require 'r10k/settings/definition'

module R10K
  module Settings
    class EnumDefinition < R10K::Settings::Definition

      def validate
        if @value
          if @multi && @value.respond_to?(:select)
            invalid = @value.select { |val| !@enum.include?(val) }

            if invalid.size > 0
              raise ArgumentError, _("Setting %{name} may only contain %{enums}; the disallowed values %{invalid} were present") % {name: @name, enums: @enum.inspect, invalid: invalid.inspect}
            end
          else
            if !@enum.include?(@value)
              raise ArgumentError, _("Setting %{name} should be one of %{enums}, not '%{value}'") % {name: @name, enums: @enum.inspect, value: @value}
            end
          end
        end
      end

      private

      def allowed_initialize_opts
        super.merge({:enum => true, :multi => true})
      end
    end
  end
end

Version data entries

68 entries across 68 versions & 2 rubygems

Version Path
r10k-5.0.0 lib/r10k/settings/enum_definition.rb
r10k-4.1.0 lib/r10k/settings/enum_definition.rb
r10k-4.0.2 lib/r10k/settings/enum_definition.rb
r10k-4.0.1 lib/r10k/settings/enum_definition.rb
r10k-4.0.0 lib/r10k/settings/enum_definition.rb
r10k-4.0.0.pre lib/r10k/settings/enum_definition.rb
r10k-3.16.0 lib/r10k/settings/enum_definition.rb
r10k-3.15.4 lib/r10k/settings/enum_definition.rb
r10k-3.15.3 lib/r10k/settings/enum_definition.rb
r10k-3.15.2 lib/r10k/settings/enum_definition.rb
r10k-3.15.1 lib/r10k/settings/enum_definition.rb
r10k-3.15.0 lib/r10k/settings/enum_definition.rb
akerl-r10k-3.14.2.1 lib/r10k/settings/enum_definition.rb
r10k-3.14.2 lib/r10k/settings/enum_definition.rb
r10k-3.14.1 lib/r10k/settings/enum_definition.rb
r10k-3.14.0 lib/r10k/settings/enum_definition.rb
r10k-3.13.0 lib/r10k/settings/enum_definition.rb
r10k-3.12.1 lib/r10k/settings/enum_definition.rb
r10k-3.12.0 lib/r10k/settings/enum_definition.rb
r10k-3.11.0 lib/r10k/settings/enum_definition.rb