Class: EasyInstaller::Validator

Inherits:
Object
  • Object
show all
Defined in:
lib/easy_installer/validator.rb

Overview

Singleton Class which handles input validation

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(config) ⇒ Validator

Returns a new instance of Validator.



33
34
35
# File 'lib/easy_installer/validator.rb', line 33

def initialize(config)
	@config = config
end

Instance Attribute Details

#inputs_errorsObject

Returns the value of attribute inputs_errors.



32
33
34
# File 'lib/easy_installer/validator.rb', line 32

def inputs_errors
  @inputs_errors
end

Instance Method Details

#add_validating_function(input, input_ready, code) ⇒ Object

Manualy add validating function to class

Attributes

  • input - Array of String : list of input names which will be validated by function
  • input_ready - Array of String: list of input names which have to be ready to run function
  • &block - Block of code : validating code

Example

add_validating_function(['path'],['path','host']) do #some code true end



58
59
60
61
# File 'lib/easy_installer/validator.rb', line 58

def add_validating_function(input, input_ready, code)
	@checking_functions = Array.new unless @checking_functions
	@checking_functions << {:input => input, :input_ready=>input_ready, :code => code }
end

#check(inputs) ⇒ Object

Eval each validating functions and returns validated user_input



64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
# File 'lib/easy_installer/validator.rb', line 64

def check(inputs)
	lang = @config["lang"]
	require "easy_installer/modules/#{lang}/validate_helper"
	require "easy_installer/methods/#{@method}/install_helper" if @method
		require "easy_installer/methods/#{@method}/validate_helper" if @method
	# runner = ValidatorRunner.new
	# runner.inputs = inputs
	# runner.extend(ModuleValidateHelper)
	# runner.extend(InstallHelper) if @method
	# runner.extend(MethodValidateHelper) if @method
	
	@inputs_errors = inputs.clone
	@inputs_errors.each{|key,val| @inputs_errors[key]=nil}
	
	@checking_functions.each do |element|
		begin
			return false unless (element['code'].call)
		rescue Exception => e
			element['input'].each do |key, val|
				@inputs_errors[key] = e.message
			end
			return false
		end
	end
	return true
end

#clear_checking_functionsObject

checks is inputs valid def valid? ifcheck_evaled end Removes all validating functions



95
96
97
# File 'lib/easy_installer/validator.rb', line 95

def clear_checking_functions
	@checking_functions = Array.new
end

#import_from_config_by_method(method) ⇒ Object

Automaticaly imports validation function from config by method

Attributes

  • method - String : name of method


40
41
42
43
44
45
46
# File 'lib/easy_installer/validator.rb', line 40

def import_from_config_by_method(method)
	@method = method
	sandbox = Sandbox.new @config.validating_code(method)
	sandbox.modules << ValidatorHelper
	sandbox.eval
	@checking_functions = sandbox.returned_raw
end