checkoff 0.169.0 → 0.170.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b419b90533969c11f309154a42042afc9355aa1a1c1ba964f535887d170a0a09
4
- data.tar.gz: c05bf7c5f77ed15d652f276f3ef5383d12317626f6c4c99cdfbbbf17d4d90884
3
+ metadata.gz: e346e26787afb1656a88445f35f22cd18c88519080b6224d4dcb83074149696f
4
+ data.tar.gz: f33d96167e8036964aee3eaa9a69e8b3e81c31a4e9fcec314ece54defe375b83
5
5
  SHA512:
6
- metadata.gz: e7eadd8eafadff6b0e493926faf1eaa7f07eb5a29a766f00d82e7756bbf37d4fc2a7f54a199e545d90b6dfbd97ea6fc2be91f8ab04dc61b1bb3142c38986f36b
7
- data.tar.gz: 0a1cfb55148e3ec98711e1bc5b6b8976f809adafda374348dbe95a381850a4ece2eea931cfecdd45411eedda17fc92ea05513d10a96afe1c007496c84ec72bc7
6
+ metadata.gz: abf2f44932128fdfdf7d89e162431d4e4cfa89029bd106adb3b49ad6cc801e5b41838249595cf1f7dab8d25d3d52dcc1a2114be1f8f4a821dead7b9dcaf2fb71
7
+ data.tar.gz: 3828a170cdaa9cdd0f82beb5830dc2392a87a69bb45bff4f54d06865a6acde7a9962379c94435f03d3774450e6f4939ef282bd8e8922b4360d8162d809630b13
data/Gemfile.lock CHANGED
@@ -12,7 +12,7 @@ GIT
12
12
  PATH
13
13
  remote: .
14
14
  specs:
15
- checkoff (0.169.0)
15
+ checkoff (0.170.0)
16
16
  activesupport
17
17
  asana (> 0.10.0)
18
18
  cache_method
@@ -7,7 +7,7 @@ module Checkoff
7
7
  # Uses an enhanced version of Asana event filter configuration
8
8
  #
9
9
  # See https://developers.asana.com/reference/createwebhook | body
10
- # params | data | filters for a general description of the scheme.
10
+ # params | data | filters | add object for a general description of the scheme.
11
11
  #
12
12
  # Additional supported filter keys:
13
13
  #
@@ -17,8 +17,11 @@ module Checkoff
17
17
  include Logging
18
18
 
19
19
  # @param filters [Array<Hash>, nil] The filters to match against
20
- def initialize(filters:)
20
+ # @param tasks [Checkoff::Tasks]
21
+ def initialize(filters:,
22
+ tasks: Checkoff::Tasks.new)
21
23
  @filters = filters
24
+ @tasks = tasks
22
25
  end
23
26
 
24
27
  # @param asana_event [Hash] The event that Asana sent
@@ -66,6 +69,25 @@ module Checkoff
66
69
  value.include? asana_event.fetch('change', {})['field']
67
70
  when 'checkoff:parent.gid'
68
71
  asana_event.fetch('parent', {})['gid'] == value
72
+ when 'checkoff:resource.gid'
73
+ asana_event.fetch('resource', {})['gid'] == value
74
+ when 'checkoff:fetched.completed'
75
+ # @type [Hash{String => String}]
76
+ # @sg-ignore
77
+ resource = asana_event.fetch('resource')
78
+ # @type [String]
79
+ resource_type = resource.fetch('resource_type')
80
+ unless resource_type == 'task'
81
+ raise "Teach me how to check #{key.inspect} on resource type #{resource_type.inspect}"
82
+ end
83
+
84
+ task_gid = resource.fetch('gid')
85
+
86
+ task = @tasks.task_by_gid(task_gid,
87
+ extra_fields: ['completed_at'],
88
+ only_uncompleted: false)
89
+ task_completed = !task.completed_at.nil?
90
+ task_completed == value
69
91
  else
70
92
  raise "Unknown filter key #{key}"
71
93
  end
@@ -135,7 +135,7 @@ module Checkoff
135
135
  # @return [Asana::Resources::Task, nil]
136
136
  def task_by_gid(task_gid,
137
137
  extra_fields: [],
138
- only_uncompleted: false)
138
+ only_uncompleted: true)
139
139
  # @type [Hash]
140
140
  options = projects.task_options.fetch(:options, {})
141
141
  options[:fields] += extra_fields
@@ -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.169.0'
6
+ VERSION = '0.170.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.169.0
4
+ version: 0.170.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: 2024-01-14 00:00:00.000000000 Z
11
+ date: 2024-01-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport