Class: SpotFeel::QuantifiedExpression

Inherits:
Node
  • Object
show all
Defined in:
lib/spot_feel/nodes.rb

Overview

  1. quantified expression = (“some” | “every”) , name , “in” , expression , { name , “in” , expression } , “satisfies” , expression ;

Instance Method Summary collapse

Methods inherited from Node

#qualified_names_in_context, #raise_evaluation_error

Instance Method Details

#eval(context = {}) ⇒ Object



448
449
450
451
452
453
454
# File 'lib/spot_feel/nodes.rb', line 448

def eval(context = {})
  if quantifier.text_value == "some"
    quantified_some(context)
  else
    quantified_every(context)
  end
end

#quantified_every(context) ⇒ Object



461
462
463
464
# File 'lib/spot_feel/nodes.rb', line 461

def quantified_every(context)
  quantified_expression = quantified_expression(context)
  quantified_expression.all? { |input| satisfies(input, context) }
end

#quantified_some(context) ⇒ Object



456
457
458
459
# File 'lib/spot_feel/nodes.rb', line 456

def quantified_some(context)
  quantified_expression = quantified_expression(context)
  quantified_expression.any? { |input| satisfies(input, context) }
end