checkoff 0.257.0 → 0.258.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.
@@ -11,13 +11,11 @@ module Checkoff
11
11
 
12
12
  function_evaluators.each do |evaluator_class|
13
13
  # @type [Checkoff::SelectorClasses::FunctionEvaluator]
14
- # @sg-ignore
15
14
  evaluator = evaluator_class.new(selector:,
16
15
  **initializer_kwargs)
17
16
 
18
17
  next unless evaluator.matches?
19
18
 
20
- # @sg-ignore
21
19
  return try_this_evaluator(selector, evaluator)
22
20
  end
23
21
 
@@ -32,18 +30,18 @@ module Checkoff
32
30
  end
33
31
 
34
32
  # @return [Array<Class<Checkoff::SelectorClasses::FunctionEvaluator>>]
35
- # @sg-ignore
33
+ # @sg-ignore abstract method always raises; declared type documents the override contract, not this body
36
34
  def function_evaluators
37
35
  raise 'Implement me!'
38
36
  end
39
37
 
40
- # @param selector [Array]
38
+ # @param selector [Symbol, Array]
41
39
  # @param evaluator [Checkoff::SelectorClasses::FunctionEvaluator]
42
40
  # @return [Array]
43
41
  def evaluate_args(selector, evaluator)
44
42
  return [] unless selector.is_a?(Array)
45
43
 
46
- # @sg-ignore
44
+ # @sg-ignore Array#[] with an open-ended range is inferred as nilable even though it never is here
47
45
  selector[1..].map.with_index do |item, index|
48
46
  if evaluator.evaluate_arg?(index)
49
47
  evaluate(item)
@@ -53,7 +51,7 @@ module Checkoff
53
51
  end
54
52
  end
55
53
 
56
- # @param selector [Array]
54
+ # @param selector [Symbol, Array]
57
55
  # @param evaluator [Checkoff::SelectorClasses::FunctionEvaluator]
58
56
  # @return [Boolean, Object, nil]
59
57
  def try_this_evaluator(selector, evaluator)
@@ -142,11 +142,10 @@ module Checkoff
142
142
  # @param section_name [String, nil]
143
143
  #
144
144
  # @return [Array<String>]
145
- # @sg-ignore
145
+ # @sg-ignore Task#name is nilable; task names are assumed present here
146
146
  def section_task_names(workspace_name, project_name, section_name)
147
147
  task_array = tasks(workspace_name, project_name, section_name)
148
- # @type [Array<String>]
149
- T.cast(task_array.map(&:name), T::Array[String])
148
+ T.cast(task_array.map(&:name), Array)
150
149
  end
151
150
  cache_method :section_task_names, SHORT_CACHE_TIME
152
151
 
@@ -184,17 +183,15 @@ module Checkoff
184
183
  #
185
184
  # @return [Asana::Resources::Section, nil]
186
185
  def previous_section(section)
187
- sections = sections_by_project_gid(section.project.fetch('gid'))
186
+ project_sections = sections_by_project_gid(section.project.fetch('gid'))
188
187
 
189
188
  # @type [Array<Asana::Resources::Section>]
190
- # @sg-ignore
191
- sections = sections.to_a
189
+ project_sections_arr = project_sections.to_a
192
190
 
193
- index = sections.find_index { |s| s.gid == section.gid }
191
+ index = project_sections_arr.find_index { |s| s.gid == section.gid }
194
192
  return nil if index.nil? || index.zero?
195
193
 
196
- # @sg-ignore
197
- sections[index - 1]
194
+ project_sections_arr[index - 1]
198
195
  end
199
196
  cache_method :previous_section, SHORT_CACHE_TIME
200
197
 
@@ -295,9 +292,6 @@ module Checkoff
295
292
  # @type [String, nil]
296
293
  current_section = section_key(section_name)
297
294
 
298
- # @sg-ignore Hash#fetch arg0 expected String,NilClass received String,nil — Solargraph
299
- # treats the nil literal in a Hash{K,nil=>V} declaration and an inferred `nil` union
300
- # member as distinct types; no comment-only fix found
301
295
  by_section.fetch(current_section) << task
302
296
  end
303
297
 
