Class: Errapi::Validations::Base
- Inherits:
-
Object
- Object
- Errapi::Validations::Base
show all
- Defined in:
- lib/errapi/validations.rb
Instance Method Summary
collapse
Constructor Details
#initialize(options = {}) ⇒ Base
Returns a new instance of Base.
5
6
|
# File 'lib/errapi/validations.rb', line 5
def initialize options = {}
end
|
Instance Method Details
#actual_option_value(supplied_value, options) ⇒ Object
8
9
10
11
12
13
14
15
16
17
18
19
20
|
# File 'lib/errapi/validations.rb', line 8
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) ⇒ Object
31
32
33
|
# File 'lib/errapi/validations.rb', line 31
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) ⇒ Boolean
22
23
24
|
# File 'lib/errapi/validations.rb', line 22
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) ⇒ Object
35
36
37
|
# File 'lib/errapi/validations.rb', line 35
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) ⇒ Boolean
26
27
28
29
|
# File 'lib/errapi/validations.rb', line 26
def exactly_one_option? keys, options
found_keys = options.keys.select{ |k| keys.include? k }
found_keys.length == 1 ? found_keys.first : false
end
|