Class: Dry::Logic::Rule::Group

Inherits:
Dry::Logic::Rule show all
Defined in:
lib/dry/logic/rule/group.rb

Instance Attribute Summary collapse

Attributes inherited from Dry::Logic::Rule

#name, #predicate

Instance Method Summary collapse

Methods inherited from Dry::Logic::Rule

#and, #curry, #negation, #new, #or, #predicate_id, #then, #to_ary, #xor

Constructor Details

#initialize(identifier, predicate) ⇒ Group

Returns a new instance of Group.



6
7
8
9
10
# File 'lib/dry/logic/rule/group.rb', line 6

def initialize(identifier, predicate)
  name, rules = identifier.to_a.first
  @rules = rules
  super(name, predicate)
end

Instance Attribute Details

#rulesObject (readonly)

Returns the value of attribute rules.



4
5
6
# File 'lib/dry/logic/rule/group.rb', line 4

def rules
  @rules
end

Instance Method Details

#call(*input) ⇒ Object



12
13
14
# File 'lib/dry/logic/rule/group.rb', line 12

def call(*input)
  Logic.Result(input, predicate.(*input), self)
end

#typeObject



16
17
18
# File 'lib/dry/logic/rule/group.rb', line 16

def type
  :group
end