Class: Dry::Logic::Rule::ExclusiveDisjunction
Instance Attribute Summary
Attributes inherited from Composite
#left, #right
#options, #predicate
Instance Method Summary
collapse
Methods inherited from Composite
#initialize, #name, #to_ast
#and, #curry, #each?, #initialize, #negation, #new, #or, #predicate_id, #then, #xor
Instance Method Details
#call(input) ⇒ Object
70
71
72
|
# File 'lib/dry/logic/rule/composite.rb', line 70
def call(input)
Logic.Result(left.(input).success? ^ right.(input).success?, self, input)
end
|
#evaluate(input) ⇒ Object
74
75
76
|
# File 'lib/dry/logic/rule/composite.rb', line 74
def evaluate(input)
[left.evaluate(input), right.evaluate(input)]
end
|
#type ⇒ Object
78
79
80
|
# File 'lib/dry/logic/rule/composite.rb', line 78
def type
:xor
end
|