Class: NoBrainer::Matchers::Validations::ValidateExclusionOfMatcher
Instance Method Summary
collapse
#failure_message_for_should, #failure_message_for_should_not, #on, #with_message
Constructor Details
Returns a new instance of ValidateExclusionOfMatcher.
7
8
9
|
# File 'lib/matchers/validations/exclusion_of.rb', line 7
def initialize(name)
super(name, :exclusion)
end
|
Instance Method Details
#description ⇒ Object
39
40
41
42
43
|
# File 'lib/matchers/validations/exclusion_of.rb', line 39
def description
options_desc = []
options_desc << " not allowing the ff. values: #{@not_allowed_values}" if @not_allowed_values
"#{super}#{options_desc.to_sentence}"
end
|
#matches?(actual) ⇒ Boolean
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
# File 'lib/matchers/validations/exclusion_of.rb', line 16
def matches?(actual)
return false unless result = super(actual)
if @not_allowed_values
raw_validator_not_allowed_values = @validator.options[:in]
validator_not_allowed_values = case raw_validator_not_allowed_values
when Range then raw_validator_not_allowed_values.to_a
when Proc then raw_validator_not_allowed_values.call(actual)
else raw_validator_not_allowed_values end
allowed_values = @not_allowed_values - validator_not_allowed_values
if allowed_values.empty?
@positive_result_message = @positive_result_message += ' not allowing all values mentioned'
else
@negative_result_message = @negative_result_message += " allowing the following the ff. values: #{allowed_values.inspect}"
result = false
end
end
result
end
|
#to_not_allow(*values) ⇒ Object
11
12
13
14
|
# File 'lib/matchers/validations/exclusion_of.rb', line 11
def to_not_allow(*values)
@not_allowed_values = [values].flatten
self
end
|