Class: CSP::Constraints::CustomConstraint

Inherits:
CSP::Constraint show all
Defined in:
lib/csp/constraints.rb

Instance Attribute Summary collapse

Attributes inherited from CSP::Constraint

#variables

Instance Method Summary collapse

Methods inherited from CSP::Constraint

#arity, #binary?, #unary?

Constructor Details

#initialize(variables, block) ⇒ CustomConstraint

Returns a new instance of CustomConstraint.



24
25
26
27
# File 'lib/csp/constraints.rb', line 24

def initialize(variables, block)
  super(variables)
  @block = block
end

Instance Attribute Details

#blockObject (readonly)

Returns the value of attribute block.



22
23
24
# File 'lib/csp/constraints.rb', line 22

def block
  @block
end

Instance Method Details

#satisfies?(assignment) ⇒ Boolean

Returns:

  • (Boolean)


29
30
31
32
33
34
# File 'lib/csp/constraints.rb', line 29

def satisfies?(assignment)
  values = assignment.values_at(*variables)
  return true if values.any?(&:nil?)

  block.call(*values)
end