class Convoy::Validator

Attributes

parser[R]

Public Class Methods

for(parser) click to toggle source
# File lib/convoy/validator.rb, line 4
def for(parser)
    self.new(parser)
end
new(parser) click to toggle source
# File lib/convoy/validator.rb, line 11
def initialize(parser)
    @parser = parser
end

Public Instance Methods

validate(options, validations) click to toggle source
# File lib/convoy/validator.rb, line 15
def validate(options, validations)
    validations.each do |option, validations_array|
        if option_exists?(option)
            validate_option(option, options, validations_array)
        else
            raise Convoy::ClientError.new("Unable to create validation for '#{option}' as no such option was defined, maybe you misspelled it")
        end
    end
    options
end

Private Instance Methods

invalid?(option, options, validation_data) click to toggle source
# File lib/convoy/validator.rb, line 41
def invalid?(option, options, validation_data)
    options[option] && !validation_data[:block].call(options[option])
end
option_exists?(option) click to toggle source
# File lib/convoy/validator.rb, line 28
def option_exists?(option)
    parser.specs.keys.include?(option)
end
validate_option(option, options, validations_array) click to toggle source
# File lib/convoy/validator.rb, line 32
def validate_option(option, options, validations_array)
    validations_array.each do |validation_data|
        if invalid?(option, options, validation_data)
            raise Convoy::UserError.new("#{option} #{validation_data[:desc]}")
        end
        #parser.die(option, validation_data[:desc]) if invalid?(option, options, validation_data)
    end
end