class Tensai::Logic::Predicate

Predicate

Public Instance Methods

accepts?(values) click to toggle source
# File lib/tensai/logic/predicate.rb, line 25
def accepts?(values)
  Set.new(values.keys) == variable_names &&
    variables.all? { |v| v.accepts? values[v.name] }
end
after_initialize() click to toggle source
# File lib/tensai/logic/predicate.rb, line 21
def after_initialize
  raise ArgumentError, 'All variable names must be unique' if variable_names.size < variables.size
end
inspect() click to toggle source
# File lib/tensai/logic/predicate.rb, line 30
def inspect
  "(#{name} #{variables.map(&:inspect).join(' ')})"
end

Private Instance Methods

variable_names() click to toggle source
# File lib/tensai/logic/predicate.rb, line 36
def variable_names
  @variable_names ||= Set.new(variables.map(&:name))
end