checkoff 0.41.0 → 0.42.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/lib/checkoff/internal/task_selector_evaluator.rb +44 -8
- data/lib/checkoff/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 83cd30ff493ada586596020db325eed63c9e4c24919e34c7e9926c0f9bedf51f
|
4
|
+
data.tar.gz: fee54feaa76dafc06dba69267f4ea6a7b2877e68df6af43738468e65cca552b6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7d4cb677d35d91830b2aa6145d40a74ebb1e34ddd9a1e17203ef62ac66afb30a3a864924462de263ff663d33cc561272143fd1b0ab45e9499c4f42e2dad97840
|
7
|
+
data.tar.gz: b074ac5d6a2675e801b52e96d8453847607bf0e523a5988a50456258f1a668319846c8c1f965eadb09409f83b82d23b1262935c2606bab175de0664c7af2077a
|
data/Gemfile.lock
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
module Checkoff
|
4
4
|
# Base class to evaluate a task selector function given fully evaluated arguments
|
5
5
|
class FunctionEvaluator
|
6
|
-
# @param task_selector [Array<(Symbol, Array)
|
6
|
+
# @param task_selector [Array<(Symbol, Array)>,String]
|
7
7
|
# @param tasks [Checkoff::Tasks]
|
8
8
|
def initialize(task_selector:,
|
9
9
|
tasks:)
|
@@ -165,6 +165,21 @@ module Checkoff
|
|
165
165
|
end
|
166
166
|
end
|
167
167
|
|
168
|
+
# :equals? function
|
169
|
+
class EqualsPFunctionEvaluator < FunctionEvaluator
|
170
|
+
def matches?
|
171
|
+
fn?(task_selector, :equals?)
|
172
|
+
end
|
173
|
+
|
174
|
+
# @param _task [Asana::Resources::Task]
|
175
|
+
# @param lhs [Object]
|
176
|
+
# @param rhs [Object]
|
177
|
+
# @return [Boolean]
|
178
|
+
def evaluate(_task, lhs, rhs)
|
179
|
+
lhs == rhs
|
180
|
+
end
|
181
|
+
end
|
182
|
+
|
168
183
|
# :tag function
|
169
184
|
class TagPFunctionEvaluator < FunctionEvaluator
|
170
185
|
def matches?
|
@@ -324,6 +339,20 @@ module Checkoff
|
|
324
339
|
end
|
325
340
|
end
|
326
341
|
|
342
|
+
# String literals
|
343
|
+
class StringLiteralEvaluator < FunctionEvaluator
|
344
|
+
def matches?
|
345
|
+
task_selector.is_a?(String)
|
346
|
+
end
|
347
|
+
|
348
|
+
# @sg-ignore
|
349
|
+
# @param _task [Asana::Resources::Task]
|
350
|
+
# @return [String]
|
351
|
+
def evaluate(_task)
|
352
|
+
task_selector
|
353
|
+
end
|
354
|
+
end
|
355
|
+
|
327
356
|
# Evaluator task selectors against a task
|
328
357
|
class TaskSelectorEvaluator
|
329
358
|
# @param task [Asana::Resources::Task]
|
@@ -337,6 +366,7 @@ module Checkoff
|
|
337
366
|
FUNCTION_EVALUTORS = [
|
338
367
|
NotFunctionEvaluator,
|
339
368
|
NilPFunctionEvaluator,
|
369
|
+
EqualsPFunctionEvaluator,
|
340
370
|
TagPFunctionEvaluator,
|
341
371
|
CustomFieldValueFunctionEvaluator,
|
342
372
|
CustomFieldGidValueFunctionEvaluator,
|
@@ -346,6 +376,7 @@ module Checkoff
|
|
346
376
|
DuePFunctionEvaluator,
|
347
377
|
DueDateSetPFunctionEvaluator,
|
348
378
|
CustomFieldLessThanNDaysFromNowFunctionEvaluator,
|
379
|
+
StringLiteralEvaluator,
|
349
380
|
].freeze
|
350
381
|
|
351
382
|
# @param task_selector [Array]
|
@@ -375,13 +406,18 @@ module Checkoff
|
|
375
406
|
# @param evaluator [FunctionEvaluator]
|
376
407
|
# @return [Boolean, Object, nil]
|
377
408
|
def try_this_evaluator(task_selector, evaluator)
|
378
|
-
|
379
|
-
|
380
|
-
|
381
|
-
|
382
|
-
|
383
|
-
|
384
|
-
|
409
|
+
# if task_selector is an array
|
410
|
+
evaluated_args = if task_selector.is_a?(Array)
|
411
|
+
task_selector[1..].map.with_index do |item, index|
|
412
|
+
if evaluator.evaluate_arg?(index)
|
413
|
+
evaluate(item)
|
414
|
+
else
|
415
|
+
item
|
416
|
+
end
|
417
|
+
end
|
418
|
+
else
|
419
|
+
[]
|
420
|
+
end
|
385
421
|
|
386
422
|
evaluator.evaluate(task, *evaluated_args)
|
387
423
|
end
|
data/lib/checkoff/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: checkoff
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.42.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Vince Broz
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-06-
|
11
|
+
date: 2023-06-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|