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