checkoff 0.103.0 → 0.104.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/selector_classes/common/function_evaluator.rb +0 -48
- data/lib/checkoff/internal/selector_classes/project/function_evaluator.rb +0 -48
- data/lib/checkoff/internal/selector_classes/task/function_evaluator.rb +0 -24
- data/lib/checkoff/internal/selector_classes/task.rb +6 -2
- data/lib/checkoff/internal/task_timing.rb +9 -0
- data/lib/checkoff/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b6d308b4ca05ee88bf3b380772496d9c621cc7b9f521b4cf19eb1351395ed2b2
|
4
|
+
data.tar.gz: eb14bb0c6f4dabd72e083ce67a5c3c821be931ac268f3202445714da9ae713aa
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 28983082df6a4c00e31fb3f458a6bafc0241920d4f1b5657e6ce3613d86127b0df6561defde8669a9ead845e2ef7d77c10ec1d45603c55d17fe735c5d3d5e716
|
7
|
+
data.tar.gz: dc877bc157ed76157327c2e094ff69ff4074275eaa9df93ec9d3fdf8bc67969c4402503ee9435bcf1305f489f0d7ab22f0b43129e69b0abe9e06064b4683f8e7
|
data/Gemfile.lock
CHANGED
@@ -15,54 +15,6 @@ module Checkoff
|
|
15
15
|
|
16
16
|
private
|
17
17
|
|
18
|
-
# @param project [Asana::Resources::Project]
|
19
|
-
# @param field_name [Symbol]
|
20
|
-
#
|
21
|
-
# @sg-ignore
|
22
|
-
# @return [Date, nil]
|
23
|
-
def pull_date_field_by_name(project, field_name)
|
24
|
-
if field_name == :modified
|
25
|
-
return Time.parse(project.modified_at).to_date unless project.modified_at.nil?
|
26
|
-
|
27
|
-
return nil
|
28
|
-
end
|
29
|
-
|
30
|
-
if field_name == :due
|
31
|
-
return Time.parse(project.due_at).to_date unless project.due_at.nil?
|
32
|
-
|
33
|
-
return Date.parse(project.due_on) unless project.due_on.nil?
|
34
|
-
|
35
|
-
return nil
|
36
|
-
end
|
37
|
-
|
38
|
-
raise "Teach me how to handle field #{field_name}"
|
39
|
-
end
|
40
|
-
|
41
|
-
# @param project [Asana::Resources::Project]
|
42
|
-
# @param field_name [Symbol]
|
43
|
-
#
|
44
|
-
# @sg-ignore
|
45
|
-
# @return [Date, Time, nil]
|
46
|
-
def pull_date_or_time_field_by_name(project, field_name)
|
47
|
-
if field_name == :due
|
48
|
-
return Time.parse(project.due_at) unless project.due_at.nil?
|
49
|
-
|
50
|
-
return Date.parse(project.due_on) unless project.due_on.nil?
|
51
|
-
|
52
|
-
return nil
|
53
|
-
end
|
54
|
-
|
55
|
-
if field_name == :start
|
56
|
-
return Time.parse(project.start_at) unless project.start_at.nil?
|
57
|
-
|
58
|
-
return Date.parse(project.start_on) unless project.start_on.nil?
|
59
|
-
|
60
|
-
return nil
|
61
|
-
end
|
62
|
-
|
63
|
-
raise "Teach me how to handle field #{field_name}"
|
64
|
-
end
|
65
|
-
|
66
18
|
# @sg-ignore
|
67
19
|
# @param project [Asana::Resources::Project]
|
68
20
|
# @param custom_field_gid [String]
|
@@ -18,54 +18,6 @@ module Checkoff
|
|
18
18
|
|
19
19
|
private
|
20
20
|
|
21
|
-
# @param project [Asana::Resources::Project]
|
22
|
-
# @param field_name [Symbol]
|
23
|
-
#
|
24
|
-
# @sg-ignore
|
25
|
-
# @return [Date, nil]
|
26
|
-
def pull_date_field_by_name(project, field_name)
|
27
|
-
if field_name == :modified
|
28
|
-
return Time.parse(project.modified_at).to_date unless project.modified_at.nil?
|
29
|
-
|
30
|
-
return nil
|
31
|
-
end
|
32
|
-
|
33
|
-
if field_name == :due
|
34
|
-
return Time.parse(project.due_at).to_date unless project.due_at.nil?
|
35
|
-
|
36
|
-
return Date.parse(project.due_on) unless project.due_on.nil?
|
37
|
-
|
38
|
-
return nil
|
39
|
-
end
|
40
|
-
|
41
|
-
raise "Teach me how to handle field #{field_name}"
|
42
|
-
end
|
43
|
-
|
44
|
-
# @param project [Asana::Resources::Project]
|
45
|
-
# @param field_name [Symbol]
|
46
|
-
#
|
47
|
-
# @sg-ignore
|
48
|
-
# @return [Date, Time, nil]
|
49
|
-
def pull_date_or_time_field_by_name(project, field_name)
|
50
|
-
if field_name == :due
|
51
|
-
return Time.parse(project.due_at) unless project.due_at.nil?
|
52
|
-
|
53
|
-
return Date.parse(project.due_on) unless project.due_on.nil?
|
54
|
-
|
55
|
-
return nil
|
56
|
-
end
|
57
|
-
|
58
|
-
if field_name == :start
|
59
|
-
return Time.parse(project.start_at) unless project.start_at.nil?
|
60
|
-
|
61
|
-
return Date.parse(project.start_on) unless project.start_on.nil?
|
62
|
-
|
63
|
-
return nil
|
64
|
-
end
|
65
|
-
|
66
|
-
raise "Teach me how to handle field #{field_name}"
|
67
|
-
end
|
68
|
-
|
69
21
|
# @sg-ignore
|
70
22
|
# @param project [Asana::Resources::Project]
|
71
23
|
# @param custom_field_gid [String]
|
@@ -1,7 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require_relative '../function_evaluator'
|
4
|
-
require 'checkoff/internal/task_timing'
|
5
4
|
|
6
5
|
module Checkoff
|
7
6
|
module SelectorClasses
|
@@ -22,29 +21,6 @@ module Checkoff
|
|
22
21
|
|
23
22
|
private
|
24
23
|
|
25
|
-
# @param task [Asana::Resources::Task]
|
26
|
-
# @param field_name [Symbol]
|
27
|
-
#
|
28
|
-
# @sg-ignore
|
29
|
-
# @return [Date, nil]
|
30
|
-
def pull_date_field_by_name(task, field_name)
|
31
|
-
if field_name == :modified
|
32
|
-
return Time.parse(task.modified_at).to_date unless task.modified_at.nil?
|
33
|
-
|
34
|
-
return nil
|
35
|
-
end
|
36
|
-
|
37
|
-
if field_name == :due
|
38
|
-
return Time.parse(task.due_at).to_date unless task.due_at.nil?
|
39
|
-
|
40
|
-
return Date.parse(task.due_on) unless task.due_on.nil?
|
41
|
-
|
42
|
-
return nil
|
43
|
-
end
|
44
|
-
|
45
|
-
raise "Teach me how to handle field #{field_name}"
|
46
|
-
end
|
47
|
-
|
48
24
|
# @sg-ignore
|
49
25
|
# @param task [Asana::Resources::Task]
|
50
26
|
# @param custom_field_gid [String]
|
@@ -2,6 +2,7 @@
|
|
2
2
|
|
3
3
|
require_relative 'task/function_evaluator'
|
4
4
|
require 'checkoff/internal/ready_between_relative'
|
5
|
+
require 'checkoff/internal/task_timing'
|
5
6
|
|
6
7
|
module Checkoff
|
7
8
|
module SelectorClasses
|
@@ -160,7 +161,9 @@ module Checkoff
|
|
160
161
|
#
|
161
162
|
# @return [Boolean]
|
162
163
|
def evaluate(task, field_name, num_days)
|
163
|
-
|
164
|
+
task_timing = Checkoff::Internal::TaskTiming.new
|
165
|
+
|
166
|
+
date = task_timing.date_or_time_field_by_name(task, field_name)&.to_date
|
164
167
|
|
165
168
|
return false if date.nil?
|
166
169
|
|
@@ -189,7 +192,8 @@ module Checkoff
|
|
189
192
|
#
|
190
193
|
# @return [Boolean]
|
191
194
|
def evaluate(task, field_name, num_days)
|
192
|
-
|
195
|
+
task_timing = Checkoff::Internal::TaskTiming.new
|
196
|
+
date = task_timing.date_or_time_field_by_name(task, field_name)&.to_date
|
193
197
|
|
194
198
|
return false if date.nil?
|
195
199
|
|
@@ -49,6 +49,13 @@ module Checkoff
|
|
49
49
|
nil
|
50
50
|
end
|
51
51
|
|
52
|
+
# @param task [Asana::Resources::Task]
|
53
|
+
#
|
54
|
+
# @return [Time, nil]
|
55
|
+
def modified_time(task)
|
56
|
+
return @time_class.parse(task.modified_at) unless task.modified_at.nil?
|
57
|
+
end
|
58
|
+
|
52
59
|
# @param task [Asana::Resources::Task]
|
53
60
|
# @param field_name [Symbol]
|
54
61
|
#
|
@@ -59,6 +66,8 @@ module Checkoff
|
|
59
66
|
|
60
67
|
return start_date_or_time(task) if field_name == :start
|
61
68
|
|
69
|
+
return modified_time(task) if field_name == :modified
|
70
|
+
|
62
71
|
return start_date_or_time(task) || due_date_or_time(task) if field_name == :ready
|
63
72
|
|
64
73
|
raise "Teach me how to handle field #{field_name}"
|
data/lib/checkoff/version.rb
CHANGED