@@ -64,19 +64,19 @@ module Checkoff
64
64
  # :nocov:
65
65
  class << self
66
66
  # @return [String]
67
- # @sg-ignore
67
+ # @sg-ignore `x || raise(...)` isn't inferred as narrowing away the nil branch
68
68
  def project_name
69
69
  ARGV[1] || raise('Please pass project name to pull tasks from as first argument')
70
70
  end
71
71
 
72
- # @sg-ignore
73
72
  # @return [String]
73
+ # @sg-ignore `x || raise(...)` isn't inferred as narrowing away the nil branch
74
74
  def workspace_name
75
75
  ARGV[0] || raise('Please pass workspace name as first argument')
76
76
  end
77
77
 
78
78
  # @return [Array(Symbol, Array)]
79
- # @sg-ignore
79
+ # @sg-ignore `x || raise(...)` isn't inferred as narrowing away the nil branch
80
80
  def task_selector
81
81
  task_selector_json = ARGV[2] || raise('Please pass task_selector in JSON form as third argument')
82
82
 
@@ -298,7 +298,7 @@ module Checkoff
298
298
  # @sg-ignore Checkoff::Tasks#in_portfolio_named? return type could not be inferred
299
299
  def in_portfolio_named?(task,
300
300
  portfolio_name,
301
- workspace_name: @workspaces.default_workspace.name)
301
+ workspace_name: T.must(@workspaces.default_workspace.name))
302
302
  portfolio_projects = @portfolios.projects_in_portfolio(workspace_name, portfolio_name)
303
303
  T.cast(task.memberships.any? do |membership|
304
304
  m = T.cast(membership, T::Hash[String, T.untyped])
@@ -315,7 +315,7 @@ module Checkoff
315
315
  # @return [Boolean]
316
316
  def in_portfolio_more_than_once?(task,
317
317
  portfolio_name,
318
- workspace_name: @workspaces.default_workspace.name)
318
+ workspace_name: T.must(@workspaces.default_workspace.name))
319
319
  portfolio_projects = @portfolios.projects_in_portfolio(workspace_name, portfolio_name)
320
320
  portfolio_project_gids = portfolio_projects.map(&:gid)
321
321
  seen = T.let(false, T::Boolean)
@@ -54,8 +54,12 @@ module Checkoff
54
54
  memberships_data = task_data.fetch('memberships')
55
55
  memberships_data.all? do |membership_data|
56
56
  # @type [Hash{String => String}]
57
+ # @sg-ignore Hash#fetch generic<X> leak on rbs >= 4.1.0, fix in progress upstream
58
+ # https://github.com/castwide/solargraph/pull/1228
57
59
  section_data = membership_data.fetch('section')
58
60
  section_gid = section_data.fetch('gid')
61
+ # @sg-ignore Hash#fetch generic<X> leak on rbs >= 4.1.0, fix in progress upstream
62
+ # https://github.com/castwide/solargraph/pull/1228
59
63
  section = @sections.section_by_gid(section_gid)
60
64
  # @sg-ignore section_by_gid can return nil on a gid lookup miss, and
61
65
  # task_data_dependent_on_previous_section_last_milestone? dereferences it immediately
@@ -69,7 +73,7 @@ module Checkoff
69
73
  # @return [Boolean]
70
74
  def last_task_milestone_depends_on_this_task?(task, limit_to_portfolio_name: nil)
71
75
  unless limit_to_portfolio_name.nil?
