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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ca8318553efc488d88a70b394e290ec8030f532ac9b3d4fa4fc67eb60849270a
4
- data.tar.gz: cd86cc76ca2f74bed8e35212da234f5cbcad358db6a08d181f702fda149e785a
3
+ metadata.gz: 83cd30ff493ada586596020db325eed63c9e4c24919e34c7e9926c0f9bedf51f
4
+ data.tar.gz: fee54feaa76dafc06dba69267f4ea6a7b2877e68df6af43738468e65cca552b6
5
5
  SHA512:
6
- metadata.gz: ecde71759c34fe1cee589084e7c06577726af223cc207f3cb4236f02d3d4fba75662bf622d69de7cabc7f22acb6f041cd8ddfeb142f60aba07051b35a3ac9e00
7
- data.tar.gz: bb87fb6a83333fc0efffcd4ce5a37da55689bd617642a15dbbb4b4a1c94cb8511aa9a2e9d11e4fc16fc6ec6631d8191976e125156a1241b8f27367fb0afd4d27
6
+ metadata.gz: 7d4cb677d35d91830b2aa6145d40a74ebb1e34ddd9a1e17203ef62ac66afb30a3a864924462de263ff663d33cc561272143fd1b0ab45e9499c4f42e2dad97840
7
+ data.tar.gz: b074ac5d6a2675e801b52e96d8453847607bf0e523a5988a50456258f1a668319846c8c1f965eadb09409f83b82d23b1262935c2606bab175de0664c7af2077a
data/Gemfile.lock CHANGED
@@ -12,7 +12,7 @@ GIT
12
12
  PATH
13
13
  remote: .
14
14
  specs:
15
- checkoff (0.41.0)
15
+ checkoff (0.42.0)
16
16
  activesupport
17
17
  asana (> 0.10.0)
18
18
  cache_method
@@ -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
- evaluated_args = task_selector[1..].map.with_index do |item, index|
379
- if evaluator.evaluate_arg?(index)
380
- evaluate(item)
381
- else
382
- item
383
- end
384
- end
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
@@ -3,5 +3,5 @@
3
3
  # Command-line and gem client for Asana (unofficial)
4
4
  module Checkoff
5
5
  # Version of library
6
- VERSION = '0.41.0'
6
+ VERSION = '0.42.0'
7
7
  end
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.41.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-19 00:00:00.000000000 Z
11
+ date: 2023-06-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport