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 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