72
- limit_to_projects = @portfolios.projects_in_portfolio(@workspaces.default_workspace.name,
76
+ limit_to_projects = @portfolios.projects_in_portfolio(T.must(@workspaces.default_workspace.name),
73
77
  limit_to_portfolio_name)
74
78
  end
75
79
 
@@ -81,14 +85,20 @@ module Checkoff
81
85
  md = membership_data
82
86
  unless limit_to_portfolio_name.nil?
83
87
  # @type [Hash{String => Object}]
88
+ # @sg-ignore Hash#fetch generic<X> leak on rbs >= 4.1.0, fix in progress upstream
89
+ # https://github.com/castwide/solargraph/pull/1228
84
90
  project_data = md.fetch('project')
85
91
  project_gid = project_data.fetch('gid')
86
92
  next true unless limit_to_projects.map(&:gid).include? project_gid
87
93
  end
88
94
  # @type [Hash{String => Object}]
95
+ # @sg-ignore Hash#fetch generic<X> leak on rbs >= 4.1.0, fix in progress upstream
96
+ # https://github.com/castwide/solargraph/pull/1228
89
97
  section_data = md.fetch('section')
90
98
  section_gid = section_data.fetch('gid')
91
99
 
100
+ # @sg-ignore Hash#fetch generic<X> leak on rbs >= 4.1.0, fix in progress upstream
101
+ # https://github.com/castwide/solargraph/pull/1228
92
102
  last_milestone = last_milestone_in_section(section_gid)
93
103
 
94
104
  next false if last_milestone.nil?
@@ -108,7 +118,7 @@ module Checkoff
108
118
  # @return [Boolean]
109
119
  def any_milestone_depends_on_this_task?(task, limit_to_portfolio_name: nil)
110
120
  unless limit_to_portfolio_name.nil?
111
- limit_to_projects = @portfolios.projects_in_portfolio(@workspaces.default_workspace.name,
121
+ limit_to_projects = @portfolios.projects_in_portfolio(T.must(@workspaces.default_workspace.name),
112
122
  limit_to_portfolio_name)
113
123
  end
114
124
 
@@ -120,6 +130,8 @@ module Checkoff
120
130
  md = membership_data
121
131
  unless limit_to_portfolio_name.nil?
122
132
  # @type [Hash{String => Object}]
133
+ # @sg-ignore Hash#fetch generic<X> leak on rbs >= 4.1.0, fix in progress upstream
134
+ # https://github.com/castwide/solargraph/pull/1228
123
135
  project_data = md.fetch('project')
124
136
  project_gid = project_data.fetch('gid')
125
137
  next true unless limit_to_projects.map(&:gid).include? project_gid
@@ -4,5 +4,5 @@
4
4
  # Command-line and gem client for Asana (unofficial)
5
5
  module Checkoff
6
6
  # Version of library
7
- VERSION = '0.257.0'
7
+ VERSION = '0.258.0'
8
8
  end
data/rbi/checkoff.rbi CHANGED
@@ -82,7 +82,7 @@ module Overcommit
82
82
  end
83
83
 
84
84
  module Checkoff
85
- VERSION = '0.257.0'
85
+ VERSION = '0.258.0'
86
86
 
87
87
  class Attachments
88
88
  include Logging
@@ -1289,10 +1289,10 @@ module Checkoff
1289
1289
  def h_to_task(task_data); end
1290
1290
 
1291
1291
  sig { params(task: T.untyped, portfolio_name: T.untyped, workspace_name: T.untyped).returns(T.untyped) }
1292
- def in_portfolio_named?(task, portfolio_name, workspace_name: @workspaces.default_workspace.name); end
1292
+ def in_portfolio_named?(task, portfolio_name, workspace_name: T.must(@workspaces.default_workspace.name)); end
1293
1293
 
1294
1294
  sig { params(task: T.untyped, portfolio_name: T.untyped, workspace_name: T.untyped).returns(T.untyped) }
1295
- def in_portfolio_more_than_once?(task, portfolio_name, workspace_name: @workspaces.default_workspace.name); end
1295
+ def in_portfolio_more_than_once?(task, portfolio_name, workspace_name: T.must(@workspaces.default_workspace.name)); end
1296
1296
 
1297
1297
  sig { returns(T.untyped) }
1298
1298
  def as_cache_key; end
@@ -1862,6 +1862,9 @@ module Checkoff
1862
1862
  sig { returns(T.untyped) }
1863
1863
  def single_value; end
1864
1864
 
1865
+ sig { returns(T.untyped) }
1866
+ def convert; end
1867
+
1865
1868
  sig { returns(T.untyped) }
1866
1869
  attr_reader :key
1867
1870
 
@@ -1977,6 +1980,9 @@ module Checkoff
1977
1980
  class FunctionEvaluator
1978
1981
  include Logging
1979
1982
 
1983
+ sig { params(selector: T.untyped, _kwargs: T.untyped).void }
1984
+ def initialize(selector: nil, **_kwargs); end
1985
+
1980
1986
  sig { params(_index: T.untyped).returns(T.untyped) }
1981
1987
  def evaluate_arg?(_index); end
1982
1988
 
@@ -2127,6 +2133,9 @@ module Checkoff
2127
2133
  sig { params(selector: T.untyped, custom_fields: T.untyped, _kwargs: T.untyped).void }
2128
2134
  def initialize(selector:, custom_fields:, **_kwargs); end
2129
2135
 
2136
+ sig { returns(T.untyped) }
2137
+ attr_reader :custom_fields
2138
+
2130
2139
  sig { returns(T.untyped) }
2131
2140
  attr_reader :selector
2132
2141
  end
@@ -2182,6 +2191,15 @@ module Checkoff
2182
2191
  end
2183
2192
  def initialize(selector:, projects:, portfolios:, workspaces:, **_kwargs); end
2184
2193
 
2194
+ sig { returns(T.untyped) }
2195
+ attr_reader :projects
2196
+
2197
+ sig { returns(T.untyped) }
2198
+ attr_reader :portfolios
2199
+
2200
+ sig { returns(T.untyped) }
2201
+ attr_reader :workspaces
2202
+
2185
2203
  sig { returns(T.untyped) }
2186
2204
  attr_reader :selector
2187
2205
  end
@@ -2220,10 +2238,13 @@ module Checkoff
2220
2238
  def initialize(selector:, sections:, client:, **kwargs); end
2221
2239
 
2222
2240
  sig { returns(T.untyped) }
2223
- attr_reader :selector
2241
+ attr_reader :sections
2224
2242
 
2225
2243
  sig { returns(T.untyped) }
2226
2244
  attr_reader :client
2245
+
2246
+ sig { returns(T.untyped) }
2247
+ attr_reader :selector
2227
2248
  end
2228
2249
  end
2229
2250
 
@@ -2449,7 +2470,7 @@ end
2449
2470
  # typed: ignore
2450
2471
  # Command-line and gem client for Asana (unofficial)
2451
2472
  module Checkoff
2452
- VERSION = T.let('0.257.0', T.untyped)
2473
+ VERSION = T.let('0.258.0', T.untyped)
2453
2474
 
2454
2475
  # Move tasks from one place to another
2455
2476
  class MvSubcommand
@@ -3042,7 +3063,7 @@ module Checkoff
3042
3063
  #
3043
3064
  # _@param_ `workspace_name`
3044
3065
  sig { params(task: Asana::Resources::Task, portfolio_name: String, workspace_name: String).returns(T::Boolean) }
3045
- def in_portfolio_named?(task, portfolio_name, workspace_name: @workspaces.default_workspace.name); end
3066
+ def in_portfolio_named?(task, portfolio_name, workspace_name: T.must(@workspaces.default_workspace.name)); end
3046
3067
 
3047
3068
  # sord warn - Asana::Resources::Task wasn't able to be resolved to a constant in this project
3048
3069
  # True if the task is in a project which is in the given portfolio
@@ -3053,7 +3074,7 @@ module Checkoff
3053
3074
  #
3054
3075
  # _@param_ `workspace_name`
3055
3076
  sig { params(task: Asana::Resources::Task, portfolio_name: String, workspace_name: String).returns(T::Boolean) }
3056
- def in_portfolio_more_than_once?(task, portfolio_name, workspace_name: @workspaces.default_workspace.name); end
3077
+ def in_portfolio_more_than_once?(task, portfolio_name, workspace_name: T.must(@workspaces.default_workspace.name)); end
3057
3078
 
3058
3079
  sig { returns(T::Hash[T.untyped, T.untyped]) }
3059
3080
  def as_cache_key; end
@@ -3773,7 +3794,7 @@ module Checkoff
3773
3794
  def tasks(workspace_name, project_name, section_name, only_uncompleted: true, extra_fields: []); end
3774
3795
 
3775
3796
  # Pulls just names of tasks from a given section.
3776
- # @sg-ignore
3797
+ # @sg-ignore Task#name is nilable; task names are assumed present here
3777
3798
  #
3778
3799
  # _@param_ `workspace_name`
3779
3800
  #
@@ -4791,15 +4812,15 @@ module Checkoff
4791
4812
  sig { params(task: Asana::Resources::Task, task_selector: T.any(Symbol, T::Array[T.any(Symbol, Integer, T::Array[T.untyped])])).returns(T::Boolean) }
4792
4813
  def filter_via_task_selector(task, task_selector); end
4793
4814
 
4794
- # @sg-ignore
4815
+ # @sg-ignore `x || raise(...)` isn't inferred as narrowing away the nil branch
4795
4816
  sig { returns(String) }
4796
4817
  def self.project_name; end
4797
4818
 
4798
- # @sg-ignore
4819
+ # @sg-ignore `x || raise(...)` isn't inferred as narrowing away the nil branch
4799
4820
  sig { returns(String) }
4800
4821
  def self.workspace_name; end
4801
4822
 
4802
- # @sg-ignore
4823
+ # @sg-ignore `x || raise(...)` isn't inferred as narrowing away the nil branch
4803
4824
  sig { returns([Symbol, T::Array[T.untyped]]) }
4804
4825
  def self.task_selector; end
4805
4826
 
@@ -5318,7 +5339,7 @@ module Checkoff
5318
5339
  sig { params(date_url_params: T::Hash[String, T::Array[String]]).void }
5319
5340
  def initialize(date_url_params:); end
5320
5341
 
5321
- # @sg-ignore
5342
+ # @sg-ignore out can genuinely be nil if none of the 3 known prefixes matched; relies on the raise above it
5322
5343
  sig { returns([T::Hash[String, String], T::Array[T.any(Symbol, T::Array[T.untyped])]]) }
5323
5344
  def convert; end
5324
5345
 
@@ -5350,7 +5371,7 @@ module Checkoff
5350
5371
  sig { params(prefix: String).returns([T::Hash[String, String], T::Array[T.any(Symbol, T::Array[T.untyped])]]) }
5351
5372
  def handle_within_next(prefix); end
5352
5373
 
5353
- # @sg-ignore
5374
+ # @sg-ignore value.length == 1 guard above isn't inferred as narrowing value[0] to non-nil
5354
5375
  #
5355
5376
  # _@param_ `param_key`
5356
5377
  sig { params(param_key: String).returns(String) }
@@ -5517,14 +5538,13 @@ module Checkoff
5517
5538
  def convert; end
5518
5539
 
5519
5540
  # https://developers.asana.com/docs/search-tasks-in-a-workspace
5520
- # @sg-ignore
5521
5541
  #
5522
5542
  # _@param_ `key` — the name of the search url param
5523
5543
  #
5524
5544
  # _@param_ `values` — the values of the search url param
5525
5545
  #
5526
- # _@return_ — the converted params
5527
- sig { params(key: String, values: T::Array[String]).returns(T::Hash[String, String]) }
5546
+ # _@return_ — the converted params, as an alternating key/value flat array
5547
+ sig { params(key: String, values: T::Array[String]).returns(T::Array[String]) }
5528
5548
  def convert_arg(key, values); end
5529
5549
 
5530
5550
  sig { returns(T::Hash[String, T::Array[String]]) }
@@ -5557,7 +5577,7 @@ module Checkoff
5557
5577
  sig { returns(T::Hash[String, T::Hash[T.untyped, T.untyped]]) }
5558
5578
  def by_custom_field; end
5559
5579
 
5560
- # @sg-ignore
5580
+ # @sg-ignore `unless variant_class.nil?` return value isn't inferred as the declared tuple type
5561
5581
  #
5562
5582
  # _@param_ `gid`
5563
5583
  #
@@ -5565,7 +5585,7 @@ module Checkoff
5565
5585
  sig { params(gid: String, single_custom_field_params: T::Hash[String, T::Array[String]]).returns([T::Hash[String, String], T::Array[T.any(Symbol, T::Array[T.untyped])]]) }
5566
5586
  def convert_single_custom_field_params(gid, single_custom_field_params); end
5567
5587
 
5568
- # @sg-ignore
5588
+ # @sg-ignore split(...)[n]'s nilable Array indexing isn't inferred as the declared String return
5569
5589
  #
5570
5590
  # _@param_ `key`
5571
5591
  sig { params(key: String).returns(String) }
@@ -5803,20 +5823,20 @@ module Checkoff
5803
5823
  sig { returns(T::Hash[T.untyped, T.untyped]) }
5804
5824
  def initializer_kwargs; end
5805
5825
 
5806
- # @sg-ignore
5826
+ # @sg-ignore abstract method always raises; declared type documents the override contract, not this body
5807
5827
  sig { returns(T::Array[T.class_of(Checkoff::SelectorClasses::FunctionEvaluator)]) }
5808
5828
  def function_evaluators; end
5809
5829
 
5810
5830
  # _@param_ `selector`
5811
5831
  #
5812
5832
  # _@param_ `evaluator`
5813
- sig { params(selector: T::Array[T.untyped], evaluator: Checkoff::SelectorClasses::FunctionEvaluator).returns(T::Array[T.untyped]) }
5833
+ sig { params(selector: T.any(Symbol, T::Array[T.untyped]), evaluator: Checkoff::SelectorClasses::FunctionEvaluator).returns(T::Array[T.untyped]) }
5814
5834
  def evaluate_args(selector, evaluator); end
5815
5835
 
5816
5836
  # _@param_ `selector`
5817
5837
  #
5818
5838
  # _@param_ `evaluator`
5819
- sig { params(selector: T::Array[T.untyped], evaluator: Checkoff::SelectorClasses::FunctionEvaluator).returns(T.nilable(T.any(T::Boolean, Object))) }
5839
+ sig { params(selector: T.any(Symbol, T::Array[T.untyped]), evaluator: Checkoff::SelectorClasses::FunctionEvaluator).returns(T.nilable(T.any(T::Boolean, Object))) }
5820
5840
  def try_this_evaluator(selector, evaluator); end
5821
5841
 
5822
5842
  sig { returns(Asana::Resources::Resource) }
@@ -5850,8 +5870,6 @@ module Checkoff
5850
5870
  def evaluate_arg?(_index); end
5851
5871
 
5852
5872
  # sord warn - Asana::Resources::Task wasn't able to be resolved to a constant in this project
5853
- # @sg-ignore
5854
- #
5855
5873
  # _@param_ `task`
5856
5874
  #
5857
5875
  # _@param_ `section_name_prefix`
@@ -5869,8 +5887,6 @@ module Checkoff
5869
5887
  def evaluate_arg?(_index); end
5870
5888
 
5871
5889
  # sord warn - Asana::Resources::Task wasn't able to be resolved to a constant in this project
5872
- # @sg-ignore
5873
- #
5874
5890
  # _@param_ `task`
5875
5891
  #
5876
5892
  # _@param_ `section_name`
@@ -5888,7 +5904,8 @@ module Checkoff
5888
5904
  def evaluate_arg?(_index); end
5889
5905
 
5890
5906
  # sord warn - Asana::Resources::Task wasn't able to be resolved to a constant in this project
5891
- # @sg-ignore
5907
+ # @sg-ignore Hash#fetch generic<X> leak on rbs >= 4.1.0, fix in progress upstream
5908
+ # https://github.com/castwide/solargraph/pull/1228
5892
5909
  #
5893
5910
  # _@param_ `task`
5894
5911
  #
@@ -5924,8 +5941,6 @@ module Checkoff
5924
5941
  def evaluate_arg?(_index); end
5925
5942
 
5926
5943
  # sord warn - Asana::Resources::Task wasn't able to be resolved to a constant in this project
5927
- # @sg-ignore
5928
- #
5929
5944
  # _@param_ `task`
5930
5945
  #
5931
5946
  # _@param_ `tag_name`
@@ -6278,10 +6293,6 @@ module Checkoff
6278
6293
 
6279
6294
  # sord warn - Asana::Resources::Task wasn't able to be resolved to a constant in this project
6280
6295
  # sord warn - Asana::Resources::Project wasn't able to be resolved to a constant in this project
6281
- # @sg-ignore
6282
- # @sg-ignore
6283
- # @sg-ignore
6284
- #
6285
6296
  # _@param_ `resource`
6286
6297
  #
6287
6298
  # _@param_ `custom_field_gid`
@@ -6301,9 +6312,6 @@ module Checkoff
6301
6312
 
6302
6313
  # sord warn - Asana::Resources::Task wasn't able to be resolved to a constant in this project
6303
6314
  # sord warn - Asana::Resources::Project wasn't able to be resolved to a constant in this project
6304
- # @sg-ignore
6305
- # @sg-ignore
6306
- #
6307
6315
  # _@param_ `resource`
6308
6316
  #
6309
6317
  # _@param_ `custom_field_gid`
@@ -6325,9 +6333,6 @@ module Checkoff
6325
6333
 
6326
6334
  # sord warn - Asana::Resources::Task wasn't able to be resolved to a constant in this project
6327
6335
  # sord warn - Asana::Resources::Project wasn't able to be resolved to a constant in this project
6328
- # @sg-ignore
6329
- # @sg-ignore
6330
- #
6331
6336
  # _@param_ `resource`
6332
6337
  #
6333
6338
  # _@param_ `custom_field_name`
@@ -6389,7 +6394,7 @@ module Checkoff
6389
6394
 
6390
6395
  # sord warn - Asana::Resources::Task wasn't able to be resolved to a constant in this project
6391
6396
  # sord warn - Asana::Resources::Project wasn't able to be resolved to a constant in this project
6392
- # @sg-ignore
6397
+ # @sg-ignore selector is only String here per matches?'s is_a?(String) check, in another method
6393
6398
  #
6394
6399
  # _@param_ `_resource`
6395
6400
  sig { params(_resource: T.any(Asana::Resources::Task, Asana::Resources::Project)).returns(String) }
@@ -6424,7 +6429,7 @@ module Checkoff
6424
6429
  def matches?; end
6425
6430
 
6426
6431
  # sord warn - Asana::Resources::Project wasn't able to be resolved to a constant in this project
6427
- # @sg-ignore
6432
+ # @sg-ignore nilable return from an @!parse-declared method isn't inferred
6428
6433
  #
6429
6434
  # _@param_ `resource`
6430
6435
  sig { params(resource: Asana::Resources::Project).returns(T.nilable(String)) }
@@ -6439,8 +6444,6 @@ module Checkoff
6439
6444
  def matches?; end
6440
6445
 
6441
6446
  # sord warn - Asana::Resources::Project wasn't able to be resolved to a constant in this project
6442
- # @sg-ignore
6443
- #
6444
6447
  # _@param_ `project`
6445
6448
  #
6446
6449
  # _@param_ `period` — - :now_or_before or :this_week
@@ -6456,10 +6459,6 @@ module Checkoff
6456
6459
  def matches?; end
6457
6460
 
6458
6461
  # sord warn - Asana::Resources::Project wasn't able to be resolved to a constant in this project
6459
- # @sg-ignore
6460
- #
6461
- # @sg-ignore
6462
- #
6463
6462
  # _@param_ `project`
6464
6463
  #
6465
6464
  # _@param_ `portfolio_name`
@@ -6524,7 +6523,7 @@ module Checkoff
6524
6523
  def matches?; end
6525
6524
 
6526
6525
  # sord warn - Asana::Resources::Section wasn't able to be resolved to a constant in this project
6527
- # @sg-ignore
6526
+ # @sg-ignore String, nil safe-nav chain isn't inferred as returning Boolean
6528
6527
  #
6529
6528
  # _@param_ `section`
6530
6529
  sig { params(section: Asana::Resources::Section).returns(T::Boolean) }
@@ -6539,8 +6538,6 @@ module Checkoff
6539
6538
  def matches?; end
6540
6539
 
6541
6540
  # sord warn - Asana::Resources::Section wasn't able to be resolved to a constant in this project
6542
- # @sg-ignore
6543
- #
6544
6541
  # _@param_ `section`
6545
6542
  sig { params(section: Asana::Resources::Section).returns(T::Boolean) }
6546
6543
  def evaluate(section); end