class Errapi::Validations::Base

Public Class Methods

new(options = {}) click to toggle source
# File lib/errapi/validations.rb, line 7
def initialize options = {}
end

Public Instance Methods

actual_option_value(supplied_value, options) click to toggle source
# File lib/errapi/validations.rb, line 10
def actual_option_value supplied_value, options
  if supplied_value.respond_to? :call
    supplied_value.call options[:source]
  elsif supplied_value.respond_to? :to_sym
    unless options[:source].respond_to? supplied_value
      raise ArgumentError, "The validation source (#{options[:source].class.name}) does not respond to :#{supplied_value}."
    else
      options[:source].send supplied_value
    end
  else
    supplied_value
  end
end
callable_option_type_error(key_desc, value_desc, supplied_value) click to toggle source
# File lib/errapi/validations.rb, line 33
def callable_option_type_error key_desc, value_desc, supplied_value
  ArgumentError.new "The #{key_desc} option must be #{value_desc}, a proc, a lambda or a symbol, but a #{supplied_value.class.name} was given."
end
callable_option_value?(supplied_value) click to toggle source
# File lib/errapi/validations.rb, line 24
def callable_option_value? supplied_value
  supplied_value.respond_to?(:call) || supplied_value.respond_to?(:to_sym)
end
callable_option_value_error(key_desc, type_desc, supplied_value) click to toggle source
# File lib/errapi/validations.rb, line 37
def callable_option_value_error key_desc, type_desc, supplied_value
  ArgumentError.new "The call supplied to #{key_desc} must return #{type_desc}, but a #{supplied_value.class.name} was returned."
end
exactly_one_option?(keys, options) click to toggle source
# File lib/errapi/validations.rb, line 28
def exactly_one_option? keys, options
  found_keys = options.keys.select{ |k| keys.include? k }
  found_keys.length == 1 ? found_keys.first : false
end