checkoff 0.245.0 → 0.246.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/sections.rb +4 -3
- data/lib/checkoff/tasks.rb +1 -1
- data/lib/checkoff/timelines.rb +19 -12
- data/lib/checkoff/timing.rb +3 -2
- data/lib/checkoff/version.rb +1 -1
- data/rbi/checkoff.rbi +92 -96
- data/sig/checkoff.rbs +63 -67
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: e525b82b6ae1ea09510316f53b1087da97f218de3ffc16c71571ac30306720b7
|
|
4
|
+
data.tar.gz: '034090171c0a8c076a33aa7a415ac60a4852e1bb7480df8e779c59826dd2275a'
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 4d4bc576a9785e658c818efe8bd6b11925fa8e530c72054bf432ab509b174eb135cbabc9a52f5d6f5c27e933749814e643d99ba73863a2967ee4f47f7e8e02df
|
|
7
|
+
data.tar.gz: 4285735d4121093dc6363eae28101d9330e12beac46c592ec723f2ebecff77acad0f7c1dd139121499ed313adefd1685b212df6dc8b147a42c49f11be595fd22
|
data/lib/checkoff/sections.rb
CHANGED
|
@@ -283,12 +283,13 @@ module Checkoff
|
|
|
283
283
|
# @return [void]
|
|
284
284
|
def file_task_by_section(by_section, task, project_gid)
|
|
285
285
|
membership = task.memberships.find do |m|
|
|
286
|
-
|
|
287
|
-
T.cast(
|
|
286
|
+
membership_hash = T.unsafe(m)
|
|
287
|
+
T.cast(membership_hash['project'], T::Hash[String, T.untyped])['gid'] == project_gid
|
|
288
288
|
end
|
|
289
289
|
raise "Could not find task in project_gid #{project_gid}: #{task}" if membership.nil?
|
|
290
290
|
|
|
291
|
-
|
|
291
|
+
membership_data = T.unsafe(membership)
|
|
292
|
+
section = T.cast(membership_data['section'], T::Hash[String, T.untyped])
|
|
292
293
|
section_name = T.cast(section['name'], String)
|
|
293
294
|
|
|
294
295
|
# @type [String, nil]
|
data/lib/checkoff/tasks.rb
CHANGED
|
@@ -165,7 +165,7 @@ module Checkoff
|
|
|
165
165
|
all_options = projects.task_options(extra_fields:,
|
|
166
166
|
only_uncompleted:)
|
|
167
167
|
# @type [Hash]
|
|
168
|
-
options = all_options.fetch(:options
|
|
168
|
+
options = all_options.fetch(:options) { {} }
|
|
169
169
|
options[:completed_since] = all_options[:completed_since] unless all_options[:completed_since].nil?
|
|
170
170
|
client.tasks.find_by_id(task_gid, options:)
|
|
171
171
|
rescue Asana::Errors::NotFound => e
|
data/lib/checkoff/timelines.rb
CHANGED
|
@@ -13,7 +13,7 @@ require_relative 'clients'
|
|
|
13
13
|
|
|
14
14
|
module Checkoff
|
|
15
15
|
# Manages timelines of dependent tasks with dates and milestones
|
|
16
|
-
class Timelines
|
|
16
|
+
class Timelines # rubocop:disable Metrics/ClassLength
|
|
17
17
|
# @!parse
|
|
18
18
|
# extend CacheMethod::ClassMethods
|
|
19
19
|
|
|
@@ -65,7 +65,6 @@ module Checkoff
|
|
|
65
65
|
# @param task [Asana::Resources::Task]
|
|
66
66
|
# @param limit_to_portfolio_name [String, nil]
|
|
67
67
|
# @return [Boolean]
|
|
68
|
-
# @sg-ignore
|
|
69
68
|
def last_task_milestone_depends_on_this_task?(task, limit_to_portfolio_name: nil)
|
|
70
69
|
unless limit_to_portfolio_name.nil?
|
|
71
70
|
limit_to_projects = @portfolios.projects_in_portfolio(@workspaces.default_workspace.name,
|
|
@@ -73,15 +72,19 @@ module Checkoff
|
|
|
73
72
|
end
|
|
74
73
|
|
|
75
74
|
all_dependent_task_gids = nil
|
|
76
|
-
|
|
75
|
+
# @type [Array<Hash{String => Object}>]
|
|
76
|
+
memberships = task.memberships
|
|
77
|
+
memberships.all? do |membership_data|
|
|
78
|
+
# @type [Hash{String => Object}]
|
|
79
|
+
md = membership_data
|
|
77
80
|
unless limit_to_portfolio_name.nil?
|
|
78
|
-
# @
|
|
79
|
-
|
|
81
|
+
# @type [Hash{String => Object}]
|
|
82
|
+
project_data = md.fetch('project')
|
|
83
|
+
project_gid = project_data.fetch('gid')
|
|
80
84
|
next true unless limit_to_projects.map(&:gid).include? project_gid
|
|
81
85
|
end
|
|
82
|
-
# @
|
|
83
|
-
section_data =
|
|
84
|
-
# @sg-ignore
|
|
86
|
+
# @type [Hash{String => Object}]
|
|
87
|
+
section_data = md.fetch('section')
|
|
85
88
|
section_gid = section_data.fetch('gid')
|
|
86
89
|
|
|
87
90
|
last_milestone = last_milestone_in_section(section_gid)
|
|
@@ -100,7 +103,6 @@ module Checkoff
|
|
|
100
103
|
# @param task [Asana::Resources::Task]
|
|
101
104
|
# @param limit_to_portfolio_name [String, nil]
|
|
102
105
|
# @return [Boolean]
|
|
103
|
-
# @sg-ignore
|
|
104
106
|
def any_milestone_depends_on_this_task?(task, limit_to_portfolio_name: nil)
|
|
105
107
|
unless limit_to_portfolio_name.nil?
|
|
106
108
|
limit_to_projects = @portfolios.projects_in_portfolio(@workspaces.default_workspace.name,
|
|
@@ -108,10 +110,15 @@ module Checkoff
|
|
|
108
110
|
end
|
|
109
111
|
|
|
110
112
|
all_dependent_milestones = nil
|
|
111
|
-
|
|
113
|
+
# @type [Array<Hash{String => Object}>]
|
|
114
|
+
memberships = task.memberships
|
|
115
|
+
memberships.all? do |membership_data|
|
|
116
|
+
# @type [Hash{String => Object}]
|
|
117
|
+
md = membership_data
|
|
112
118
|
unless limit_to_portfolio_name.nil?
|
|
113
|
-
# @
|
|
114
|
-
|
|
119
|
+
# @type [Hash{String => Object}]
|
|
120
|
+
project_data = md.fetch('project')
|
|
121
|
+
project_gid = project_data.fetch('gid')
|
|
115
122
|
next true unless limit_to_projects.map(&:gid).include? project_gid
|
|
116
123
|
end
|
|
117
124
|
|
data/lib/checkoff/timing.rb
CHANGED
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
require 'date'
|
|
7
7
|
require 'time'
|
|
8
8
|
require 'active_support'
|
|
9
|
+
require 'active_support/core_ext/integer/time'
|
|
9
10
|
# require 'active_support/time'
|
|
10
11
|
require 'forwardable'
|
|
11
12
|
require 'cache_method'
|
|
@@ -169,9 +170,9 @@ module Checkoff
|
|
|
169
170
|
|
|
170
171
|
# @param num_days [Integer]
|
|
171
172
|
#
|
|
172
|
-
# @return [
|
|
173
|
+
# @return [ActiveSupport::TimeWithZone]
|
|
173
174
|
def n_days_from_now(num_days)
|
|
174
|
-
|
|
175
|
+
num_days.days.since(@now_getter.now)
|
|
175
176
|
end
|
|
176
177
|
|
|
177
178
|
# @param num_days [Integer]
|
data/lib/checkoff/version.rb
CHANGED
data/rbi/checkoff.rbi
CHANGED
|
@@ -75,7 +75,7 @@ module Overcommit
|
|
|
75
75
|
end
|
|
76
76
|
|
|
77
77
|
module Checkoff
|
|
78
|
-
VERSION = '0.
|
|
78
|
+
VERSION = '0.246.0'
|
|
79
79
|
|
|
80
80
|
class Attachments
|
|
81
81
|
include Logging
|
|
@@ -2442,7 +2442,7 @@ end
|
|
|
2442
2442
|
# typed: ignore
|
|
2443
2443
|
# Command-line and gem client for Asana (unofficial)
|
|
2444
2444
|
module Checkoff
|
|
2445
|
-
VERSION = T.let('0.
|
|
2445
|
+
VERSION = T.let('0.246.0', T.untyped)
|
|
2446
2446
|
|
|
2447
2447
|
# Move tasks from one place to another
|
|
2448
2448
|
class MvSubcommand
|
|
@@ -3314,7 +3314,7 @@ module Checkoff
|
|
|
3314
3314
|
def now_or_before?(date_or_time); end
|
|
3315
3315
|
|
|
3316
3316
|
# _@param_ `num_days`
|
|
3317
|
-
sig { params(num_days: Integer).returns(
|
|
3317
|
+
sig { params(num_days: Integer).returns(ActiveSupport::TimeWithZone) }
|
|
3318
3318
|
def n_days_from_now(num_days); end
|
|
3319
3319
|
|
|
3320
3320
|
# @sg-ignore
|
|
@@ -4133,8 +4133,6 @@ module Checkoff
|
|
|
4133
4133
|
def task_dependent_on_previous_section_last_milestone?(task, limit_to_portfolio_gid: nil); end
|
|
4134
4134
|
|
|
4135
4135
|
# sord warn - Asana::Resources::Task wasn't able to be resolved to a constant in this project
|
|
4136
|
-
# @sg-ignore
|
|
4137
|
-
#
|
|
4138
4136
|
# _@param_ `task`
|
|
4139
4137
|
#
|
|
4140
4138
|
# _@param_ `limit_to_portfolio_name`
|
|
@@ -4142,8 +4140,6 @@ module Checkoff
|
|
|
4142
4140
|
def last_task_milestone_depends_on_this_task?(task, limit_to_portfolio_name: nil); end
|
|
4143
4141
|
|
|
4144
4142
|
# sord warn - Asana::Resources::Task wasn't able to be resolved to a constant in this project
|
|
4145
|
-
# @sg-ignore
|
|
4146
|
-
#
|
|
4147
4143
|
# _@param_ `task`
|
|
4148
4144
|
#
|
|
4149
4145
|
# _@param_ `limit_to_portfolio_name`
|
|
@@ -6131,9 +6127,6 @@ module Checkoff
|
|
|
6131
6127
|
end
|
|
6132
6128
|
def initialize(selector:, tasks:, timelines:, custom_fields:, **_kwargs); end
|
|
6133
6129
|
|
|
6134
|
-
sig { returns([Symbol, T::Array[T.untyped]]) }
|
|
6135
|
-
attr_reader :selector
|
|
6136
|
-
|
|
6137
6130
|
sig { returns(Checkoff::Tasks) }
|
|
6138
6131
|
attr_reader :tasks
|
|
6139
6132
|
|
|
@@ -6142,6 +6135,9 @@ module Checkoff
|
|
|
6142
6135
|
|
|
6143
6136
|
sig { returns(Checkoff::CustomFields) }
|
|
6144
6137
|
attr_reader :custom_fields
|
|
6138
|
+
|
|
6139
|
+
sig { returns([Symbol, T::Array[T.untyped]]) }
|
|
6140
|
+
attr_reader :selector
|
|
6145
6141
|
end
|
|
6146
6142
|
end
|
|
6147
6143
|
|
|
@@ -7129,6 +7125,15 @@ class TestTasks < BaseAsana
|
|
|
7129
7125
|
sig { void }
|
|
7130
7126
|
def test_in_portfolio_more_than_once; end
|
|
7131
7127
|
|
|
7128
|
+
sig { void }
|
|
7129
|
+
def test_in_portfolio_more_than_once_true; end
|
|
7130
|
+
|
|
7131
|
+
sig { void }
|
|
7132
|
+
def test_gid_for_task; end
|
|
7133
|
+
|
|
7134
|
+
sig { void }
|
|
7135
|
+
def test_gid_for_task_not_found; end
|
|
7136
|
+
|
|
7132
7137
|
sig { returns(T.untyped) }
|
|
7133
7138
|
def test_task_to_h_delegates; end
|
|
7134
7139
|
|
|
@@ -7170,15 +7175,6 @@ class TestTasks < BaseAsana
|
|
|
7170
7175
|
|
|
7171
7176
|
sig { void }
|
|
7172
7177
|
def class_under_test; end
|
|
7173
|
-
|
|
7174
|
-
sig { void }
|
|
7175
|
-
def test_in_portfolio_more_than_once_true; end
|
|
7176
|
-
|
|
7177
|
-
sig { void }
|
|
7178
|
-
def test_gid_for_task; end
|
|
7179
|
-
|
|
7180
|
-
sig { void }
|
|
7181
|
-
def test_gid_for_task_not_found; end
|
|
7182
7178
|
end
|
|
7183
7179
|
|
|
7184
7180
|
# Test the Checkoff::CLI class with mv subcommand
|
|
@@ -7906,19 +7902,19 @@ class TestTimelines < ClassTest
|
|
|
7906
7902
|
def test_init; end
|
|
7907
7903
|
|
|
7908
7904
|
sig { void }
|
|
7909
|
-
def
|
|
7905
|
+
def test_any_milestone_depends_on_this_task_false; end
|
|
7910
7906
|
|
|
7911
7907
|
sig { void }
|
|
7912
|
-
def
|
|
7908
|
+
def test_any_milestone_depends_on_this_task_true; end
|
|
7913
7909
|
|
|
7914
7910
|
sig { void }
|
|
7915
|
-
def
|
|
7911
|
+
def class_under_test; end
|
|
7916
7912
|
|
|
7917
7913
|
sig { void }
|
|
7918
|
-
def
|
|
7914
|
+
def respond_like_instance_of; end
|
|
7919
7915
|
|
|
7920
7916
|
sig { void }
|
|
7921
|
-
def
|
|
7917
|
+
def respond_like; end
|
|
7922
7918
|
end
|
|
7923
7919
|
|
|
7924
7920
|
class TestPortfolios < ClassTest
|
|
@@ -8022,15 +8018,6 @@ class TestAttachments < ClassTest
|
|
|
8022
8018
|
sig { void }
|
|
8023
8019
|
def test_create_attachment_from_url; end
|
|
8024
8020
|
|
|
8025
|
-
sig { void }
|
|
8026
|
-
def class_under_test; end
|
|
8027
|
-
|
|
8028
|
-
sig { void }
|
|
8029
|
-
def respond_like_instance_of; end
|
|
8030
|
-
|
|
8031
|
-
sig { void }
|
|
8032
|
-
def respond_like; end
|
|
8033
|
-
|
|
8034
8021
|
# _@param_ `gid`
|
|
8035
8022
|
#
|
|
8036
8023
|
# _@param_ `url`
|
|
@@ -8042,6 +8029,15 @@ class TestAttachments < ClassTest
|
|
|
8042
8029
|
|
|
8043
8030
|
sig { void }
|
|
8044
8031
|
def test_run; end
|
|
8032
|
+
|
|
8033
|
+
sig { void }
|
|
8034
|
+
def class_under_test; end
|
|
8035
|
+
|
|
8036
|
+
sig { void }
|
|
8037
|
+
def respond_like_instance_of; end
|
|
8038
|
+
|
|
8039
|
+
sig { void }
|
|
8040
|
+
def respond_like; end
|
|
8045
8041
|
end
|
|
8046
8042
|
|
|
8047
8043
|
# double to inject cache_method, pretending to be cache_method gem
|
|
@@ -8325,15 +8321,6 @@ class TestTaskSearches < ClassTest
|
|
|
8325
8321
|
sig { void }
|
|
8326
8322
|
def test_as_cache_key; end
|
|
8327
8323
|
|
|
8328
|
-
sig { void }
|
|
8329
|
-
def class_under_test; end
|
|
8330
|
-
|
|
8331
|
-
sig { void }
|
|
8332
|
-
def respond_like_instance_of; end
|
|
8333
|
-
|
|
8334
|
-
sig { void }
|
|
8335
|
-
def respond_like; end
|
|
8336
|
-
|
|
8337
8324
|
sig { void }
|
|
8338
8325
|
def test_raw_task_search_without_selector; end
|
|
8339
8326
|
|
|
@@ -8343,6 +8330,15 @@ class TestTaskSearches < ClassTest
|
|
|
8343
8330
|
|
|
8344
8331
|
sig { void }
|
|
8345
8332
|
def test_raw_task_search_paginates_when_full_page; end
|
|
8333
|
+
|
|
8334
|
+
sig { void }
|
|
8335
|
+
def class_under_test; end
|
|
8336
|
+
|
|
8337
|
+
sig { void }
|
|
8338
|
+
def respond_like_instance_of; end
|
|
8339
|
+
|
|
8340
|
+
sig { void }
|
|
8341
|
+
def respond_like; end
|
|
8346
8342
|
end
|
|
8347
8343
|
|
|
8348
8344
|
# rubocop:disable Metrics/ClassLength
|
|
@@ -8581,6 +8577,12 @@ class TestTaskSelectors < ClassTest
|
|
|
8581
8577
|
sig { returns(T.untyped) }
|
|
8582
8578
|
def test_filter_via_task_selector_in_project_named_true; end
|
|
8583
8579
|
|
|
8580
|
+
sig { returns(T.untyped) }
|
|
8581
|
+
def test_filter_via_task_selector_in_section_named_false; end
|
|
8582
|
+
|
|
8583
|
+
sig { returns(T.untyped) }
|
|
8584
|
+
def test_filter_via_task_selector_in_section_named_true; end
|
|
8585
|
+
|
|
8584
8586
|
sig { returns(T.untyped) }
|
|
8585
8587
|
def test_dependent_on_previous_section_last_milestone; end
|
|
8586
8588
|
|
|
@@ -8596,15 +8598,6 @@ class TestTaskSelectors < ClassTest
|
|
|
8596
8598
|
sig { void }
|
|
8597
8599
|
def test_last_task_milestone_does_not_depend_on_this_task; end
|
|
8598
8600
|
|
|
8599
|
-
sig { void }
|
|
8600
|
-
def respond_like_instance_of; end
|
|
8601
|
-
|
|
8602
|
-
sig { void }
|
|
8603
|
-
def respond_like; end
|
|
8604
|
-
|
|
8605
|
-
sig { returns(T.class_of(Checkoff::TaskSelectors)) }
|
|
8606
|
-
def class_under_test; end
|
|
8607
|
-
|
|
8608
8601
|
sig { void }
|
|
8609
8602
|
def test_in_a_real_project_true; end
|
|
8610
8603
|
|
|
@@ -8629,11 +8622,49 @@ class TestTaskSelectors < ClassTest
|
|
|
8629
8622
|
sig { void }
|
|
8630
8623
|
def test_no_milestone_depends_on_this_task_true; end
|
|
8631
8624
|
|
|
8632
|
-
sig {
|
|
8633
|
-
def
|
|
8625
|
+
sig { void }
|
|
8626
|
+
def respond_like_instance_of; end
|
|
8634
8627
|
|
|
8635
|
-
sig {
|
|
8636
|
-
def
|
|
8628
|
+
sig { void }
|
|
8629
|
+
def respond_like; end
|
|
8630
|
+
|
|
8631
|
+
sig { returns(T.class_of(Checkoff::TaskSelectors)) }
|
|
8632
|
+
def class_under_test; end
|
|
8633
|
+
end
|
|
8634
|
+
|
|
8635
|
+
# Test the Checkoff::ViewSubcommand class used in CLI processing
|
|
8636
|
+
class TestViewSubcommand < ClassTest
|
|
8637
|
+
extend Forwardable
|
|
8638
|
+
|
|
8639
|
+
sig { returns(String) }
|
|
8640
|
+
def task_name; end
|
|
8641
|
+
|
|
8642
|
+
sig { returns(String) }
|
|
8643
|
+
def due_at_value; end
|
|
8644
|
+
|
|
8645
|
+
sig { void }
|
|
8646
|
+
def expect_task_lookup; end
|
|
8647
|
+
|
|
8648
|
+
sig { void }
|
|
8649
|
+
def stub_task_due_fields; end
|
|
8650
|
+
|
|
8651
|
+
sig { void }
|
|
8652
|
+
def test_run_on_task; end
|
|
8653
|
+
|
|
8654
|
+
sig { void }
|
|
8655
|
+
def test_run_on_task_not_found; end
|
|
8656
|
+
|
|
8657
|
+
sig { params(clazz: T.untyped).returns(Checkoff::ViewSubcommand) }
|
|
8658
|
+
def create_object(clazz = class_under_test); end
|
|
8659
|
+
|
|
8660
|
+
sig { returns(T.class_of(Checkoff::ViewSubcommand)) }
|
|
8661
|
+
def class_under_test; end
|
|
8662
|
+
|
|
8663
|
+
sig { void }
|
|
8664
|
+
def respond_like_instance_of; end
|
|
8665
|
+
|
|
8666
|
+
sig { void }
|
|
8667
|
+
def respond_like; end
|
|
8637
8668
|
end
|
|
8638
8669
|
|
|
8639
8670
|
class TestLogging < Minitest::Test
|
|
@@ -8953,6 +8984,12 @@ class TestSearchUrlParser < ClassTest
|
|
|
8953
8984
|
sig { returns(Checkoff::Internal::SearchUrl::Parser) }
|
|
8954
8985
|
def get_test_object; end
|
|
8955
8986
|
|
|
8987
|
+
# Ruby 3.4+ Hash#inspect inserts spaces around =>; normalize for assertions.
|
|
8988
|
+
#
|
|
8989
|
+
# _@param_ `message`
|
|
8990
|
+
sig { params(message: String).returns(String) }
|
|
8991
|
+
def normalize_error_message(message); end
|
|
8992
|
+
|
|
8956
8993
|
sig { void }
|
|
8957
8994
|
def test_convert_params_1; end
|
|
8958
8995
|
|
|
@@ -9099,12 +9136,6 @@ class TestSearchUrlParser < ClassTest
|
|
|
9099
9136
|
|
|
9100
9137
|
sig { returns(T.class_of(Checkoff::Internal::SearchUrl::Parser)) }
|
|
9101
9138
|
def class_under_test; end
|
|
9102
|
-
|
|
9103
|
-
# Ruby 3.4+ Hash#inspect inserts spaces around =>; normalize for assertions.
|
|
9104
|
-
#
|
|
9105
|
-
# _@param_ `message`
|
|
9106
|
-
sig { params(message: String).returns(String) }
|
|
9107
|
-
def normalize_error_message(message); end
|
|
9108
9139
|
end
|
|
9109
9140
|
|
|
9110
9141
|
class TestAsanaEventFilter < ClassTest
|
|
@@ -9247,38 +9278,3 @@ class TestAsanaEventFilter < ClassTest
|
|
|
9247
9278
|
sig { void }
|
|
9248
9279
|
def respond_like; end
|
|
9249
9280
|
end
|
|
9250
|
-
|
|
9251
|
-
# Test the Checkoff::ViewSubcommand class used in CLI processing
|
|
9252
|
-
class TestViewSubcommand < ClassTest
|
|
9253
|
-
extend Forwardable
|
|
9254
|
-
|
|
9255
|
-
sig { returns(String) }
|
|
9256
|
-
def task_name; end
|
|
9257
|
-
|
|
9258
|
-
sig { returns(String) }
|
|
9259
|
-
def due_at_value; end
|
|
9260
|
-
|
|
9261
|
-
sig { void }
|
|
9262
|
-
def expect_task_lookup; end
|
|
9263
|
-
|
|
9264
|
-
sig { void }
|
|
9265
|
-
def stub_task_due_fields; end
|
|
9266
|
-
|
|
9267
|
-
sig { void }
|
|
9268
|
-
def test_run_on_task; end
|
|
9269
|
-
|
|
9270
|
-
sig { void }
|
|
9271
|
-
def test_run_on_task_not_found; end
|
|
9272
|
-
|
|
9273
|
-
sig { params(clazz: T.untyped).returns(Checkoff::ViewSubcommand) }
|
|
9274
|
-
def create_object(clazz = class_under_test); end
|
|
9275
|
-
|
|
9276
|
-
sig { returns(T.class_of(Checkoff::ViewSubcommand)) }
|
|
9277
|
-
def class_under_test; end
|
|
9278
|
-
|
|
9279
|
-
sig { void }
|
|
9280
|
-
def respond_like_instance_of; end
|
|
9281
|
-
|
|
9282
|
-
sig { void }
|
|
9283
|
-
def respond_like; end
|
|
9284
|
-
end
|
data/sig/checkoff.rbs
CHANGED
|
@@ -727,7 +727,7 @@ module Checkoff
|
|
|
727
727
|
def now_or_before?: ((Date | Time)? date_or_time) -> bool
|
|
728
728
|
|
|
729
729
|
# _@param_ `num_days`
|
|
730
|
-
def n_days_from_now: (Integer num_days) ->
|
|
730
|
+
def n_days_from_now: (Integer num_days) -> ActiveSupport::TimeWithZone
|
|
731
731
|
|
|
732
732
|
# @sg-ignore
|
|
733
733
|
#
|
|
@@ -1424,16 +1424,12 @@ module Checkoff
|
|
|
1424
1424
|
def task_dependent_on_previous_section_last_milestone?: (Asana::Resources::Task task, ?limit_to_portfolio_gid: String?) -> bool
|
|
1425
1425
|
|
|
1426
1426
|
# sord warn - Asana::Resources::Task wasn't able to be resolved to a constant in this project
|
|
1427
|
-
# @sg-ignore
|
|
1428
|
-
#
|
|
1429
1427
|
# _@param_ `task`
|
|
1430
1428
|
#
|
|
1431
1429
|
# _@param_ `limit_to_portfolio_name`
|
|
1432
1430
|
def last_task_milestone_depends_on_this_task?: (Asana::Resources::Task task, ?limit_to_portfolio_name: String?) -> bool
|
|
1433
1431
|
|
|
1434
1432
|
# sord warn - Asana::Resources::Task wasn't able to be resolved to a constant in this project
|
|
1435
|
-
# @sg-ignore
|
|
1436
|
-
#
|
|
1437
1433
|
# _@param_ `task`
|
|
1438
1434
|
#
|
|
1439
1435
|
# _@param_ `limit_to_portfolio_name`
|
|
@@ -3078,13 +3074,13 @@ module Checkoff
|
|
|
3078
3074
|
**::Hash[untyped, untyped] _kwargs
|
|
3079
3075
|
) -> void
|
|
3080
3076
|
|
|
3081
|
-
attr_reader selector: [Symbol, ::Array[untyped]]
|
|
3082
|
-
|
|
3083
3077
|
attr_reader tasks: Checkoff::Tasks
|
|
3084
3078
|
|
|
3085
3079
|
attr_reader timelines: Checkoff::Timelines
|
|
3086
3080
|
|
|
3087
3081
|
attr_reader custom_fields: Checkoff::CustomFields
|
|
3082
|
+
|
|
3083
|
+
attr_reader selector: [Symbol, ::Array[untyped]]
|
|
3088
3084
|
end
|
|
3089
3085
|
end
|
|
3090
3086
|
|
|
@@ -3839,6 +3835,12 @@ class TestTasks < BaseAsana
|
|
|
3839
3835
|
|
|
3840
3836
|
def test_in_portfolio_more_than_once: () -> void
|
|
3841
3837
|
|
|
3838
|
+
def test_in_portfolio_more_than_once_true: () -> void
|
|
3839
|
+
|
|
3840
|
+
def test_gid_for_task: () -> void
|
|
3841
|
+
|
|
3842
|
+
def test_gid_for_task_not_found: () -> void
|
|
3843
|
+
|
|
3842
3844
|
def test_task_to_h_delegates: () -> untyped
|
|
3843
3845
|
|
|
3844
3846
|
def expect_default_workspace_name_pulled: () -> void
|
|
@@ -3866,12 +3868,6 @@ class TestTasks < BaseAsana
|
|
|
3866
3868
|
def test_as_cache_key: () -> void
|
|
3867
3869
|
|
|
3868
3870
|
def class_under_test: () -> void
|
|
3869
|
-
|
|
3870
|
-
def test_in_portfolio_more_than_once_true: () -> void
|
|
3871
|
-
|
|
3872
|
-
def test_gid_for_task: () -> void
|
|
3873
|
-
|
|
3874
|
-
def test_gid_for_task_not_found: () -> void
|
|
3875
3871
|
end
|
|
3876
3872
|
|
|
3877
3873
|
# Test the Checkoff::CLI class with mv subcommand
|
|
@@ -4351,15 +4347,15 @@ class TestTimelines < ClassTest
|
|
|
4351
4347
|
|
|
4352
4348
|
def test_init: () -> void
|
|
4353
4349
|
|
|
4350
|
+
def test_any_milestone_depends_on_this_task_false: () -> void
|
|
4351
|
+
|
|
4352
|
+
def test_any_milestone_depends_on_this_task_true: () -> void
|
|
4353
|
+
|
|
4354
4354
|
def class_under_test: () -> void
|
|
4355
4355
|
|
|
4356
4356
|
def respond_like_instance_of: () -> void
|
|
4357
4357
|
|
|
4358
4358
|
def respond_like: () -> void
|
|
4359
|
-
|
|
4360
|
-
def test_any_milestone_depends_on_this_task_false: () -> void
|
|
4361
|
-
|
|
4362
|
-
def test_any_milestone_depends_on_this_task_true: () -> void
|
|
4363
4359
|
end
|
|
4364
4360
|
|
|
4365
4361
|
class TestPortfolios < ClassTest
|
|
@@ -4421,12 +4417,6 @@ class TestAttachments < ClassTest
|
|
|
4421
4417
|
|
|
4422
4418
|
def test_create_attachment_from_url: () -> void
|
|
4423
4419
|
|
|
4424
|
-
def class_under_test: () -> void
|
|
4425
|
-
|
|
4426
|
-
def respond_like_instance_of: () -> void
|
|
4427
|
-
|
|
4428
|
-
def respond_like: () -> void
|
|
4429
|
-
|
|
4430
4420
|
# _@param_ `gid`
|
|
4431
4421
|
#
|
|
4432
4422
|
# _@param_ `url`
|
|
@@ -4435,6 +4425,12 @@ class TestAttachments < ClassTest
|
|
|
4435
4425
|
def capture_attachments_run: () -> String
|
|
4436
4426
|
|
|
4437
4427
|
def test_run: () -> void
|
|
4428
|
+
|
|
4429
|
+
def class_under_test: () -> void
|
|
4430
|
+
|
|
4431
|
+
def respond_like_instance_of: () -> void
|
|
4432
|
+
|
|
4433
|
+
def respond_like: () -> void
|
|
4438
4434
|
end
|
|
4439
4435
|
|
|
4440
4436
|
# double to inject cache_method, pretending to be cache_method gem
|
|
@@ -4636,18 +4632,18 @@ class TestTaskSearches < ClassTest
|
|
|
4636
4632
|
|
|
4637
4633
|
def test_as_cache_key: () -> void
|
|
4638
4634
|
|
|
4639
|
-
def class_under_test: () -> void
|
|
4640
|
-
|
|
4641
|
-
def respond_like_instance_of: () -> void
|
|
4642
|
-
|
|
4643
|
-
def respond_like: () -> void
|
|
4644
|
-
|
|
4645
4635
|
def test_raw_task_search_without_selector: () -> void
|
|
4646
4636
|
|
|
4647
4637
|
# _@param_ `task_searches`
|
|
4648
4638
|
def mock_full_page_raw_task_search: (Checkoff::TaskSearches task_searches) -> ::Array[untyped]
|
|
4649
4639
|
|
|
4650
4640
|
def test_raw_task_search_paginates_when_full_page: () -> void
|
|
4641
|
+
|
|
4642
|
+
def class_under_test: () -> void
|
|
4643
|
+
|
|
4644
|
+
def respond_like_instance_of: () -> void
|
|
4645
|
+
|
|
4646
|
+
def respond_like: () -> void
|
|
4651
4647
|
end
|
|
4652
4648
|
|
|
4653
4649
|
# rubocop:disable Metrics/ClassLength
|
|
@@ -4809,6 +4805,10 @@ class TestTaskSelectors < ClassTest
|
|
|
4809
4805
|
|
|
4810
4806
|
def test_filter_via_task_selector_in_project_named_true: () -> untyped
|
|
4811
4807
|
|
|
4808
|
+
def test_filter_via_task_selector_in_section_named_false: () -> untyped
|
|
4809
|
+
|
|
4810
|
+
def test_filter_via_task_selector_in_section_named_true: () -> untyped
|
|
4811
|
+
|
|
4812
4812
|
def test_dependent_on_previous_section_last_milestone: () -> untyped
|
|
4813
4813
|
|
|
4814
4814
|
def test_in_portfolio_named_true: () -> untyped
|
|
@@ -4819,12 +4819,6 @@ class TestTaskSelectors < ClassTest
|
|
|
4819
4819
|
|
|
4820
4820
|
def test_last_task_milestone_does_not_depend_on_this_task: () -> void
|
|
4821
4821
|
|
|
4822
|
-
def respond_like_instance_of: () -> void
|
|
4823
|
-
|
|
4824
|
-
def respond_like: () -> void
|
|
4825
|
-
|
|
4826
|
-
def class_under_test: () -> singleton(Checkoff::TaskSelectors)
|
|
4827
|
-
|
|
4828
4822
|
def test_in_a_real_project_true: () -> void
|
|
4829
4823
|
|
|
4830
4824
|
def test_in_a_real_project_false_only_my_tasks: () -> void
|
|
@@ -4841,9 +4835,36 @@ class TestTaskSelectors < ClassTest
|
|
|
4841
4835
|
|
|
4842
4836
|
def test_no_milestone_depends_on_this_task_true: () -> void
|
|
4843
4837
|
|
|
4844
|
-
def
|
|
4838
|
+
def respond_like_instance_of: () -> void
|
|
4845
4839
|
|
|
4846
|
-
def
|
|
4840
|
+
def respond_like: () -> void
|
|
4841
|
+
|
|
4842
|
+
def class_under_test: () -> singleton(Checkoff::TaskSelectors)
|
|
4843
|
+
end
|
|
4844
|
+
|
|
4845
|
+
# Test the Checkoff::ViewSubcommand class used in CLI processing
|
|
4846
|
+
class TestViewSubcommand < ClassTest
|
|
4847
|
+
extend Forwardable
|
|
4848
|
+
|
|
4849
|
+
def task_name: () -> String
|
|
4850
|
+
|
|
4851
|
+
def due_at_value: () -> String
|
|
4852
|
+
|
|
4853
|
+
def expect_task_lookup: () -> void
|
|
4854
|
+
|
|
4855
|
+
def stub_task_due_fields: () -> void
|
|
4856
|
+
|
|
4857
|
+
def test_run_on_task: () -> void
|
|
4858
|
+
|
|
4859
|
+
def test_run_on_task_not_found: () -> void
|
|
4860
|
+
|
|
4861
|
+
def create_object: (?untyped clazz) -> Checkoff::ViewSubcommand
|
|
4862
|
+
|
|
4863
|
+
def class_under_test: () -> singleton(Checkoff::ViewSubcommand)
|
|
4864
|
+
|
|
4865
|
+
def respond_like_instance_of: () -> void
|
|
4866
|
+
|
|
4867
|
+
def respond_like: () -> void
|
|
4847
4868
|
end
|
|
4848
4869
|
|
|
4849
4870
|
class TestLogging < Minitest::Test
|
|
@@ -4994,6 +5015,11 @@ end
|
|
|
4994
5015
|
class TestSearchUrlParser < ClassTest
|
|
4995
5016
|
def get_test_object: () -> Checkoff::Internal::SearchUrl::Parser
|
|
4996
5017
|
|
|
5018
|
+
# Ruby 3.4+ Hash#inspect inserts spaces around =>; normalize for assertions.
|
|
5019
|
+
#
|
|
5020
|
+
# _@param_ `message`
|
|
5021
|
+
def normalize_error_message: (String message) -> String
|
|
5022
|
+
|
|
4997
5023
|
def test_convert_params_1: () -> void
|
|
4998
5024
|
|
|
4999
5025
|
def test_convert_params_2: () -> void
|
|
@@ -5091,11 +5117,6 @@ class TestSearchUrlParser < ClassTest
|
|
|
5091
5117
|
def test_convert_params_48: () -> void
|
|
5092
5118
|
|
|
5093
5119
|
def class_under_test: () -> singleton(Checkoff::Internal::SearchUrl::Parser)
|
|
5094
|
-
|
|
5095
|
-
# Ruby 3.4+ Hash#inspect inserts spaces around =>; normalize for assertions.
|
|
5096
|
-
#
|
|
5097
|
-
# _@param_ `message`
|
|
5098
|
-
def normalize_error_message: (String message) -> String
|
|
5099
5120
|
end
|
|
5100
5121
|
|
|
5101
5122
|
class TestAsanaEventFilter < ClassTest
|
|
@@ -5134,30 +5155,5 @@ class TestAsanaEventFilter < ClassTest
|
|
|
5134
5155
|
|
|
5135
5156
|
def respond_like_instance_of: () -> void
|
|
5136
5157
|
|
|
5137
|
-
def respond_like: () -> void
|
|
5138
|
-
end
|
|
5139
|
-
|
|
5140
|
-
# Test the Checkoff::ViewSubcommand class used in CLI processing
|
|
5141
|
-
class TestViewSubcommand < ClassTest
|
|
5142
|
-
extend Forwardable
|
|
5143
|
-
|
|
5144
|
-
def task_name: () -> String
|
|
5145
|
-
|
|
5146
|
-
def due_at_value: () -> String
|
|
5147
|
-
|
|
5148
|
-
def expect_task_lookup: () -> void
|
|
5149
|
-
|
|
5150
|
-
def stub_task_due_fields: () -> void
|
|
5151
|
-
|
|
5152
|
-
def test_run_on_task: () -> void
|
|
5153
|
-
|
|
5154
|
-
def test_run_on_task_not_found: () -> void
|
|
5155
|
-
|
|
5156
|
-
def create_object: (?untyped clazz) -> Checkoff::ViewSubcommand
|
|
5157
|
-
|
|
5158
|
-
def class_under_test: () -> singleton(Checkoff::ViewSubcommand)
|
|
5159
|
-
|
|
5160
|
-
def respond_like_instance_of: () -> void
|
|
5161
|
-
|
|
5162
5158
|
def respond_like: () -> void
|
|
5163
5159
|
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.
|
|
4
|
+
version: 0.246.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: 2026-05-
|
|
11
|
+
date: 2026-05-25 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: activesupport
|