Class: VagrantPlugins::Invade::Validator::Type::StringOrArrayValidator

Inherits:
Object
  • Object
show all
Defined in:
lib/vagrant-invade/validator/type/type_string_array.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(value, name, default, env) ⇒ StringOrArrayValidator

Returns a new instance of StringOrArrayValidator.



10
11
12
13
14
15
# File 'lib/vagrant-invade/validator/type/type_string_array.rb', line 10

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

Instance Attribute Details

#defaultObject

Returns the value of attribute default.



8
9
10
# File 'lib/vagrant-invade/validator/type/type_string_array.rb', line 8

def default
  @default
end

#envObject

Returns the value of attribute env.



8
9
10
# File 'lib/vagrant-invade/validator/type/type_string_array.rb', line 8

def env
  @env
end

#nameObject

Returns the value of attribute name.



8
9
10
# File 'lib/vagrant-invade/validator/type/type_string_array.rb', line 8

def name
  @name
end

#valueObject

Returns the value of attribute value.



8
9
10
# File 'lib/vagrant-invade/validator/type/type_string_array.rb', line 8

def value
  @value
end

Instance Method Details

#validateObject



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/vagrant-invade/validator/type/type_string_array.rb', line 17

def validate

  case @value
    when String, Array
      @env[:ui].success("\t#{name} => '#{@value}'") unless @env[:invade_validate_quiet]

    when nil?
      @env[:ui].warn("\t#{name} not set. Use Vagrant default.") unless @env[:invade_validate_quiet]
      return default
    when ''
      @env[:ui].warn("\tError: Empty string is not valid. Set '#{name}' => '#{default}'.") unless @env[:invade_validate_quiet]
      return default
    else
      @env[:ui].error("\tError: '#{@value}' is not a string or array. Set to '#{name}' to default value '#{default}'.") unless @env[:invade_validate_quiet]
      return default
  end

  @value
end