Class: Muwu::ProjectOptionValidatorValue

Inherits:
Object
  • Object
show all
Includes:
Muwu, Helper
Defined in:
lib/muwu/project_options_builder/project_option_validator_value.rb

Constant Summary

Constants included from Muwu

GEM_HOME_LIB, GEM_HOME_LIB_MUWU, VERSION

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Muwu

debug, read

Constructor Details

#initialize(key_validated, value_provided, project) ⇒ ProjectOptionValidatorValue

Returns a new instance of ProjectOptionValidatorValue.



19
20
21
22
23
24
# File 'lib/muwu/project_options_builder/project_option_validator_value.rb', line 19

def initialize(key_validated, value_provided, project)
  @key_validated = key_validated.to_s.gsub(/\W/,'_')
  @project = project
  @validation_method_name = "validate_option_#{@key_validated}"
  @value_provided = value_provided
end

Instance Attribute Details

#key_validatedObject

Returns the value of attribute key_validated.



11
12
13
# File 'lib/muwu/project_options_builder/project_option_validator_value.rb', line 11

def key_validated
  @key_validated
end

#projectObject

Returns the value of attribute project.



11
12
13
# File 'lib/muwu/project_options_builder/project_option_validator_value.rb', line 11

def project
  @project
end

#validation_method_nameObject

Returns the value of attribute validation_method_name.



11
12
13
# File 'lib/muwu/project_options_builder/project_option_validator_value.rb', line 11

def validation_method_name
  @validation_method_name
end

#value_providedObject

Returns the value of attribute value_provided.



11
12
13
# File 'lib/muwu/project_options_builder/project_option_validator_value.rb', line 11

def value_provided
  @value_provided
end

Instance Method Details

#validated_valueObject



30
31
32
33
34
35
36
37
# File 'lib/muwu/project_options_builder/project_option_validator_value.rb', line 30

def validated_value
  if private_methods.include?(@validation_method_name.to_sym)
    return method(@validation_method_name).call
  else
    @project.exceptions_add ProjectException::OptionNotValidatable.new(@key_validated)
    return nil
  end
end

#value_as_array(value) ⇒ Object



40
41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/muwu/project_options_builder/project_option_validator_value.rb', line 40

def value_as_array(value)
  result = []
  case value
  when String
    result = value.split(/,\s*/).map{ |v| value_as_string(v) }.sort
  when Array
    result = value.map{ |v| value_as_string(v) }.sort
  when FalseClass, TrueClass
    result << value
  end
  result.reject!{ |r| r == '' }
  result
end

#value_as_integer(value) ⇒ Object



55
56
57
# File 'lib/muwu/project_options_builder/project_option_validator_value.rb', line 55

def value_as_integer(value)
  value.to_i
end

#value_as_string(value) ⇒ Object



60
61
62
# File 'lib/muwu/project_options_builder/project_option_validator_value.rb', line 60

def value_as_string(value)
  value.to_s.strip.downcase
end

#value_as_string_preserving_case(value) ⇒ Object



65
66
67
# File 'lib/muwu/project_options_builder/project_option_validator_value.rb', line 65

def value_as_string_preserving_case(value)
  value.to_s.strip
end

#value_provided_as_arrayObject



70
71
72
# File 'lib/muwu/project_options_builder/project_option_validator_value.rb', line 70

def value_provided_as_array
  value_as_array(@value_provided)
end

#value_provided_as_integerObject



75
76
77
# File 'lib/muwu/project_options_builder/project_option_validator_value.rb', line 75

def value_provided_as_integer
  value_as_integer(@value_provided)
end

#value_provided_as_stringObject



80
81
82
# File 'lib/muwu/project_options_builder/project_option_validator_value.rb', line 80

def value_provided_as_string
  value_as_string(@value_provided)
end

#value_provided_as_string_preserving_caseObject



85
86
87
# File 'lib/muwu/project_options_builder/project_option_validator_value.rb', line 85

def value_provided_as_string_preserving_case
  value_as_string_preserving_case(@value_provided)
end