Class: Checkoff::TaskSelectorEvaluator
- Inherits:
-
Object
- Object
- Checkoff::TaskSelectorEvaluator
- Defined in:
- lib/checkoff/internal/task_selector_evaluator.rb
Overview
Evaluator task selectors against a task
Constant Summary collapse
- FUNCTION_EVALUTORS =
[ NotFunctionEvaluator, NilPFunctionEvaluator, TagPFunctionEvaluator, CustomFieldValueFunctionEvaluator, CustomFieldGidValueFunctionEvaluator, CustomFieldGidValueContainsAnyGidFunctionEvaluator, CustomFieldGidValueContainsAllGidsFunctionEvaluator, AndFunctionEvaluator, DuePFunctionEvaluator, DueDateSetPFunctionEvaluator, ].freeze
Instance Method Summary collapse
- #evaluate(task_selector) ⇒ Object
-
#initialize(task:, tasks: Checkoff::Tasks.new) ⇒ TaskSelectorEvaluator
constructor
A new instance of TaskSelectorEvaluator.
Constructor Details
#initialize(task:, tasks: Checkoff::Tasks.new) ⇒ TaskSelectorEvaluator
Returns a new instance of TaskSelectorEvaluator.
218 219 220 221 222 |
# File 'lib/checkoff/internal/task_selector_evaluator.rb', line 218 def initialize(task:, tasks: Checkoff::Tasks.new) @task = task @tasks = tasks end |
Instance Method Details
#evaluate(task_selector) ⇒ Object
237 238 239 240 241 242 243 244 245 246 247 248 249 250 |
# File 'lib/checkoff/internal/task_selector_evaluator.rb', line 237 def evaluate(task_selector) return true if task_selector == [] FUNCTION_EVALUTORS.each do |evaluator_class| evaluator = evaluator_class.new(task_selector: task_selector, tasks: tasks) next unless evaluator.matches? return try_this_evaluator(task_selector, evaluator) end raise "Syntax issue trying to handle #{task_selector}" end |