checkoff 0.171.0 → 0.173.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 +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