class Logica::Predicates::PartialApplication

Attributes

first_arguments[R]
predicate[R]

Public Class Methods

new(predicate, first_arguments) click to toggle source
# File lib/logica/predicates/partial_application.rb, line 6
def initialize(predicate, first_arguments)
  @predicate = predicate
  @first_arguments = first_arguments
end

Public Instance Methods

arity() click to toggle source
# File lib/logica/predicates/partial_application.rb, line 15
def arity
  predicate.arity - first_arguments.size
end
name_and_attributes() click to toggle source
# File lib/logica/predicates/partial_application.rb, line 19
def name_and_attributes
  "#{predicate.name_and_attributes}(#{first_arguments.join(', ')})"
end
satisfied_by?(*arguments) click to toggle source
# File lib/logica/predicates/partial_application.rb, line 11
def satisfied_by?(*arguments)
  predicate.satisfied_by?(*(first_arguments + arguments))
end

Private Instance Methods

do_partially_applied_with(more_arguments) click to toggle source
# File lib/logica/predicates/partial_application.rb, line 25
def do_partially_applied_with(more_arguments)
  predicate_factory.partial_application(predicate, first_arguments + more_arguments)
end