Class: MiniDefender::Rules::RequiredIf
Class Method Summary
collapse
Instance Method Summary
collapse
Methods inherited from Required
#message, #passes?
#active?, available?, #bails?, #coerce, #default_value, #defaults?, #error_message, #excluded?, #force_coerce?, #message, #passes?, #priority, #stops?, #with_message
Constructor Details
#initialize(target, value) ⇒ RequiredIf
Returns a new instance of RequiredIf.
6
7
8
9
10
11
12
13
|
# File 'lib/mini_defender/rules/required_if.rb', line 6
def initialize(target, value)
unless target.is_a?(String)
raise ArgumentError, 'Target must be a string'
end
@target = target
@value = value
end
|
Class Method Details
.make(args) ⇒ Object
19
20
21
22
23
24
25
|
# File 'lib/mini_defender/rules/required_if.rb', line 19
def self.make(args)
unless args.length == 2
raise ArgumentError, 'Target and expected value are required.'
end
self.new(args[0], args[1])
end
|
.signature ⇒ Object
15
16
17
|
# File 'lib/mini_defender/rules/required_if.rb', line 15
def self.signature
'required_if'
end
|
Instance Method Details
#implicit?(validator) ⇒ Boolean
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
# File 'lib/mini_defender/rules/required_if.rb', line 27
def implicit?(validator)
unless validator.data.key?(@target)
return false
end
target_value = validator.data[@target]
case target_value
when Array
target_value.include?(@value)
when Hash
target_value.keys.include?(@value)
else
target_value == @value
end
end
|