Module: Dry::Logic

Defined in:
lib/dry/logic.rb,
lib/dry/logic/rule.rb,
lib/dry/logic/result.rb,
lib/dry/logic/version.rb,
lib/dry/logic/rule/key.rb,
lib/dry/logic/rule/set.rb,
lib/dry/logic/predicate.rb,
lib/dry/logic/rule/attr.rb,
lib/dry/logic/rule/each.rb,
lib/dry/logic/predicates.rb,
lib/dry/logic/rule/check.rb,
lib/dry/logic/rule/group.rb,
lib/dry/logic/rule/value.rb,
lib/dry/logic/rule/result.rb,
lib/dry/logic/predicate_set.rb,
lib/dry/logic/rule_compiler.rb,
lib/dry/logic/rule/composite.rb

Defined Under Namespace

Modules: PredicateSet, Predicates Classes: Predicate, Result, Rule, RuleCompiler

Constant Summary collapse

VERSION =
'0.1.1'.freeze

Class Method Summary collapse

Class Method Details

.Predicate(block) ⇒ Object



3
4
5
6
7
8
# File 'lib/dry/logic/predicate.rb', line 3

def self.Predicate(block)
  case block
  when Method then Predicate.new(block.name, &block)
  else raise ArgumentError, 'predicate needs an :id'
  end
end

.Result(input, value, rule) ⇒ Object



3
4
5
6
7
8
9
# File 'lib/dry/logic/result.rb', line 3

def self.Result(input, value, rule)
  case value
  when Result then value.class.new(value.input, value.success?, rule)
  when Array then Result::Set.new(input, value, rule)
  else Result::Value.new(input, value, rule)
  end
end