Class: Checkoff::SelectorEvaluator

Inherits:
Object
  • Object
show all
Defined in:
lib/checkoff/internal/selector_evaluator.rb

Overview

Base class to evaluate Asana resource selectors against an Asana resource

Instance Method Summary collapse

Instance Method Details

#evaluate(selector) ⇒ Boolean, ...

Parameters:

  • selector (Array)

Returns:

  • (Boolean, Object, nil)


8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/checkoff/internal/selector_evaluator.rb', line 8

def evaluate(selector)
  return true if selector.empty?

  function_evaluators.each do |evaluator_class|
    # @type [SelectorClasses::FunctionEvaluator]
    # @sg-ignore
    evaluator = evaluator_class.new(selector: selector,
                                    **initializer_kwargs)

    next unless evaluator.matches?

    return try_this_evaluator(selector, evaluator)
  end

  raise "Syntax issue trying to handle #{selector.inspect}"
end