checkoff 0.171.0 → 0.173.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/asana_event_filter.rb +17 -5
- data/lib/checkoff/projects.rb +4 -1
- data/lib/checkoff/sections.rb +4 -1
- 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: 1673c2678f44633dec96080ac5d922966010a76366fcaf386354b18af8b76b06
|
4
|
+
data.tar.gz: 553d8638f76827ed472325af3643543fa05f190bda63bf152be949e7daf81235
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ad1531b9807b536e7c7bc937d9cbe236e2aa88b3322877a71dc146ba0e562a3404f1106f8b240e75860b11f21094713b24844cdb370b9cbb87a552889e53f397
|
7
|
+
data.tar.gz: e664eb216308a74311b23ee76b37f2cb165f886387bd2c30c6581367c53e536afc9d3f21773e9e49b7a2a4e968f65646c2e5746ecb588e6bbfbe26eae8f5ef7f
|
data/Gemfile.lock
CHANGED
@@ -31,10 +31,18 @@ module Checkoff
|
|
31
31
|
logger.debug { "Filtering using #{@filters.inspect}" }
|
32
32
|
return true if @filters.nil?
|
33
33
|
|
34
|
+
failures = []
|
35
|
+
|
34
36
|
@filters.any? do |filter|
|
35
|
-
|
36
|
-
logger.debug { "Filter #{filter.inspect} matched? #{
|
37
|
-
|
37
|
+
filter_matches = filter_matches_asana_event?(filter, asana_event, failures)
|
38
|
+
logger.debug { "Filter #{filter.inspect} matched? #{filter_matches} against event #{asana_event.inspect}" }
|
39
|
+
unless filter_matches
|
40
|
+
logger.info do
|
41
|
+
"Filter #{filter.inspect} failed to match event #{asana_event.inspect} because of #{failures.inspect}"
|
42
|
+
end
|
43
|
+
failures << filter
|
44
|
+
end
|
45
|
+
filter_matches
|
38
46
|
end
|
39
47
|
end
|
40
48
|
|
@@ -42,14 +50,18 @@ module Checkoff
|
|
42
50
|
|
43
51
|
# @param filter [Hash]
|
44
52
|
# @param asana_event [Hash]
|
53
|
+
# @param failures [Array<String>]
|
45
54
|
#
|
46
55
|
# @sg-ignore
|
47
56
|
# @return [Boolean]
|
48
|
-
def filter_matches_asana_event?(filter, asana_event)
|
57
|
+
def filter_matches_asana_event?(filter, asana_event, failures)
|
49
58
|
# @param key [String]
|
50
59
|
# @param value [String, Array<String>]
|
51
60
|
filter.all? do |key, value|
|
52
|
-
asana_event_matches_filter_item?(key, value, asana_event)
|
61
|
+
matches = asana_event_matches_filter_item?(key, value, asana_event)
|
62
|
+
failures << "#{key.inspect} = #{value.inspect}" unless matches
|
63
|
+
|
64
|
+
matches
|
53
65
|
end
|
54
66
|
end
|
55
67
|
|
data/lib/checkoff/projects.rb
CHANGED
@@ -141,7 +141,10 @@ module Checkoff
|
|
141
141
|
options[:completed_since] = '9999-12-01' if only_uncompleted
|
142
142
|
options[:project] = project_gid
|
143
143
|
options[:options][:fields] += extra_fields
|
144
|
-
|
144
|
+
# Note: 30 minute cache time on a raw Enumerable from SDK gives
|
145
|
+
# 'Your pagination token has expired' errors. So we go ahead
|
146
|
+
# and eagerly evaluate here so we can enjoy the cache.
|
147
|
+
client.tasks.find_all(**options).to_a
|
145
148
|
end
|
146
149
|
cache_method :tasks_from_project_gid, REALLY_LONG_CACHE_TIME
|
147
150
|
|
data/lib/checkoff/sections.rb
CHANGED
@@ -129,8 +129,11 @@ module Checkoff
|
|
129
129
|
options = projects.task_options
|
130
130
|
options[:options][:fields] += extra_fields
|
131
131
|
options[:completed_since] = '9999-12-01' if only_uncompleted
|
132
|
+
# Note: 30 minute cache time on a raw Enumerable from SDK gives
|
133
|
+
# 'Your pagination token has expired' errors. So we go ahead
|
134
|
+
# and eagerly evaluate here so we can enjoy the cache.
|
132
135
|
client.tasks.get_tasks(section: section.gid,
|
133
|
-
**options)
|
136
|
+
**options).to_a
|
134
137
|
end
|
135
138
|
cache_method :tasks, REALLY_LONG_CACHE_TIME
|
136
139
|
|
data/lib/checkoff/version.rb
CHANGED