# File ai/csp/problem.rb, line 47 def add_constraint(*variables, &block) if block_given? vars = variables.collect { |v| v.kind_of?(Variable) ? v : @name_to_var[v] } con = Constraint.new(*vars, &block) elsif variables.length == 1 and variables[0].kind_of?(Constraint) con = variables[0] else raise 'Some usage message here ...' end @constraints << con con.variables.each {|v| cons = (@var_to_con[v] or []) @var_to_con[v] = cons + [con] } con end