Sha256: 73182ad3bca53f45b8f33c509cae8100a7f8376be617998fdaf1d5d4961e6c99

Contents?: true

Size: 1.11 KB

Versions: 7

Compression:

Stored size: 1.11 KB

Contents

module VagrantPlugins
  module Invade
    module Validator
      module Type

        class IntegerValidator

          attr_accessor :value, :name, :default, :env

          def initialize(value, name, default, env)
            @value = value
            @name = name
            @default = default
            @env = env
          end

          public

          def validate

            if @value.is_a?(Integer) || is_number(@value)
              @env[:ui].success("\t#{@name} => #{@value}") unless @env[:invade_validate_quiet]
            elsif @value === nil
              @env[:ui].warn("\t#{@name} not set. Use Vagrant default.") unless @env[:invade_validate_quiet]

              return default
            else
              @env[:ui].error("\tError: '#{@value}' is not an integer. Set '#{@name}' to default value #{default}.") unless @env[:invade_validate_quiet]

              return default
            end

            @value
          end

          private

          def is_number(value)
            value.to_f.to_s == value.to_s || value.to_i.to_s == value.to_s
          end
        end

      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
vagrant-invade-0.8.0 lib/vagrant-invade/validator/type/type_integer.rb
vagrant-invade-0.7.0 lib/vagrant-invade/validator/type/type_integer.rb
vagrant-invade-0.6.4 lib/vagrant-invade/validator/type/type_integer.rb
vagrant-invade-0.6.3 lib/vagrant-invade/validator/type/type_integer.rb
vagrant-invade-0.6.2 lib/vagrant-invade/validator/type/type_integer.rb
vagrant-invade-0.6.1 lib/vagrant-invade/validator/type/type_integer.rb
vagrant-invade-0.6.0 lib/vagrant-invade/validator/type/type_integer.rb