class AeEasy::Qa::ValidateRules
Attributes
data[R]
errored_item[RW]
errors[R]
rules[R]
Public Class Methods
new(data, errors, rules)
click to toggle source
# File lib/ae_easy/qa/validate_rules.rb, line 9 def initialize(data, errors, rules) @data = data @errors = errors @rules = rules end
Public Instance Methods
run()
click to toggle source
# File lib/ae_easy/qa/validate_rules.rb, line 15 def run puts "Validating Rules" handle_rules end
Private Instance Methods
check_for_required_failure(data_hash, field_to_validate)
click to toggle source
# File lib/ae_easy/qa/validate_rules.rb, line 63 def check_for_required_failure(data_hash, field_to_validate) if fails_required_check?(data_hash, field_to_validate) add_errored_item(data_hash, field_to_validate, 'required') false else true end end
fails_required_check?(data_hash, field_to_validate)
click to toggle source
# File lib/ae_easy/qa/validate_rules.rb, line 72 def fails_required_check?(data_hash, field_to_validate) data_hash[field_to_validate].nil? || (data_hash[field_to_validate].class == String && data_hash[field_to_validate].empty?) end
handle_rules()
click to toggle source
# File lib/ae_easy/qa/validate_rules.rb, line 22 def handle_rules data.each do |data_hash| reset_errored_item rules.each{|field_to_validate, options| if passes_required_check?(options, data_hash, field_to_validate) options.each{|validation, value| case validation when 'type' ValidateType.new(data_hash, field_to_validate, value, rules, errored_item).run when 'value' ValidateValue.new(data_hash, field_to_validate, value, errored_item).run when 'length' validate_length(data_hash, field_to_validate, value) when /required|threshold|if/ nil else unknown_validation_error(validation) if validation !~ /format/ end } end } errors[:errored_items].push(errored_item) if errored_item && !errored_item[:failures].empty? end end
passes_required_check?(options, data_hash, field_to_validate)
click to toggle source
# File lib/ae_easy/qa/validate_rules.rb, line 47 def passes_required_check?(options, data_hash, field_to_validate) if options['required'] == true if options['if'] if pass_if?(options['if'], data_hash) check_for_required_failure(data_hash, field_to_validate) else false end else check_for_required_failure(data_hash, field_to_validate) end else false end end
reset_errored_item()
click to toggle source
# File lib/ae_easy/qa/validate_rules.rb, line 80 def reset_errored_item self.errored_item = { failures: {} } end
unknown_validation_error(validation)
click to toggle source
# File lib/ae_easy/qa/validate_rules.rb, line 84 def unknown_validation_error(validation) raise StandardError.new("The validation '#{validation}' is unknown.") end
validate_length(data_hash, field_to_validate, length)
click to toggle source
# File lib/ae_easy/qa/validate_rules.rb, line 76 def validate_length(data_hash, field_to_validate, length) add_errored_item(data_hash, field_to_validate, 'length') if data_hash[field_to_validate].to_s.length != length end