checkoff 0.255.0 → 0.257.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/lib/checkoff/attachments.rb +12 -11
- data/lib/checkoff/cli.rb +1 -4
- data/lib/checkoff/clients.rb +2 -2
- data/lib/checkoff/custom_fields.rb +9 -5
- data/lib/checkoff/internal/asana_event_enrichment.rb +9 -11
- data/lib/checkoff/internal/config_loader.rb +2 -2
- data/lib/checkoff/internal/logging.rb +2 -2
- data/lib/checkoff/internal/search_url/parser.rb +7 -5
- data/lib/checkoff/internal/search_url/results_merger.rb +1 -2
- data/lib/checkoff/internal/selector_classes/common.rb +2 -1
- data/lib/checkoff/internal/selector_classes/function_evaluator.rb +2 -2
- data/lib/checkoff/internal/selector_classes/task.rb +2 -1
- data/lib/checkoff/internal/task_timing.rb +6 -5
- data/lib/checkoff/internal/thread_local.rb +2 -1
- data/lib/checkoff/my_tasks.rb +3 -1
- data/lib/checkoff/portfolios.rb +1 -1
- data/lib/checkoff/projects.rb +4 -3
- data/lib/checkoff/sections.rb +4 -2
- data/lib/checkoff/subtasks.rb +2 -1
- data/lib/checkoff/tags.rb +3 -2
- data/lib/checkoff/task_searches.rb +6 -3
- data/lib/checkoff/tasks.rb +8 -7
- data/lib/checkoff/timelines.rb +7 -3
- data/lib/checkoff/timing.rb +4 -8
- data/lib/checkoff/version.rb +1 -1
- data/lib/checkoff/workspaces.rb +5 -2
- data/rbi/checkoff.rbi +101 -57
- data/sig/checkoff.rbs +92 -55
- metadata +2 -2
data/lib/checkoff/timing.rb
CHANGED
|
@@ -44,18 +44,15 @@ module Checkoff
|
|
|
44
44
|
|
|
45
45
|
return next_week?(date_or_time) if period == :next_week
|
|
46
46
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
sunday].include?(period)
|
|
47
|
+
return day_of_week?(date_or_time, T.cast(period, Symbol)) if %i[monday tuesday wednesday thursday friday
|
|
48
|
+
saturday sunday].include?(period)
|
|
50
49
|
|
|
51
50
|
return true if period == :indefinite
|
|
52
51
|
|
|
53
52
|
return now_or_before?(date_or_time) if period == :now_or_before
|
|
54
53
|
|
|
55
54
|
if period.is_a?(Array)
|
|
56
|
-
|
|
57
|
-
# @type [Symbol]
|
|
58
|
-
period_name = period.first
|
|
55
|
+
period_name = T.cast(period.first, Symbol)
|
|
59
56
|
args = period[1..]
|
|
60
57
|
|
|
61
58
|
return compound_in_period?(date_or_time, period_name, *args)
|
|
@@ -209,7 +206,7 @@ module Checkoff
|
|
|
209
206
|
|
|
210
207
|
# @param date_or_time [Date,Time,nil]
|
|
211
208
|
# @param period_name [Symbol]
|
|
212
|
-
# @param args [Object]
|
|
209
|
+
# @param args [Array<Object>]
|
|
213
210
|
def compound_in_period?(date_or_time, period_name, *args)
|
|
214
211
|
return less_than_n_days_ago?(date_or_time, *args) if period_name == :less_than_n_days_ago
|
|
215
212
|
|
|
@@ -225,7 +222,6 @@ module Checkoff
|
|
|
225
222
|
|
|
226
223
|
return between_relative_days?(date_or_time, *args) if period_name == :between_relative_days
|
|
227
224
|
|
|
228
|
-
# @sg-ignore
|
|
229
225
|
raise "Teach me how to handle period [#{period_name.inspect}, #{args.map(&:inspect).join(', ')}]"
|
|
230
226
|
end
|
|
231
227
|
|
data/lib/checkoff/version.rb
CHANGED
data/lib/checkoff/workspaces.rb
CHANGED
|
@@ -44,7 +44,8 @@ module Checkoff
|
|
|
44
44
|
cache_method :workspace, LONG_CACHE_TIME
|
|
45
45
|
|
|
46
46
|
# @return [Asana::Resources::Workspace]
|
|
47
|
-
# @sg-ignore
|
|
47
|
+
# @sg-ignore @asana_workspace.find_by_id return type could not be inferred — calling a
|
|
48
|
+
# class method through a Class<T>-typed ivar is a known Solargraph dispatch limitation
|
|
48
49
|
def default_workspace
|
|
49
50
|
@asana_workspace.find_by_id(client, default_workspace_gid)
|
|
50
51
|
end
|
|
@@ -61,7 +62,9 @@ module Checkoff
|
|
|
61
62
|
end
|
|
62
63
|
|
|
63
64
|
# @return [String]
|
|
64
|
-
# @sg-ignore
|
|
65
|
+
# @sg-ignore @config.fetch return type could not be inferred — @config is intentionally
|
|
66
|
+
# dual-typed [Hash, EnvFallbackConfigLoader] throughout this codebase; Solargraph can't
|
|
67
|
+
# unify #fetch across that union
|
|
65
68
|
def default_workspace_gid
|
|
66
69
|
@config.fetch(:default_workspace_gid)
|
|
67
70
|
end
|
data/rbi/checkoff.rbi
CHANGED
|
@@ -82,7 +82,7 @@ module Overcommit
|
|
|
82
82
|
end
|
|
83
83
|
|
|
84
84
|
module Checkoff
|
|
85
|
-
VERSION = '0.
|
|
85
|
+
VERSION = '0.257.0'
|
|
86
86
|
|
|
87
87
|
class Attachments
|
|
88
88
|
include Logging
|
|
@@ -2449,7 +2449,7 @@ end
|
|
|
2449
2449
|
# typed: ignore
|
|
2450
2450
|
# Command-line and gem client for Asana (unofficial)
|
|
2451
2451
|
module Checkoff
|
|
2452
|
-
VERSION = T.let('0.
|
|
2452
|
+
VERSION = T.let('0.257.0', T.untyped)
|
|
2453
2453
|
|
|
2454
2454
|
# Move tasks from one place to another
|
|
2455
2455
|
class MvSubcommand
|
|
@@ -2536,7 +2536,7 @@ module Checkoff
|
|
|
2536
2536
|
def run; end
|
|
2537
2537
|
|
|
2538
2538
|
# _@param_ `project_arg`
|
|
2539
|
-
sig { params(project_arg: String).returns(T.any(Symbol, String)) }
|
|
2539
|
+
sig { params(project_arg: T.any(Symbol, String)).returns(T.any(Symbol, String)) }
|
|
2540
2540
|
def project_arg_to_name(project_arg); end
|
|
2541
2541
|
|
|
2542
2542
|
# Returns the value of attribute from_workspace_name.
|
|
@@ -2792,7 +2792,7 @@ module Checkoff
|
|
|
2792
2792
|
def tasks_by_tag_gid(workspace_name, tag_gid, only_uncompleted: true, extra_fields: []); end
|
|
2793
2793
|
|
|
2794
2794
|
# sord warn - Asana::Resources::Tag wasn't able to be resolved to a constant in this project
|
|
2795
|
-
# @sg-ignore
|
|
2795
|
+
# @sg-ignore nil check above is not flow-sensitive
|
|
2796
2796
|
#
|
|
2797
2797
|
# _@param_ `workspace_name`
|
|
2798
2798
|
#
|
|
@@ -2973,7 +2973,8 @@ module Checkoff
|
|
|
2973
2973
|
# sord warn - Asana::Resources::Task wasn't able to be resolved to a constant in this project
|
|
2974
2974
|
# Add a task
|
|
2975
2975
|
#
|
|
2976
|
-
# @sg-ignore
|
|
2976
|
+
# @sg-ignore @asana_task.create return type could not be inferred — calling a class method
|
|
2977
|
+
# through a Class<T>-typed ivar is a known Solargraph dispatch limitation
|
|
2977
2978
|
#
|
|
2978
2979
|
# _@param_ `name`
|
|
2979
2980
|
#
|
|
@@ -2995,7 +2996,6 @@ module Checkoff
|
|
|
2995
2996
|
# sord warn - Asana::Resources::Task wasn't able to be resolved to a constant in this project
|
|
2996
2997
|
# True if any of the task's dependencies are marked incomplete
|
|
2997
2998
|
#
|
|
2998
|
-
# @sg-ignore
|
|
2999
2999
|
# Include 'dependencies.gid' in extra_fields of task passed in.
|
|
3000
3000
|
#
|
|
3001
3001
|
# _@param_ `task`
|
|
@@ -3088,7 +3088,9 @@ module Checkoff
|
|
|
3088
3088
|
sig { returns(Checkoff::Projects) }
|
|
3089
3089
|
def projects; end
|
|
3090
3090
|
|
|
3091
|
-
# @sg-ignore
|
|
3091
|
+
# @sg-ignore @config.fetch return type could not be inferred — @config is intentionally
|
|
3092
|
+
# dual-typed [Hash, EnvFallbackConfigLoader] throughout this codebase; Solargraph can't
|
|
3093
|
+
# unify #fetch across that union
|
|
3092
3094
|
sig { returns(String) }
|
|
3093
3095
|
def default_assignee_gid; end
|
|
3094
3096
|
|
|
@@ -3115,7 +3117,7 @@ module Checkoff
|
|
|
3115
3117
|
sig { params(message: T.nilable(Object), block: T.untyped).void }
|
|
3116
3118
|
def finer(message = nil, &block); end
|
|
3117
3119
|
|
|
3118
|
-
# @sg-ignore
|
|
3120
|
+
# @sg-ignore return type could not be inferred — cascades from the ENV.fetch RBS gap below
|
|
3119
3121
|
sig { returns(Symbol) }
|
|
3120
3122
|
def log_level; end
|
|
3121
3123
|
|
|
@@ -3223,7 +3225,7 @@ module Checkoff
|
|
|
3223
3225
|
sig { params(message: T.nilable(Object), block: T.untyped).void }
|
|
3224
3226
|
def finer(message = nil, &block); end
|
|
3225
3227
|
|
|
3226
|
-
# @sg-ignore
|
|
3228
|
+
# @sg-ignore return type could not be inferred — cascades from the ENV.fetch RBS gap below
|
|
3227
3229
|
sig { returns(Symbol) }
|
|
3228
3230
|
def log_level; end
|
|
3229
3231
|
|
|
@@ -3343,7 +3345,7 @@ module Checkoff
|
|
|
3343
3345
|
# _@param_ `period_name`
|
|
3344
3346
|
#
|
|
3345
3347
|
# _@param_ `args`
|
|
3346
|
-
sig { params(date_or_time: T.nilable(T.any(Date, Time)), period_name: Symbol, args: Object).returns(T::Boolean) }
|
|
3348
|
+
sig { params(date_or_time: T.nilable(T.any(Date, Time)), period_name: Symbol, args: T::Array[Object]).returns(T::Boolean) }
|
|
3347
3349
|
def compound_in_period?(date_or_time, period_name, *args); end
|
|
3348
3350
|
|
|
3349
3351
|
sig { void }
|
|
@@ -3372,7 +3374,7 @@ module Checkoff
|
|
|
3372
3374
|
sig { params(message: T.nilable(Object), block: T.untyped).void }
|
|
3373
3375
|
def finer(message = nil, &block); end
|
|
3374
3376
|
|
|
3375
|
-
# @sg-ignore
|
|
3377
|
+
# @sg-ignore return type could not be inferred — cascades from the ENV.fetch RBS gap below
|
|
3376
3378
|
sig { returns(Symbol) }
|
|
3377
3379
|
def log_level; end
|
|
3378
3380
|
end
|
|
@@ -3525,7 +3527,7 @@ module Checkoff
|
|
|
3525
3527
|
def project(workspace_name, project_name, extra_fields: []); end
|
|
3526
3528
|
|
|
3527
3529
|
# sord warn - Asana::Resources::Project wasn't able to be resolved to a constant in this project
|
|
3528
|
-
# @sg-ignore
|
|
3530
|
+
# @sg-ignore nil check above is not flow-sensitive
|
|
3529
3531
|
#
|
|
3530
3532
|
# _@param_ `workspace_name`
|
|
3531
3533
|
#
|
|
@@ -3645,7 +3647,7 @@ module Checkoff
|
|
|
3645
3647
|
sig { params(message: T.nilable(Object), block: T.untyped).void }
|
|
3646
3648
|
def finer(message = nil, &block); end
|
|
3647
3649
|
|
|
3648
|
-
# @sg-ignore
|
|
3650
|
+
# @sg-ignore return type could not be inferred — cascades from the ENV.fetch RBS gap below
|
|
3649
3651
|
sig { returns(Symbol) }
|
|
3650
3652
|
def log_level; end
|
|
3651
3653
|
|
|
@@ -3730,7 +3732,7 @@ module Checkoff
|
|
|
3730
3732
|
# _@param_ `extra_fields`
|
|
3731
3733
|
sig do
|
|
3732
3734
|
params(
|
|
3733
|
-
workspace_name: String,
|
|
3735
|
+
workspace_name: T.any(String, Symbol),
|
|
3734
3736
|
project_name: T.any(String, Symbol),
|
|
3735
3737
|
only_uncompleted: T::Boolean,
|
|
3736
3738
|
extra_fields: T::Array[String]
|
|
@@ -3909,7 +3911,7 @@ module Checkoff
|
|
|
3909
3911
|
sig { params(message: T.nilable(Object), block: T.untyped).void }
|
|
3910
3912
|
def finer(message = nil, &block); end
|
|
3911
3913
|
|
|
3912
|
-
# @sg-ignore
|
|
3914
|
+
# @sg-ignore return type could not be inferred — cascades from the ENV.fetch RBS gap below
|
|
3913
3915
|
sig { returns(Symbol) }
|
|
3914
3916
|
def log_level; end
|
|
3915
3917
|
|
|
@@ -3987,10 +3989,10 @@ module Checkoff
|
|
|
3987
3989
|
# expected to move to the new-style way of representing sections
|
|
3988
3990
|
# as memberships with a separate API within a task.
|
|
3989
3991
|
#
|
|
3990
|
-
# @sg-ignore
|
|
3992
|
+
# @sg-ignore Checkoff::Subtasks#subtask_section? return type could not be inferred
|
|
3991
3993
|
#
|
|
3992
3994
|
# _@param_ `subtask`
|
|
3993
|
-
sig { params(subtask: Asana::Resources::Task).returns(T::Boolean) }
|
|
3995
|
+
sig { params(subtask: Asana::Resources::Task).returns(T.nilable(T::Boolean)) }
|
|
3994
3996
|
def subtask_section?(subtask); end
|
|
3995
3997
|
|
|
3996
3998
|
# sord warn - Asana::Resources::Task wasn't able to be resolved to a constant in this project
|
|
@@ -4209,7 +4211,7 @@ module Checkoff
|
|
|
4209
4211
|
def initialize(config: Checkoff::Internal::ConfigLoader.load(:asana), clients: Checkoff::Clients.new(config:), client: clients.client, projects: Checkoff::Projects.new(config:, client:), workspaces: Checkoff::Workspaces.new(config:, client:)); end
|
|
4210
4212
|
|
|
4211
4213
|
# sord warn - Asana::Resources::Portfolio wasn't able to be resolved to a constant in this project
|
|
4212
|
-
# @sg-ignore
|
|
4214
|
+
# @sg-ignore nil check above is not flow-sensitive
|
|
4213
4215
|
#
|
|
4214
4216
|
# _@param_ `workspace_name`
|
|
4215
4217
|
#
|
|
@@ -4292,7 +4294,8 @@ module Checkoff
|
|
|
4292
4294
|
def workspace(workspace_name); end
|
|
4293
4295
|
|
|
4294
4296
|
# sord warn - Asana::Resources::Workspace wasn't able to be resolved to a constant in this project
|
|
4295
|
-
# @sg-ignore
|
|
4297
|
+
# @sg-ignore @asana_workspace.find_by_id return type could not be inferred — calling a
|
|
4298
|
+
# class method through a Class<T>-typed ivar is a known Solargraph dispatch limitation
|
|
4296
4299
|
sig { returns(Asana::Resources::Workspace) }
|
|
4297
4300
|
def default_workspace; end
|
|
4298
4301
|
|
|
@@ -4303,7 +4306,9 @@ module Checkoff
|
|
|
4303
4306
|
sig { params(workspace_name: T.any(String, Symbol)).returns(Asana::Resources::Workspace) }
|
|
4304
4307
|
def workspace_or_raise(workspace_name); end
|
|
4305
4308
|
|
|
4306
|
-
# @sg-ignore
|
|
4309
|
+
# @sg-ignore @config.fetch return type could not be inferred — @config is intentionally
|
|
4310
|
+
# dual-typed [Hash, EnvFallbackConfigLoader] throughout this codebase; Solargraph can't
|
|
4311
|
+
# unify #fetch across that union
|
|
4307
4312
|
sig { returns(String) }
|
|
4308
4313
|
def default_workspace_gid; end
|
|
4309
4314
|
|
|
@@ -4340,6 +4345,7 @@ module Checkoff
|
|
|
4340
4345
|
end
|
|
4341
4346
|
def initialize(config: Checkoff::Internal::ConfigLoader.load(:asana), workspaces: Checkoff::Workspaces.new(config:), clients: Checkoff::Clients.new(config:), client: clients.client); end
|
|
4342
4347
|
|
|
4348
|
+
# sord warn - Asana::Resources::Task wasn't able to be resolved to a constant in this project
|
|
4343
4349
|
# sord warn - Asana::Resources::Attachment wasn't able to be resolved to a constant in this project
|
|
4344
4350
|
# _@param_ `url`
|
|
4345
4351
|
#
|
|
@@ -4353,7 +4359,7 @@ module Checkoff
|
|
|
4353
4359
|
sig do
|
|
4354
4360
|
params(
|
|
4355
4361
|
url: String,
|
|
4356
|
-
resource: Asana::Resources::
|
|
4362
|
+
resource: Asana::Resources::Task,
|
|
4357
4363
|
attachment_name: T.nilable(String),
|
|
4358
4364
|
verify_mode: Integer,
|
|
4359
4365
|
just_the_url: T::Boolean
|
|
@@ -4361,7 +4367,6 @@ module Checkoff
|
|
|
4361
4367
|
end
|
|
4362
4368
|
def create_attachment_from_url!(url, resource, attachment_name: nil, verify_mode: OpenSSL::SSL::VERIFY_PEER, just_the_url: false); end
|
|
4363
4369
|
|
|
4364
|
-
# sord warn - URI wasn't able to be resolved to a constant in this project
|
|
4365
4370
|
# Writes contents of URL to a temporary file with the same
|
|
4366
4371
|
# extension as the URL using Net::HTTP, raising an exception if
|
|
4367
4372
|
# not succesful
|
|
@@ -4369,7 +4374,7 @@ module Checkoff
|
|
|
4369
4374
|
# _@param_ `uri`
|
|
4370
4375
|
#
|
|
4371
4376
|
# _@param_ `verify_mode` — - e.g., OpenSSL::SSL::VERIFY_NONE,OpenSSL::SSL::VERIFY_PEER
|
|
4372
|
-
sig { params(uri: URI, verify_mode: Integer, block: T.untyped).returns(Object) }
|
|
4377
|
+
sig { params(uri: URI::Generic, verify_mode: Integer, block: T.untyped).returns(Object) }
|
|
4373
4378
|
def download_uri(uri, verify_mode: OpenSSL::SSL::VERIFY_PEER, &block); end
|
|
4374
4379
|
|
|
4375
4380
|
# sord duck - #read_body looks like a duck type, replacing with untyped
|
|
@@ -4377,6 +4382,7 @@ module Checkoff
|
|
|
4377
4382
|
sig { params(response: T.untyped).void }
|
|
4378
4383
|
def write_tempfile_from_response(response); end
|
|
4379
4384
|
|
|
4385
|
+
# sord warn - Asana::Resources::Task wasn't able to be resolved to a constant in this project
|
|
4380
4386
|
# sord warn - Asana::Resources::Attachment wasn't able to be resolved to a constant in this project
|
|
4381
4387
|
# _@param_ `url`
|
|
4382
4388
|
#
|
|
@@ -4388,20 +4394,21 @@ module Checkoff
|
|
|
4388
4394
|
sig do
|
|
4389
4395
|
params(
|
|
4390
4396
|
url: String,
|
|
4391
|
-
resource: Asana::Resources::
|
|
4397
|
+
resource: Asana::Resources::Task,
|
|
4392
4398
|
attachment_name: T.nilable(String),
|
|
4393
4399
|
verify_mode: Integer
|
|
4394
4400
|
).returns(Asana::Resources::Attachment)
|
|
4395
4401
|
end
|
|
4396
4402
|
def create_attachment_from_downloaded_url!(url, resource, attachment_name:, verify_mode: OpenSSL::SSL::VERIFY_PEER); end
|
|
4397
4403
|
|
|
4404
|
+
# sord warn - Asana::Resources::Task wasn't able to be resolved to a constant in this project
|
|
4398
4405
|
# sord warn - Asana::Resources::Attachment wasn't able to be resolved to a constant in this project
|
|
4399
4406
|
# _@param_ `url`
|
|
4400
4407
|
#
|
|
4401
4408
|
# _@param_ `resource`
|
|
4402
4409
|
#
|
|
4403
4410
|
# _@param_ `attachment_name`
|
|
4404
|
-
sig { params(url: String, resource: Asana::Resources::
|
|
4411
|
+
sig { params(url: String, resource: Asana::Resources::Task, attachment_name: T.nilable(String)).returns(Asana::Resources::Attachment) }
|
|
4405
4412
|
def create_attachment_from_url_alone!(url, resource, attachment_name:); end
|
|
4406
4413
|
|
|
4407
4414
|
# _@param_ `filename`
|
|
@@ -4441,7 +4448,7 @@ module Checkoff
|
|
|
4441
4448
|
sig { params(message: T.nilable(Object), block: T.untyped).void }
|
|
4442
4449
|
def finer(message = nil, &block); end
|
|
4443
4450
|
|
|
4444
|
-
# @sg-ignore
|
|
4451
|
+
# @sg-ignore return type could not be inferred — cascades from the ENV.fetch RBS gap below
|
|
4445
4452
|
sig { returns(Symbol) }
|
|
4446
4453
|
def log_level; end
|
|
4447
4454
|
|
|
@@ -4483,7 +4490,7 @@ module Checkoff
|
|
|
4483
4490
|
client:)); end
|
|
4484
4491
|
|
|
4485
4492
|
# sord warn - Asana::Resources::CustomField wasn't able to be resolved to a constant in this project
|
|
4486
|
-
# @sg-ignore
|
|
4493
|
+
# @sg-ignore nil check above is not flow-sensitive
|
|
4487
4494
|
#
|
|
4488
4495
|
# _@param_ `workspace_name`
|
|
4489
4496
|
#
|
|
@@ -4508,7 +4515,9 @@ module Checkoff
|
|
|
4508
4515
|
|
|
4509
4516
|
# sord warn - Asana::Resources::Project wasn't able to be resolved to a constant in this project
|
|
4510
4517
|
# sord warn - Asana::Resources::Task wasn't able to be resolved to a constant in this project
|
|
4511
|
-
# @sg-ignore
|
|
4518
|
+
# @sg-ignore Declared return type Array<String> does not match inferred type Array,Array<Array> —
|
|
4519
|
+
# fixing cleanly needs binding enum_value.fetch('name') to a typed local; leaving for a
|
|
4520
|
+
# follow-up code PR to keep this one annotation-only.
|
|
4512
4521
|
#
|
|
4513
4522
|
# _@param_ `resource`
|
|
4514
4523
|
#
|
|
@@ -4526,7 +4535,7 @@ module Checkoff
|
|
|
4526
4535
|
|
|
4527
4536
|
# sord warn - Asana::Resources::Task wasn't able to be resolved to a constant in this project
|
|
4528
4537
|
# sord warn - Asana::Resources::Project wasn't able to be resolved to a constant in this project
|
|
4529
|
-
# @sg-ignore
|
|
4538
|
+
# @sg-ignore nil check above is not flow-sensitive
|
|
4530
4539
|
#
|
|
4531
4540
|
# _@param_ `resource`
|
|
4532
4541
|
#
|
|
@@ -4536,7 +4545,7 @@ module Checkoff
|
|
|
4536
4545
|
|
|
4537
4546
|
# sord warn - Asana::Resources::Project wasn't able to be resolved to a constant in this project
|
|
4538
4547
|
# sord warn - Asana::Resources::Task wasn't able to be resolved to a constant in this project
|
|
4539
|
-
# @sg-ignore
|
|
4548
|
+
# @sg-ignore nil check above is not flow-sensitive
|
|
4540
4549
|
#
|
|
4541
4550
|
# _@param_ `resource`
|
|
4542
4551
|
#
|
|
@@ -4544,7 +4553,9 @@ module Checkoff
|
|
|
4544
4553
|
sig { params(resource: T.any(Asana::Resources::Project, Asana::Resources::Task), custom_field_gid: String).returns(T::Hash[T.untyped, T.untyped]) }
|
|
4545
4554
|
def resource_custom_field_by_gid_or_raise(resource, custom_field_gid); end
|
|
4546
4555
|
|
|
4547
|
-
# @sg-ignore
|
|
4556
|
+
# @sg-ignore Declared return type Array<Hash> does not match inferred type Array,Hash,Array<Hash> —
|
|
4557
|
+
# fixing cleanly needs restructuring the case/when to bind each branch to a typed local; leaving
|
|
4558
|
+
# for a follow-up code PR to keep this one annotation-only.
|
|
4548
4559
|
#
|
|
4549
4560
|
# _@param_ `custom_field`
|
|
4550
4561
|
sig { params(custom_field: T::Hash[String, T.any(T::Hash[T.untyped, T.untyped], T::Array[T::Hash[T.untyped, T.untyped]])]).returns(T::Array[T::Hash[T.untyped, T.untyped]]) }
|
|
@@ -4689,10 +4700,11 @@ module Checkoff
|
|
|
4689
4700
|
sig { params(api_params: T::Hash[String, Object], workspace_gid: String, extra_fields: T::Array[String]).returns(T::Enumerable[Asana::Resources::Task]) }
|
|
4690
4701
|
def iterated_raw_task_search(api_params, workspace_gid:, extra_fields:); end
|
|
4691
4702
|
|
|
4692
|
-
# @sg-ignore
|
|
4703
|
+
# @sg-ignore return type could not be inferred — bracket access on a Hash{Symbol=>undefined}
|
|
4704
|
+
# local doesn't narrow even with a T.cast on the return expression
|
|
4693
4705
|
#
|
|
4694
4706
|
# _@param_ `extra_fields`
|
|
4695
|
-
sig { params(extra_fields: T::Array[String]).returns(T::Hash[Symbol, T
|
|
4707
|
+
sig { params(extra_fields: T::Array[String]).returns(T::Hash[Symbol, T::Array[String]]) }
|
|
4696
4708
|
def calculate_api_options(extra_fields); end
|
|
4697
4709
|
|
|
4698
4710
|
sig { void }
|
|
@@ -4721,7 +4733,7 @@ module Checkoff
|
|
|
4721
4733
|
sig { params(message: T.nilable(Object), block: T.untyped).void }
|
|
4722
4734
|
def finer(message = nil, &block); end
|
|
4723
4735
|
|
|
4724
|
-
# @sg-ignore
|
|
4736
|
+
# @sg-ignore return type could not be inferred — cascades from the ENV.fetch RBS gap below
|
|
4725
4737
|
sig { returns(Symbol) }
|
|
4726
4738
|
def log_level; end
|
|
4727
4739
|
|
|
@@ -4994,14 +5006,16 @@ module Checkoff
|
|
|
4994
5006
|
def initialize(time_class: Time, date_class: Date, client: Checkoff::Clients.new.client, custom_fields: Checkoff::CustomFields.new(client:)); end
|
|
4995
5007
|
|
|
4996
5008
|
# sord warn - Asana::Resources::Task wasn't able to be resolved to a constant in this project
|
|
4997
|
-
# @sg-ignore
|
|
5009
|
+
# @sg-ignore return type could not be inferred — #to_time called via &. on a Date|Time
|
|
5010
|
+
# union receiver
|
|
4998
5011
|
#
|
|
4999
5012
|
# _@param_ `task`
|
|
5000
5013
|
sig { params(task: Asana::Resources::Task).returns(T.nilable(Time)) }
|
|
5001
5014
|
def start_time(task); end
|
|
5002
5015
|
|
|
5003
5016
|
# sord warn - Asana::Resources::Task wasn't able to be resolved to a constant in this project
|
|
5004
|
-
# @sg-ignore
|
|
5017
|
+
# @sg-ignore return type could not be inferred — #to_time called via &. on a Date|Time
|
|
5018
|
+
# union receiver
|
|
5005
5019
|
#
|
|
5006
5020
|
# _@param_ `task`
|
|
5007
5021
|
sig { params(task: Asana::Resources::Task).returns(T.nilable(Time)) }
|
|
@@ -5041,7 +5055,8 @@ module Checkoff
|
|
|
5041
5055
|
class ThreadLocal
|
|
5042
5056
|
# sord warn - T wasn't able to be resolved to a constant in this project
|
|
5043
5057
|
# sord warn - T wasn't able to be resolved to a constant in this project
|
|
5044
|
-
# @sg-ignore
|
|
5058
|
+
# @sg-ignore return type could not be inferred — Solargraph's generic/yield-return
|
|
5059
|
+
# inference gap for #with_thread_local_variable
|
|
5045
5060
|
#
|
|
5046
5061
|
# _@param_ `name`
|
|
5047
5062
|
#
|
|
@@ -5061,7 +5076,7 @@ module Checkoff
|
|
|
5061
5076
|
sig { params(config: T::Hash[Symbol, T.untyped], sym: Symbol, yaml_filename: String).void }
|
|
5062
5077
|
def initialize(config, sym, yaml_filename); end
|
|
5063
5078
|
|
|
5064
|
-
# @sg-ignore
|
|
5079
|
+
# @sg-ignore return type could not be inferred — cascades from the ENV.fetch RBS gap below
|
|
5065
5080
|
#
|
|
5066
5081
|
# _@param_ `key`
|
|
5067
5082
|
sig { params(key: Symbol).returns(Object) }
|
|
@@ -5180,7 +5195,7 @@ module Checkoff
|
|
|
5180
5195
|
def convert_custom_field_params(custom_field_params); end
|
|
5181
5196
|
|
|
5182
5197
|
# _@param_ `url_params`
|
|
5183
|
-
sig { params(url_params: T::Hash[String, String]).returns([T::Hash[String, T::Array[String]], T::Hash[String, T::Array[String]], T::Hash[String, T::Array[String]]]) }
|
|
5198
|
+
sig { params(url_params: T::Hash[String, T::Array[String]]).returns([T::Hash[String, T::Array[String]], T::Hash[String, T::Array[String]], T::Hash[String, T::Array[String]]]) }
|
|
5184
5199
|
def partition_url_params(url_params); end
|
|
5185
5200
|
end
|
|
5186
5201
|
|
|
@@ -5190,10 +5205,8 @@ module Checkoff
|
|
|
5190
5205
|
sig { params(args: T::Array[T::Hash[String, String]]).returns(T::Hash[String, String]) }
|
|
5191
5206
|
def self.merge_args(*args); end
|
|
5192
5207
|
|
|
5193
|
-
# @sg-ignore
|
|
5194
|
-
#
|
|
5195
5208
|
# _@param_ `task_selectors`
|
|
5196
|
-
sig { params(task_selectors: T::Array[T.any(Symbol, T::Array[T.untyped])]).returns([Symbol, T::Array[T.untyped], T::Array[T.untyped]]) }
|
|
5209
|
+
sig { params(task_selectors: T::Array[T.any(Symbol, T::Array[T.untyped])]).returns(T.any(Symbol, T::Array[T.untyped], [Symbol, T::Array[T.untyped], T::Array[T.untyped]])) }
|
|
5197
5210
|
def self.merge_task_selectors(*task_selectors); end
|
|
5198
5211
|
end
|
|
5199
5212
|
|
|
@@ -5386,6 +5399,10 @@ module Checkoff
|
|
|
5386
5399
|
sig { params(verb: String).returns(T::Array[String]) }
|
|
5387
5400
|
def convert_from_projects_and_sections(verb); end
|
|
5388
5401
|
|
|
5402
|
+
# @sg-ignore abstract method always raises; declared type documents the override contract, not this body
|
|
5403
|
+
sig { returns(T::Array[String]) }
|
|
5404
|
+
def convert; end
|
|
5405
|
+
|
|
5389
5406
|
sig { returns(String) }
|
|
5390
5407
|
attr_reader :key
|
|
5391
5408
|
|
|
@@ -5641,7 +5658,7 @@ module Checkoff
|
|
|
5641
5658
|
sig { params(message: T.nilable(Object), block: T.untyped).void }
|
|
5642
5659
|
def finer(message = nil, &block); end
|
|
5643
5660
|
|
|
5644
|
-
# @sg-ignore
|
|
5661
|
+
# @sg-ignore return type could not be inferred — cascades from the ENV.fetch RBS gap below
|
|
5645
5662
|
sig { returns(Symbol) }
|
|
5646
5663
|
def log_level; end
|
|
5647
5664
|
end
|
|
@@ -5709,10 +5726,8 @@ module Checkoff
|
|
|
5709
5726
|
sig { params(gid: String, resource_type: T.nilable(String)).returns([T.untyped, T.untyped, T.untyped, T.untyped]) }
|
|
5710
5727
|
def enrich_gid(gid, resource_type: nil); end
|
|
5711
5728
|
|
|
5712
|
-
# @sg-ignore
|
|
5713
|
-
#
|
|
5714
5729
|
# _@param_ `filter`
|
|
5715
|
-
sig { params(filter: T::Hash[String, T.any(String, T::Array[String])]).
|
|
5730
|
+
sig { params(filter: T::Hash[String, T.any(String, T::Array[String])]).void }
|
|
5716
5731
|
def enrich_filter_parent_gid!(filter); end
|
|
5717
5732
|
|
|
5718
5733
|
# _@param_ `filter`
|
|
@@ -5723,14 +5738,12 @@ module Checkoff
|
|
|
5723
5738
|
sig { params(filter: T::Hash[String, T.any(String, T::Array[String])]).void }
|
|
5724
5739
|
def enrich_filter_section!(filter); end
|
|
5725
5740
|
|
|
5726
|
-
# sord warn - "'resource'" does not appear to be a type
|
|
5727
5741
|
# _@param_ `asana_event`
|
|
5728
|
-
sig { params(asana_event: T::Hash[T.untyped, T
|
|
5742
|
+
sig { params(asana_event: T::Hash[T.untyped, T.untyped]).void }
|
|
5729
5743
|
def enrich_event_parent!(asana_event); end
|
|
5730
5744
|
|
|
5731
|
-
# sord warn - "'resource'" does not appear to be a type
|
|
5732
5745
|
# _@param_ `asana_event`
|
|
5733
|
-
sig { params(asana_event: T::Hash[T.untyped, T
|
|
5746
|
+
sig { params(asana_event: T::Hash[T.untyped, T.untyped]).void }
|
|
5734
5747
|
def enrich_event_resource!(asana_event); end
|
|
5735
5748
|
|
|
5736
5749
|
sig { returns(::Logger) }
|
|
@@ -5756,7 +5769,7 @@ module Checkoff
|
|
|
5756
5769
|
sig { params(message: T.nilable(Object), block: T.untyped).void }
|
|
5757
5770
|
def finer(message = nil, &block); end
|
|
5758
5771
|
|
|
5759
|
-
# @sg-ignore
|
|
5772
|
+
# @sg-ignore return type could not be inferred — cascades from the ENV.fetch RBS gap below
|
|
5760
5773
|
sig { returns(Symbol) }
|
|
5761
5774
|
def log_level; end
|
|
5762
5775
|
|
|
@@ -6089,7 +6102,8 @@ module Checkoff
|
|
|
6089
6102
|
def evaluate_arg?(_index); end
|
|
6090
6103
|
|
|
6091
6104
|
# sord warn - Asana::Resources::Task wasn't able to be resolved to a constant in this project
|
|
6092
|
-
# @sg-ignore
|
|
6105
|
+
# @sg-ignore Checkoff::SelectorClasses::Task::MilestonePFunctionEvaluator#evaluate
|
|
6106
|
+
# return type could not be inferred
|
|
6093
6107
|
#
|
|
6094
6108
|
# _@param_ `task`
|
|
6095
6109
|
sig { params(task: Asana::Resources::Task).returns(T::Boolean) }
|
|
@@ -6358,7 +6372,8 @@ module Checkoff
|
|
|
6358
6372
|
# sord warn - Asana::Resources::Project wasn't able to be resolved to a constant in this project
|
|
6359
6373
|
# sord warn - boolish is probably not a type, but using anyway
|
|
6360
6374
|
# sord warn - boolish wasn't able to be resolved to a constant in this project
|
|
6361
|
-
# @sg-ignore
|
|
6375
|
+
# @sg-ignore Checkoff::SelectorClasses::Common::NameStartsWithPFunctionEvaluator#evaluate
|
|
6376
|
+
# return type could not be inferred
|
|
6362
6377
|
#
|
|
6363
6378
|
# _@param_ `resource`
|
|
6364
6379
|
#
|
|
@@ -6393,6 +6408,9 @@ module Checkoff
|
|
|
6393
6408
|
|
|
6394
6409
|
sig { returns(T.any([Symbol, T::Array[T.untyped]], String)) }
|
|
6395
6410
|
attr_reader :selector
|
|
6411
|
+
|
|
6412
|
+
sig { returns(Checkoff::CustomFields) }
|
|
6413
|
+
attr_reader :custom_fields
|
|
6396
6414
|
end
|
|
6397
6415
|
end
|
|
6398
6416
|
|
|
@@ -6484,6 +6502,15 @@ module Checkoff
|
|
|
6484
6502
|
|
|
6485
6503
|
sig { returns([Symbol, T::Array[T.untyped]]) }
|
|
6486
6504
|
attr_reader :selector
|
|
6505
|
+
|
|
6506
|
+
sig { returns(Checkoff::Projects) }
|
|
6507
|
+
attr_reader :projects
|
|
6508
|
+
|
|
6509
|
+
sig { returns(Checkoff::Portfolios) }
|
|
6510
|
+
attr_reader :portfolios
|
|
6511
|
+
|
|
6512
|
+
sig { returns(Checkoff::Workspaces) }
|
|
6513
|
+
attr_reader :workspaces
|
|
6487
6514
|
end
|
|
6488
6515
|
end
|
|
6489
6516
|
|
|
@@ -6545,6 +6572,9 @@ module Checkoff
|
|
|
6545
6572
|
# sord warn - Asana::Client wasn't able to be resolved to a constant in this project
|
|
6546
6573
|
sig { returns(Asana::Client) }
|
|
6547
6574
|
attr_reader :client
|
|
6575
|
+
|
|
6576
|
+
sig { returns(Checkoff::Sections) }
|
|
6577
|
+
attr_reader :sections
|
|
6548
6578
|
end
|
|
6549
6579
|
end
|
|
6550
6580
|
|
|
@@ -6556,12 +6586,12 @@ module Checkoff
|
|
|
6556
6586
|
sig { params(_index: Integer).returns(T::Boolean) }
|
|
6557
6587
|
def evaluate_arg?(_index); end
|
|
6558
6588
|
|
|
6559
|
-
# @sg-ignore
|
|
6589
|
+
# @sg-ignore return type could not be inferred — abstract method body is only `raise`
|
|
6560
6590
|
sig { returns(T::Boolean) }
|
|
6561
6591
|
def matches?; end
|
|
6562
6592
|
|
|
6563
6593
|
# sord warn - Asana::Resources::Task wasn't able to be resolved to a constant in this project
|
|
6564
|
-
# @sg-ignore
|
|
6594
|
+
# @sg-ignore return type could not be inferred — abstract method body is only `raise`
|
|
6565
6595
|
#
|
|
6566
6596
|
# _@param_ `_task`
|
|
6567
6597
|
#
|
|
@@ -6575,6 +6605,20 @@ module Checkoff
|
|
|
6575
6605
|
sig { params(object: Object, fn_name: Symbol).returns(T::Boolean) }
|
|
6576
6606
|
def fn?(object, fn_name); end
|
|
6577
6607
|
|
|
6608
|
+
# Concrete subclasses each declare their own initialize with their
|
|
6609
|
+
# specific keyword args (and set @selector themselves before calling
|
|
6610
|
+
# super()); this signature exists only so Solargraph can resolve
|
|
6611
|
+
# `evaluator_class.new(selector:, **kwargs)` call sites that hold a
|
|
6612
|
+
# `Class<FunctionEvaluator>` reference rather than a concrete subclass -
|
|
6613
|
+
# deliberately a no-op so a bare `super()` call from those subclasses
|
|
6614
|
+
# can't clobber the @selector they already set.
|
|
6615
|
+
#
|
|
6616
|
+
# _@param_ `selector`
|
|
6617
|
+
#
|
|
6618
|
+
# _@param_ `_kwargs`
|
|
6619
|
+
sig { params(selector: T.nilable(T.any(Symbol, T::Array[T.untyped], String)), _kwargs: T::Hash[T.untyped, T.untyped]).void }
|
|
6620
|
+
def initialize(selector: nil, **_kwargs); end
|
|
6621
|
+
|
|
6578
6622
|
sig { returns(::Logger) }
|
|
6579
6623
|
def logger; end
|
|
6580
6624
|
|
|
@@ -6598,7 +6642,7 @@ module Checkoff
|
|
|
6598
6642
|
sig { params(message: T.nilable(Object), block: T.untyped).void }
|
|
6599
6643
|
def finer(message = nil, &block); end
|
|
6600
6644
|
|
|
6601
|
-
# @sg-ignore
|
|
6645
|
+
# @sg-ignore return type could not be inferred — cascades from the ENV.fetch RBS gap below
|
|
6602
6646
|
sig { returns(Symbol) }
|
|
6603
6647
|
def log_level; end
|
|
6604
6648
|
end
|
|
@@ -6791,7 +6835,7 @@ module Logging
|
|
|
6791
6835
|
sig { params(message: T.nilable(Object), block: T.untyped).void }
|
|
6792
6836
|
def finer(message = nil, &block); end
|
|
6793
6837
|
|
|
6794
|
-
# @sg-ignore
|
|
6838
|
+
# @sg-ignore return type could not be inferred — cascades from the ENV.fetch RBS gap below
|
|
6795
6839
|
sig { returns(Symbol) }
|
|
6796
6840
|
def log_level; end
|
|
6797
6841
|
end
|