checkoff 0.52.0 → 0.53.1
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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 234864e30843bb30b598e38ef8e2571a6b5f6bbf37f07db7af5d4249ffe8ada2
|
4
|
+
data.tar.gz: 4e2eef390cc3fca5a3022a816811acadfc710983ec96f288567d6892f7d08e22
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b035b186ac2b3fd74507020d165aa4b50c1c95d1a5848cbae0f579013dbf4fd6c6b0a3f648b00901544c525924ea7596009446777bb91db3ca5412fad6448136
|
7
|
+
data.tar.gz: c35c867d9aaac72f54355fb371ea298afb55ccf9502d6baca0f2bc928ca4a0896a3bd5c784c052a6f566852933fbac88dd51a2d0764e4940edd132b5d21f5c8d
|
data/Gemfile.lock
CHANGED
@@ -12,7 +12,7 @@ GIT
|
|
12
12
|
PATH
|
13
13
|
remote: .
|
14
14
|
specs:
|
15
|
-
checkoff (0.
|
15
|
+
checkoff (0.53.1)
|
16
16
|
activesupport
|
17
17
|
asana (> 0.10.0)
|
18
18
|
cache_method
|
@@ -22,7 +22,7 @@ PATH
|
|
22
22
|
GEM
|
23
23
|
remote: https://rubygems.org/
|
24
24
|
specs:
|
25
|
-
activesupport (7.0.
|
25
|
+
activesupport (7.0.8)
|
26
26
|
concurrent-ruby (~> 1.0, >= 1.0.2)
|
27
27
|
i18n (>= 1.6, < 2)
|
28
28
|
minitest (>= 5.1)
|
@@ -36,7 +36,10 @@ module Checkoff
|
|
36
36
|
validate_unit_not_provided!
|
37
37
|
|
38
38
|
# Example value: 1702857600000
|
39
|
-
|
39
|
+
# +1 is because API seems to operate on inclusive ranges
|
40
|
+
# @type [Date]
|
41
|
+
# @sg-ignore
|
42
|
+
after = Time.at(due_date_after.to_i / 1000).to_date + 1
|
40
43
|
[{ 'due_on.after' => after.to_s }, []]
|
41
44
|
end
|
42
45
|
|
@@ -497,6 +497,47 @@ module Checkoff
|
|
497
497
|
task_selector
|
498
498
|
end
|
499
499
|
end
|
500
|
+
|
501
|
+
# :estimate_exceeds_duration
|
502
|
+
class EstimateExceedsDurationFunctionEvaluator < FunctionEvaluator
|
503
|
+
FUNCTION_NAME = :estimate_exceeds_duration
|
504
|
+
|
505
|
+
def matches?
|
506
|
+
fn?(task_selector, FUNCTION_NAME)
|
507
|
+
end
|
508
|
+
|
509
|
+
# @param task [Asana::Resources::Task]
|
510
|
+
# @return [Float]
|
511
|
+
def calculate_allocated_hours(task)
|
512
|
+
due_on = nil
|
513
|
+
start_on = nil
|
514
|
+
start_on = Date.parse(task.start_on) unless task.start_on.nil?
|
515
|
+
due_on = Date.parse(task.due_on) unless task.due_on.nil?
|
516
|
+
allocated_hours = 8.0
|
517
|
+
# @sg-ignore
|
518
|
+
allocated_hours = (due_on - start_on + 1).to_i * 8.0 if start_on && due_on
|
519
|
+
allocated_hours
|
520
|
+
end
|
521
|
+
|
522
|
+
# @param task [Asana::Resources::Task]
|
523
|
+
# @return [Boolean]
|
524
|
+
def evaluate(task)
|
525
|
+
custom_field = pull_custom_field_by_name_or_raise(task, 'Estimated time')
|
526
|
+
|
527
|
+
# @sg-ignore
|
528
|
+
# @type [Integer, nil]
|
529
|
+
estimate_minutes = custom_field.fetch('number_value')
|
530
|
+
|
531
|
+
# no estimate set
|
532
|
+
return false if estimate_minutes.nil?
|
533
|
+
|
534
|
+
estimate_hours = estimate_minutes / 60.0
|
535
|
+
|
536
|
+
allocated_hours = calculate_allocated_hours(task)
|
537
|
+
|
538
|
+
estimate_hours > allocated_hours
|
539
|
+
end
|
540
|
+
end
|
500
541
|
end
|
501
542
|
|
502
543
|
# Evaluator task selectors against a task
|
@@ -527,6 +568,7 @@ module Checkoff
|
|
527
568
|
Checkoff::TaskSelectorClasses::CustomFieldLessThanNDaysFromNowFunctionEvaluator,
|
528
569
|
Checkoff::TaskSelectorClasses::CustomFieldGreaterThanOrEqualToNDaysFromNowFunctionEvaluator,
|
529
570
|
Checkoff::TaskSelectorClasses::StringLiteralEvaluator,
|
571
|
+
Checkoff::TaskSelectorClasses::EstimateExceedsDurationFunctionEvaluator,
|
530
572
|
].freeze
|
531
573
|
|
532
574
|
# @param task_selector [Array]
|
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.53.1
|
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-09-
|
11
|
+
date: 2023-09-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|