checkoff 0.41.0 → 0.42.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|