checkoff 0.228.0 → 0.229.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/checkoff.gemspec +6 -6
- data/lib/checkoff/cli.rb +71 -1
- data/lib/checkoff/clients.rb +1 -1
- data/lib/checkoff/custom_fields.rb +3 -3
- data/lib/checkoff/events.rb +3 -3
- data/lib/checkoff/internal/asana_event_enrichment.rb +13 -14
- data/lib/checkoff/internal/config_loader.rb +4 -2
- data/lib/checkoff/internal/logging.rb +3 -0
- data/lib/checkoff/internal/project_selector_evaluator.rb +5 -2
- data/lib/checkoff/internal/project_timing.rb +0 -2
- data/lib/checkoff/internal/search_url/custom_field_param_converter.rb +12 -12
- data/lib/checkoff/internal/search_url/custom_field_variant.rb +19 -18
- data/lib/checkoff/internal/search_url/date_param_converter.rb +9 -9
- data/lib/checkoff/internal/search_url/parser.rb +20 -30
- data/lib/checkoff/internal/search_url/results_merger.rb +4 -6
- data/lib/checkoff/internal/search_url/simple_param_converter.rb +19 -11
- data/lib/checkoff/internal/section_selector_evaluator.rb +7 -3
- data/lib/checkoff/internal/selector_classes/common/function_evaluator.rb +3 -2
- data/lib/checkoff/internal/selector_classes/common.rb +5 -6
- data/lib/checkoff/internal/selector_classes/function_evaluator.rb +2 -3
- data/lib/checkoff/internal/selector_classes/project/function_evaluator.rb +3 -2
- data/lib/checkoff/internal/selector_classes/section/function_evaluator.rb +2 -2
- data/lib/checkoff/internal/selector_classes/section.rb +2 -2
- data/lib/checkoff/internal/selector_classes/task/function_evaluator.rb +3 -2
- data/lib/checkoff/internal/selector_classes/task.rb +1 -2
- data/lib/checkoff/internal/selector_evaluator.rb +2 -2
- data/lib/checkoff/internal/task_hashes.rb +3 -3
- data/lib/checkoff/internal/task_selector_evaluator.rb +3 -0
- data/lib/checkoff/internal/task_timing.rb +0 -2
- data/lib/checkoff/internal/thread_local.rb +5 -4
- data/lib/checkoff/my_tasks.rb +4 -4
- data/lib/checkoff/portfolios.rb +1 -1
- data/lib/checkoff/project_selectors.rb +4 -4
- data/lib/checkoff/projects.rb +6 -6
- data/lib/checkoff/resources.rb +5 -3
- data/lib/checkoff/section_selectors.rb +4 -4
- data/lib/checkoff/sections.rb +18 -15
- data/lib/checkoff/subtasks.rb +2 -2
- data/lib/checkoff/tags.rb +7 -3
- data/lib/checkoff/task_searches.rb +9 -9
- data/lib/checkoff/task_selectors.rb +10 -6
- data/lib/checkoff/tasks.rb +5 -5
- data/lib/checkoff/timelines.rb +0 -1
- data/lib/checkoff/timing.rb +5 -4
- data/lib/checkoff/version.rb +1 -1
- data/lib/checkoff/workspaces.rb +1 -1
- data/rbi/checkoff.rbi +342 -305
- data/sig/checkoff.rbs +327 -279
- metadata +6 -6
data/rbi/checkoff.rbi
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# typed:
|
1
|
+
# typed: ignore
|
2
2
|
module Logging
|
3
3
|
sig { returns(T.untyped) }
|
4
4
|
def logger; end
|
@@ -52,26 +52,12 @@ module Overcommit
|
|
52
52
|
sig { returns(T.untyped) }
|
53
53
|
def run; end
|
54
54
|
end
|
55
|
-
|
56
|
-
class SolargraphTypecheck < Base
|
57
|
-
sig { returns(T.untyped) }
|
58
|
-
def run; end
|
59
|
-
|
60
|
-
sig { params(stderr: T.untyped).returns(T.untyped) }
|
61
|
-
def remove_harmless_glitches(stderr); end
|
62
|
-
|
63
|
-
sig { params(errors: T.untyped, files: T.untyped).returns(T.untyped) }
|
64
|
-
def generate_errors_for_files(errors, *files); end
|
65
|
-
|
66
|
-
sig { params(error: T.untyped).returns(T.untyped) }
|
67
|
-
def parse_error(error); end
|
68
|
-
end
|
69
55
|
end
|
70
56
|
end
|
71
57
|
end
|
72
58
|
|
73
59
|
module Checkoff
|
74
|
-
VERSION = '0.
|
60
|
+
VERSION = '0.229.0'
|
75
61
|
|
76
62
|
class Attachments
|
77
63
|
include Logging
|
@@ -479,7 +465,7 @@ module Checkoff
|
|
479
465
|
SECTION_FUNCTION_EVALUATORS = (Checkoff::SelectorClasses::Section.constants.map do |const|
|
480
466
|
Checkoff::SelectorClasses::Section.const_get(const)
|
481
467
|
end - [Checkoff::SelectorClasses::Section::FunctionEvaluator]).freeze
|
482
|
-
|
468
|
+
FUNCTION_EVALUATORS = (COMMON_FUNCTION_EVALUATORS + SECTION_FUNCTION_EVALUATORS).freeze
|
483
469
|
|
484
470
|
sig do
|
485
471
|
params(
|
@@ -2408,7 +2394,7 @@ module Checkoff
|
|
2408
2394
|
end
|
2409
2395
|
end
|
2410
2396
|
end
|
2411
|
-
# typed:
|
2397
|
+
# typed: ignore
|
2412
2398
|
class ENV
|
2413
2399
|
# _@param_ `key`
|
2414
2400
|
#
|
@@ -2478,6 +2464,9 @@ module Asana
|
|
2478
2464
|
include Asana::Resources
|
2479
2465
|
|
2480
2466
|
class Client
|
2467
|
+
sig { returns(Asana::ProxiedResourceClasses::Tag) }
|
2468
|
+
def tags; end
|
2469
|
+
|
2481
2470
|
sig { returns(Asana::ProxiedResourceClasses::Task) }
|
2482
2471
|
def tasks; end
|
2483
2472
|
|
@@ -2502,17 +2491,14 @@ module Asana
|
|
2502
2491
|
sig { returns(Asana::ProxiedResourceClasses::CustomField) }
|
2503
2492
|
def custom_fields; end
|
2504
2493
|
|
2505
|
-
sig { returns(Asana::ProxiedResourceClasses::Tag) }
|
2506
|
-
def tags; end
|
2507
|
-
|
2508
2494
|
# sord warn - Asana::HttpClient::Response wasn't able to be resolved to a constant in this project
|
2509
|
-
#
|
2495
|
+
# Performs a GET request against an arbitrary Asana URL. Allows for
|
2510
2496
|
# the user to interact with the API in ways that haven't been
|
2511
2497
|
# reflected/foreseen in this library.
|
2512
2498
|
#
|
2513
|
-
# _@param_ `url` — the URL to GET
|
2514
|
-
#
|
2515
2499
|
# _@param_ `args` — the request I/O options
|
2500
|
+
#
|
2501
|
+
# _@param_ `url`
|
2516
2502
|
sig { params(url: String, args: Object).returns(Asana::HttpClient::Response) }
|
2517
2503
|
def get(url, **args); end
|
2518
2504
|
end
|
@@ -2563,6 +2549,9 @@ module Asana
|
|
2563
2549
|
).returns(Asana::Resources::Task)
|
2564
2550
|
end
|
2565
2551
|
def self.create(client, assignee:, workspace:, name:); end
|
2552
|
+
|
2553
|
+
sig { returns(T.any(T::Hash[T.untyped, T.untyped], Asana::Resources::Section)) }
|
2554
|
+
def assignee_section; end
|
2566
2555
|
end
|
2567
2556
|
|
2568
2557
|
class Section
|
@@ -2626,6 +2615,22 @@ module Asana
|
|
2626
2615
|
def get_custom_fields_for_workspace(workspace_gid: required("workspace_gid"), options: {}); end
|
2627
2616
|
end
|
2628
2617
|
|
2618
|
+
class Tag
|
2619
|
+
# sord warn - Asana::Resources::Tag wasn't able to be resolved to a constant in this project
|
2620
|
+
# Get tags in a workspace
|
2621
|
+
#
|
2622
|
+
# > offset - [str] Offset token. An offset to the next page returned by the API. A pagination request will return an offset token, which can be used as an input parameter to the next request. If an offset is not passed in, the API will return the first page of results. 'Note: You can only pass in an offset that was returned to you via a previously paginated request.'
|
2623
|
+
# > limit - [int] Results per page. The number of objects to return per page. The value must be between 1 and 100.
|
2624
|
+
# > opt_fields - [list[str]] Defines fields to return. Some requests return *compact* representations of objects in order to conserve resources and complete the request more efficiently. Other times requests return more information than you may need. This option allows you to list the exact set of fields that the API should be sure to return for the objects. The field names should be provided as paths, described below. The id of included objects will always be returned, regardless of the field options.
|
2625
|
+
# > opt_pretty - [bool] Provides “pretty” output. Provides the response in a “pretty” format. In the case of JSON this means doing proper line breaking and indentation to make it readable. This will take extra time and increase the response size so it is advisable only to use this during debugging.
|
2626
|
+
#
|
2627
|
+
# _@param_ `workspace_gid` — (required) Globally unique identifier for the workspace or organization.
|
2628
|
+
#
|
2629
|
+
# _@param_ `options` — the request I/O options
|
2630
|
+
sig { params(workspace_gid: String, options: T::Hash[T.untyped, T.untyped]).returns(T::Enumerable[Asana::Resources::Tag]) }
|
2631
|
+
def get_tags_for_workspace(workspace_gid:, options: {}); end
|
2632
|
+
end
|
2633
|
+
|
2629
2634
|
class Task
|
2630
2635
|
# Get subtasks from a task
|
2631
2636
|
#
|
@@ -2848,69 +2853,130 @@ module Asana
|
|
2848
2853
|
sig { params(options: T::Hash[T.untyped, T.untyped]).returns(Asana::Resources::User) }
|
2849
2854
|
def me(options: {}); end
|
2850
2855
|
end
|
2856
|
+
end
|
2857
|
+
end
|
2851
2858
|
|
2852
|
-
|
2853
|
-
|
2854
|
-
|
2855
|
-
|
2856
|
-
|
2857
|
-
|
2858
|
-
|
2859
|
-
|
2860
|
-
|
2861
|
-
|
2862
|
-
|
2863
|
-
|
2864
|
-
|
2865
|
-
|
2866
|
-
|
2859
|
+
module T
|
2860
|
+
# sord warn - T::Types::Base wasn't able to be resolved to a constant in this project
|
2861
|
+
# sord warn - T::Types::Base wasn't able to be resolved to a constant in this project
|
2862
|
+
# _@param_ `type`
|
2863
|
+
sig { params(type: T.any(T::Types::Base, T.class_of(Object))).returns(T::Types::Base) }
|
2864
|
+
def self.nilable(type); end
|
2865
|
+
|
2866
|
+
# sord warn - T::Types::Base wasn't able to be resolved to a constant in this project
|
2867
|
+
# _@param_ `obj`
|
2868
|
+
#
|
2869
|
+
# _@param_ `type`
|
2870
|
+
sig { params(obj: BasicObject, type: T.any(T::Types::Base, T.class_of(Object))).returns(BasicObject) }
|
2871
|
+
def self.let(obj, type); end
|
2872
|
+
|
2873
|
+
# sord warn - T::Types::Base wasn't able to be resolved to a constant in this project
|
2874
|
+
sig { returns(T::Types::Base) }
|
2875
|
+
def self.untyped; end
|
2876
|
+
|
2877
|
+
# sord warn - T::Types::Base wasn't able to be resolved to a constant in this project
|
2878
|
+
# sord warn - T::Types::Base wasn't able to be resolved to a constant in this project
|
2879
|
+
# _@param_ `type`
|
2880
|
+
sig { params(type: T.any(T::Types::Base, T.class_of(Object))).returns(T::Types::Base) }
|
2881
|
+
def nilable(type); end
|
2882
|
+
|
2883
|
+
# _@param_ `o`
|
2884
|
+
#
|
2885
|
+
# _@param_ `type`
|
2886
|
+
sig { params(o: T, type: T.class_of(T)).returns(T) }
|
2887
|
+
def let(o, type); end
|
2888
|
+
|
2889
|
+
class Struct
|
2890
|
+
extend T::Props::ClassMethods
|
2867
2891
|
end
|
2868
2892
|
end
|
2869
2893
|
|
2870
2894
|
# Command-line and gem client for Asana (unofficial)
|
2871
2895
|
module Checkoff
|
2872
|
-
VERSION = T.let('0.
|
2896
|
+
VERSION = T.let('0.229.0', T.untyped)
|
2873
2897
|
|
2874
2898
|
# Move tasks from one place to another
|
2875
2899
|
class MvSubcommand
|
2876
|
-
|
2900
|
+
# _@param_ `from_workspace_arg`
|
2901
|
+
#
|
2902
|
+
# _@param_ `from_project_arg`
|
2903
|
+
#
|
2904
|
+
# _@param_ `from_section_arg`
|
2905
|
+
sig { params(from_workspace_arg: T.any(Symbol, String), from_project_arg: T.any(Symbol, String), from_section_arg: T.nilable(String)).void }
|
2877
2906
|
def validate_and_assign_from_location(from_workspace_arg, from_project_arg, from_section_arg); end
|
2878
2907
|
|
2879
|
-
|
2908
|
+
# _@param_ `to_project_arg`
|
2909
|
+
sig { params(to_project_arg: T.any(Symbol, String)).returns(T.any(String, Symbol)) }
|
2880
2910
|
def create_to_project_name(to_project_arg); end
|
2881
2911
|
|
2882
|
-
|
2912
|
+
# _@param_ `to_section_arg` — :source_section
|
2913
|
+
sig { params(to_section_arg: T.nilable(T.any(Symbol, String))).void }
|
2883
2914
|
def create_to_section_name(to_section_arg); end
|
2884
2915
|
|
2885
|
-
|
2916
|
+
# _@param_ `to_workspace_arg`
|
2917
|
+
#
|
2918
|
+
# _@param_ `to_project_arg`
|
2919
|
+
#
|
2920
|
+
# _@param_ `to_section_arg` — :source_section
|
2921
|
+
sig { params(to_workspace_arg: T.any(Symbol, String), to_project_arg: T.any(Symbol, String), to_section_arg: T.nilable(T.any(Symbol, String))).void }
|
2886
2922
|
def validate_and_assign_to_location(to_workspace_arg, to_project_arg, to_section_arg); end
|
2887
2923
|
|
2924
|
+
# _@param_ `from_workspace_arg`
|
2925
|
+
#
|
2926
|
+
# _@param_ `from_project_arg`
|
2927
|
+
#
|
2928
|
+
# _@param_ `from_section_arg`
|
2929
|
+
#
|
2930
|
+
# _@param_ `to_workspace_arg`
|
2931
|
+
#
|
2932
|
+
# _@param_ `to_project_arg`
|
2933
|
+
#
|
2934
|
+
# _@param_ `to_section_arg` — :source_section
|
2935
|
+
#
|
2936
|
+
# _@param_ `config`
|
2937
|
+
#
|
2938
|
+
# _@param_ `projects`
|
2939
|
+
#
|
2940
|
+
# _@param_ `sections`
|
2941
|
+
#
|
2942
|
+
# _@param_ `logger`
|
2888
2943
|
sig do
|
2889
2944
|
params(
|
2890
|
-
from_workspace_arg: T.
|
2891
|
-
from_project_arg: T.
|
2892
|
-
from_section_arg: T.
|
2893
|
-
to_workspace_arg: T.
|
2894
|
-
to_project_arg: T.
|
2895
|
-
to_section_arg: T.
|
2896
|
-
config: T.untyped,
|
2897
|
-
projects:
|
2898
|
-
sections:
|
2899
|
-
logger:
|
2945
|
+
from_workspace_arg: T.any(Symbol, String),
|
2946
|
+
from_project_arg: T.any(Symbol, String),
|
2947
|
+
from_section_arg: T.nilable(String),
|
2948
|
+
to_workspace_arg: T.any(Symbol, String),
|
2949
|
+
to_project_arg: T.any(Symbol, String),
|
2950
|
+
to_section_arg: T.nilable(T.any(Symbol, String)),
|
2951
|
+
config: T.any(Checkoff::Internal::EnvFallbackConfigLoader, T::Hash[T.untyped, T.untyped]),
|
2952
|
+
projects: Checkoff::Projects,
|
2953
|
+
sections: Checkoff::Sections,
|
2954
|
+
logger: IO
|
2900
2955
|
).void
|
2901
2956
|
end
|
2902
2957
|
def initialize(from_workspace_arg:, from_project_arg:, from_section_arg:, to_workspace_arg:, to_project_arg:, to_section_arg:, config: Checkoff::Internal::ConfigLoader.load(:asana), projects: Checkoff::Projects.new(config:), sections: Checkoff::Sections.new(config:), logger: $stderr); end
|
2903
2958
|
|
2904
|
-
|
2959
|
+
# _@param_ `tasks`
|
2960
|
+
#
|
2961
|
+
# _@param_ `to_project`
|
2962
|
+
#
|
2963
|
+
# _@param_ `to_section`
|
2964
|
+
sig { params(tasks: T::Enumerable[Asana::Resources::Task], to_project: Asana::Resources::Project, to_section: Asana::Resources::Section).void }
|
2905
2965
|
def move_tasks(tasks, to_project, to_section); end
|
2906
2966
|
|
2907
|
-
|
2967
|
+
# _@param_ `from_workspace_name`
|
2968
|
+
#
|
2969
|
+
# _@param_ `from_project_name`
|
2970
|
+
#
|
2971
|
+
# _@param_ `from_section_name`
|
2972
|
+
sig { params(from_workspace_name: String, from_project_name: T.any(String, Symbol), from_section_name: T.any(String, Symbol)).returns(T::Enumerable[Asana::Resources::Task]) }
|
2908
2973
|
def fetch_tasks(from_workspace_name, from_project_name, from_section_name); end
|
2909
2974
|
|
2910
|
-
sig {
|
2975
|
+
sig { void }
|
2911
2976
|
def run; end
|
2912
2977
|
|
2913
|
-
|
2978
|
+
# _@param_ `project_arg`
|
2979
|
+
sig { params(project_arg: String).returns(T.any(Symbol, String)) }
|
2914
2980
|
def project_arg_to_name(project_arg); end
|
2915
2981
|
|
2916
2982
|
# Returns the value of attribute from_workspace_name.
|
@@ -2948,49 +3014,86 @@ module Checkoff
|
|
2948
3014
|
|
2949
3015
|
# CLI subcommand that shows tasks in JSON form
|
2950
3016
|
class ViewSubcommand
|
3017
|
+
# _@param_ `workspace_name`
|
3018
|
+
#
|
3019
|
+
# _@param_ `project_name`
|
3020
|
+
#
|
3021
|
+
# _@param_ `section_name`
|
3022
|
+
#
|
3023
|
+
# _@param_ `task_name`
|
3024
|
+
#
|
3025
|
+
# _@param_ `config`
|
3026
|
+
#
|
3027
|
+
# _@param_ `projects`
|
3028
|
+
#
|
3029
|
+
# _@param_ `sections`
|
3030
|
+
#
|
3031
|
+
# _@param_ `tasks`
|
3032
|
+
#
|
3033
|
+
# _@param_ `stderr`
|
2951
3034
|
sig do
|
2952
3035
|
params(
|
2953
|
-
workspace_name:
|
2954
|
-
project_name: T.
|
2955
|
-
section_name: T.
|
2956
|
-
task_name: T.
|
2957
|
-
config: T.untyped,
|
2958
|
-
projects:
|
2959
|
-
sections:
|
2960
|
-
tasks:
|
2961
|
-
stderr:
|
3036
|
+
workspace_name: String,
|
3037
|
+
project_name: T.any(String, Symbol),
|
3038
|
+
section_name: T.nilable(T.any(String, Symbol)),
|
3039
|
+
task_name: T.nilable(T.any(String, Symbol)),
|
3040
|
+
config: T.any(Checkoff::Internal::EnvFallbackConfigLoader, T::Hash[T.untyped, T.untyped]),
|
3041
|
+
projects: Checkoff::Projects,
|
3042
|
+
sections: Checkoff::Sections,
|
3043
|
+
tasks: Checkoff::Tasks,
|
3044
|
+
stderr: IO
|
2962
3045
|
).void
|
2963
3046
|
end
|
2964
3047
|
def initialize(workspace_name, project_name, section_name, task_name, config: Checkoff::Internal::ConfigLoader.load(:asana), projects: Checkoff::Projects.new(config:), sections: Checkoff::Sections.new(config:,
|
2965
3048
|
projects:), tasks: Checkoff::Tasks.new(config:,
|
2966
3049
|
sections:), stderr: $stderr); end
|
2967
3050
|
|
2968
|
-
sig {
|
3051
|
+
sig { void }
|
2969
3052
|
def run; end
|
2970
3053
|
|
2971
|
-
|
3054
|
+
# _@param_ `project_name`
|
3055
|
+
sig { params(project_name: String).returns(T.any(String, Symbol)) }
|
2972
3056
|
def validate_and_assign_project_name(project_name); end
|
2973
3057
|
|
2974
|
-
|
3058
|
+
# _@param_ `workspace`
|
3059
|
+
#
|
3060
|
+
# _@param_ `project`
|
3061
|
+
sig { params(workspace: T.any(String, Symbol), project: T.any(String, Symbol)).returns(String) }
|
2975
3062
|
def run_on_project(workspace, project); end
|
2976
3063
|
|
2977
|
-
|
3064
|
+
# _@param_ `workspace`
|
3065
|
+
#
|
3066
|
+
# _@param_ `project`
|
3067
|
+
#
|
3068
|
+
# _@param_ `section`
|
3069
|
+
sig { params(workspace: T.any(String, Symbol), project: T.any(String, Symbol), section: T.nilable(T.any(String, Symbol))).returns(String) }
|
2978
3070
|
def run_on_section(workspace, project, section); end
|
2979
3071
|
|
3072
|
+
# _@param_ `workspace`
|
3073
|
+
#
|
3074
|
+
# _@param_ `project`
|
3075
|
+
#
|
3076
|
+
# _@param_ `section`
|
3077
|
+
#
|
3078
|
+
# _@param_ `task_name`
|
2980
3079
|
sig do
|
2981
3080
|
params(
|
2982
|
-
workspace: T.
|
2983
|
-
project: T.
|
2984
|
-
section: T.
|
2985
|
-
task_name:
|
2986
|
-
).returns(
|
3081
|
+
workspace: T.any(String, Symbol),
|
3082
|
+
project: T.any(String, Symbol),
|
3083
|
+
section: T.nilable(T.any(String, Symbol)),
|
3084
|
+
task_name: String
|
3085
|
+
).returns(String)
|
2987
3086
|
end
|
2988
3087
|
def run_on_task(workspace, project, section, task_name); end
|
2989
3088
|
|
2990
|
-
|
3089
|
+
# sord warn - undefined is probably not a type, but using anyway
|
3090
|
+
# sord warn - undefined wasn't able to be resolved to a constant in this project
|
3091
|
+
# _@param_ `task`
|
3092
|
+
sig { params(task: Asana::Resources::Task).returns(T::Hash[Symbol, undefined]) }
|
2991
3093
|
def task_to_hash(task); end
|
2992
3094
|
|
2993
|
-
|
3095
|
+
# _@param_ `tasks`
|
3096
|
+
sig { params(tasks: T::Enumerable[Asana::Resources::Task]).returns(T::Array[T::Hash[T.untyped, T.untyped]]) }
|
2994
3097
|
def tasks_to_hash(tasks); end
|
2995
3098
|
|
2996
3099
|
# Returns the value of attribute workspace_name.
|
@@ -3024,18 +3127,27 @@ module Checkoff
|
|
3024
3127
|
|
3025
3128
|
# CLI subcommand that creates a task
|
3026
3129
|
class QuickaddSubcommand
|
3130
|
+
# _@param_ `workspace_name`
|
3131
|
+
#
|
3132
|
+
# _@param_ `task_name`
|
3133
|
+
#
|
3134
|
+
# _@param_ `config`
|
3135
|
+
#
|
3136
|
+
# _@param_ `workspaces`
|
3137
|
+
#
|
3138
|
+
# _@param_ `tasks`
|
3027
3139
|
sig do
|
3028
3140
|
params(
|
3029
|
-
workspace_name:
|
3030
|
-
task_name:
|
3031
|
-
config: T.untyped,
|
3032
|
-
workspaces:
|
3033
|
-
tasks:
|
3141
|
+
workspace_name: String,
|
3142
|
+
task_name: String,
|
3143
|
+
config: T.any(Internal::EnvFallbackConfigLoader, T::Hash[T.untyped, T.untyped]),
|
3144
|
+
workspaces: Checkoff::Workspaces,
|
3145
|
+
tasks: Checkoff::Tasks
|
3034
3146
|
).void
|
3035
3147
|
end
|
3036
3148
|
def initialize(workspace_name, task_name, config: Checkoff::Internal::ConfigLoader.load(:asana), workspaces: Checkoff::Workspaces.new(config:), tasks: Checkoff::Tasks.new(config:)); end
|
3037
3149
|
|
3038
|
-
sig {
|
3150
|
+
sig { void }
|
3039
3151
|
def run; end
|
3040
3152
|
|
3041
3153
|
# Returns the value of attribute workspace_name.
|
@@ -3073,7 +3185,7 @@ module Checkoff
|
|
3073
3185
|
# _@param_ `workspaces`
|
3074
3186
|
sig do
|
3075
3187
|
params(
|
3076
|
-
config: Checkoff::Internal::EnvFallbackConfigLoader,
|
3188
|
+
config: T.any(Checkoff::Internal::EnvFallbackConfigLoader, T::Hash[T.untyped, T.untyped]),
|
3077
3189
|
clients: Checkoff::Clients,
|
3078
3190
|
client: Asana::Client,
|
3079
3191
|
projects: Checkoff::Projects,
|
@@ -3099,6 +3211,23 @@ module Checkoff
|
|
3099
3211
|
end
|
3100
3212
|
def tasks(workspace_name, tag_name, only_uncompleted: true, extra_fields: []); end
|
3101
3213
|
|
3214
|
+
# _@param_ `workspace_name`
|
3215
|
+
#
|
3216
|
+
# _@param_ `tag_gid`
|
3217
|
+
#
|
3218
|
+
# _@param_ `only_uncompleted`
|
3219
|
+
#
|
3220
|
+
# _@param_ `extra_fields`
|
3221
|
+
sig do
|
3222
|
+
params(
|
3223
|
+
workspace_name: String,
|
3224
|
+
tag_gid: String,
|
3225
|
+
only_uncompleted: T::Boolean,
|
3226
|
+
extra_fields: T::Array[String]
|
3227
|
+
).returns(T::Enumerable[Asana::Resources::Task])
|
3228
|
+
end
|
3229
|
+
def tasks_by_tag_gid(workspace_name, tag_gid, only_uncompleted: true, extra_fields: []); end
|
3230
|
+
|
3102
3231
|
# sord warn - Asana::Resources::Tag wasn't able to be resolved to a constant in this project
|
3103
3232
|
# _@param_ `workspace_name`
|
3104
3233
|
#
|
@@ -3131,23 +3260,6 @@ module Checkoff
|
|
3131
3260
|
sig { void }
|
3132
3261
|
def self.run; end
|
3133
3262
|
|
3134
|
-
# _@param_ `workspace_name`
|
3135
|
-
#
|
3136
|
-
# _@param_ `tag_gid`
|
3137
|
-
#
|
3138
|
-
# _@param_ `only_uncompleted`
|
3139
|
-
#
|
3140
|
-
# _@param_ `extra_fields`
|
3141
|
-
sig do
|
3142
|
-
params(
|
3143
|
-
workspace_name: String,
|
3144
|
-
tag_gid: String,
|
3145
|
-
only_uncompleted: T::Boolean,
|
3146
|
-
extra_fields: T::Array[String]
|
3147
|
-
).returns(T::Enumerable[Asana::Resources::Task])
|
3148
|
-
end
|
3149
|
-
def tasks_by_tag_gid(workspace_name, tag_gid, only_uncompleted: true, extra_fields: []); end
|
3150
|
-
|
3151
3263
|
sig { returns(Checkoff::Workspaces) }
|
3152
3264
|
attr_reader :workspaces
|
3153
3265
|
|
@@ -3188,7 +3300,7 @@ module Checkoff
|
|
3188
3300
|
# _@param_ `asana_task`
|
3189
3301
|
sig do
|
3190
3302
|
params(
|
3191
|
-
config: Checkoff::Internal::EnvFallbackConfigLoader,
|
3303
|
+
config: T.any(T::Hash[T.untyped, T.untyped], Checkoff::Internal::EnvFallbackConfigLoader),
|
3192
3304
|
client: Asana::Client,
|
3193
3305
|
workspaces: Checkoff::Workspaces,
|
3194
3306
|
sections: Checkoff::Sections,
|
@@ -3331,9 +3443,9 @@ module Checkoff
|
|
3331
3443
|
# <regular keys from API response>
|
3332
3444
|
# +
|
3333
3445
|
# unwrapped:
|
3334
|
-
# membership_by_section_gid: Hash
|
3335
|
-
# membership_by_project_gid: Hash
|
3336
|
-
# membership_by_project_name: Hash
|
3446
|
+
# membership_by_section_gid: Hash{String => Hash (membership)>
|
3447
|
+
# membership_by_project_gid: Hash{String => Hash (membership)>
|
3448
|
+
# membership_by_project_name: Hash{String => Hash (membership)>
|
3337
3449
|
# task: String (name)
|
3338
3450
|
#
|
3339
3451
|
# _@param_ `task`
|
@@ -3400,6 +3512,7 @@ module Checkoff
|
|
3400
3512
|
sig { returns(String) }
|
3401
3513
|
def default_assignee_gid; end
|
3402
3514
|
|
3515
|
+
# @sg-ignore
|
3403
3516
|
sig { returns(::Logger) }
|
3404
3517
|
def logger; end
|
3405
3518
|
|
@@ -3467,7 +3580,7 @@ module Checkoff
|
|
3467
3580
|
# _@param_ `asana_event_enrichment`
|
3468
3581
|
sig do
|
3469
3582
|
params(
|
3470
|
-
config: Checkoff::Internal::EnvFallbackConfigLoader,
|
3583
|
+
config: T.any(Checkoff::Internal::EnvFallbackConfigLoader, T::Hash[T.untyped, T.untyped]),
|
3471
3584
|
workspaces: Checkoff::Workspaces,
|
3472
3585
|
tasks: Checkoff::Tasks,
|
3473
3586
|
sections: Checkoff::Sections,
|
@@ -3495,14 +3608,8 @@ module Checkoff
|
|
3495
3608
|
sig { params(asana_event: T::Hash[T.untyped, T.untyped]).returns(T::Hash[T.untyped, T.untyped]) }
|
3496
3609
|
def enrich_event(asana_event); end
|
3497
3610
|
|
3498
|
-
# sord warn - "[String" does not appear to be a type
|
3499
|
-
# sord warn - "Array<String>]" does not appear to be a type
|
3500
|
-
# sord warn - Invalid hash, must have exactly two types: "Hash<String,[String,Array<String>]>".
|
3501
|
-
# sord warn - "[String" does not appear to be a type
|
3502
|
-
# sord warn - "Array<String>]" does not appear to be a type
|
3503
|
-
# sord warn - Invalid hash, must have exactly two types: "Hash<String,[String,Array<String>]>".
|
3504
3611
|
# _@param_ `filter`
|
3505
|
-
sig { params(filter: T.
|
3612
|
+
sig { params(filter: T::Hash[String, T.any(String, T::Array[String])]).returns(T::Hash[String, T.any(String, T::Array[String])]) }
|
3506
3613
|
def enrich_filter(filter); end
|
3507
3614
|
|
3508
3615
|
# _@param_ `webhook_subscription` — Hash of the request made to webhook POST endpoint - https://app.asana.com/api/1.0/webhooks https://developers.asana.com/reference/createwebhook
|
@@ -3512,6 +3619,7 @@ module Checkoff
|
|
3512
3619
|
sig { void }
|
3513
3620
|
def self.run; end
|
3514
3621
|
|
3622
|
+
# @sg-ignore
|
3515
3623
|
sig { returns(::Logger) }
|
3516
3624
|
def logger; end
|
3517
3625
|
|
@@ -3586,7 +3694,7 @@ module Checkoff
|
|
3586
3694
|
# _@param_ `date_or_time`
|
3587
3695
|
#
|
3588
3696
|
# _@param_ `period` — Valid values: :this_week, :now_or_before, :indefinite, [:less_than_n_days_ago, Integer]
|
3589
|
-
sig { params(date_or_time: T.nilable(T.any(Date, Time)), period: T.any(Symbol,
|
3697
|
+
sig { params(date_or_time: T.nilable(T.any(Date, Time)), period: T.any(Symbol, [Symbol, Integer])).returns(T::Boolean) }
|
3590
3698
|
def in_period?(date_or_time, period); end
|
3591
3699
|
|
3592
3700
|
# _@param_ `date_or_time`
|
@@ -3658,6 +3766,7 @@ module Checkoff
|
|
3658
3766
|
sig { void }
|
3659
3767
|
def self.run; end
|
3660
3768
|
|
3769
|
+
# @sg-ignore
|
3661
3770
|
sig { returns(::Logger) }
|
3662
3771
|
def logger; end
|
3663
3772
|
|
@@ -3698,7 +3807,7 @@ module Checkoff
|
|
3698
3807
|
# _@param_ `config`
|
3699
3808
|
#
|
3700
3809
|
# _@param_ `asana_client_class`
|
3701
|
-
sig { params(config: Checkoff::Internal::EnvFallbackConfigLoader, asana_client_class: T.class_of(Asana::Client)).void }
|
3810
|
+
sig { params(config: T.any(T::Hash[T.untyped, T.untyped], Checkoff::Internal::EnvFallbackConfigLoader), asana_client_class: T.class_of(Asana::Client)).void }
|
3702
3811
|
def initialize(config: Checkoff::Internal::ConfigLoader.load(:asana), asana_client_class: Asana::Client); end
|
3703
3812
|
|
3704
3813
|
sig { returns(Asana::Client) }
|
@@ -3719,7 +3828,7 @@ module Checkoff
|
|
3719
3828
|
# _@param_ `client`
|
3720
3829
|
#
|
3721
3830
|
# _@param_ `projects`
|
3722
|
-
sig { params(config: Checkoff::Internal::EnvFallbackConfigLoader, client: Asana::Client, projects: Checkoff::Projects).void }
|
3831
|
+
sig { params(config: T.any(Checkoff::Internal::EnvFallbackConfigLoader, T::Hash[T.untyped, T.untyped]), client: Asana::Client, projects: Checkoff::Projects).void }
|
3723
3832
|
def initialize(config: Checkoff::Internal::ConfigLoader.load(:asana), client: Checkoff::Clients.new(config:).client, projects: Checkoff::Projects.new(config:,
|
3724
3833
|
client:)); end
|
3725
3834
|
|
@@ -3780,7 +3889,7 @@ module Checkoff
|
|
3780
3889
|
# _@param_ `timing`
|
3781
3890
|
sig do
|
3782
3891
|
params(
|
3783
|
-
config: Checkoff::Internal::EnvFallbackConfigLoader,
|
3892
|
+
config: T.any(Checkoff::Internal::EnvFallbackConfigLoader, T::Hash[T.untyped, T.untyped]),
|
3784
3893
|
client: Asana::Client,
|
3785
3894
|
workspaces: Checkoff::Workspaces,
|
3786
3895
|
project_hashes: Checkoff::Internal::ProjectHashes,
|
@@ -3795,12 +3904,14 @@ module Checkoff
|
|
3795
3904
|
sig { params(extra_fields: T::Array[String]).returns(T::Array[String]) }
|
3796
3905
|
def task_fields(extra_fields: []); end
|
3797
3906
|
|
3907
|
+
# sord warn - undefined is probably not a type, but using anyway
|
3908
|
+
# sord warn - undefined wasn't able to be resolved to a constant in this project
|
3798
3909
|
# Default options used in Asana API to pull tasks
|
3799
3910
|
#
|
3800
3911
|
# _@param_ `extra_fields`
|
3801
3912
|
#
|
3802
3913
|
# _@param_ `only_uncompleted`
|
3803
|
-
sig { params(extra_fields: T::Array[String], only_uncompleted: T::Boolean).returns(T::Hash[Symbol,
|
3914
|
+
sig { params(extra_fields: T::Array[String], only_uncompleted: T::Boolean).returns(T::Hash[Symbol, undefined]) }
|
3804
3915
|
def task_options(extra_fields: [], only_uncompleted: false); end
|
3805
3916
|
|
3806
3917
|
# _@param_ `extra_project_fields`
|
@@ -3885,7 +3996,7 @@ module Checkoff
|
|
3885
3996
|
# _@param_ `project`
|
3886
3997
|
#
|
3887
3998
|
# _@param_ `period` — See Checkoff::Timing#in_period? - :now_or_before,:this_week
|
3888
|
-
sig { params(project: Asana::Resources::Project, period: T.any(Symbol,
|
3999
|
+
sig { params(project: Asana::Resources::Project, period: T.any(Symbol, [Symbol, Integer])).returns(T::Boolean) }
|
3889
4000
|
def project_ready?(project, period: :now_or_before); end
|
3890
4001
|
|
3891
4002
|
# _@param_ `project`
|
@@ -3893,7 +4004,7 @@ module Checkoff
|
|
3893
4004
|
# _@param_ `field_name`
|
3894
4005
|
#
|
3895
4006
|
# _@param_ `period` — See Checkoff::Timing#in_period? - :now_or_before,:this_week
|
3896
|
-
sig { params(project: Asana::Resources::Project, field_name: T.any(Symbol, T::Array[T.untyped]), period: T.any(Symbol,
|
4007
|
+
sig { params(project: Asana::Resources::Project, field_name: T.any(Symbol, T::Array[T.untyped]), period: T.any(Symbol, [Symbol, Integer])).returns(T::Boolean) }
|
3897
4008
|
def in_period?(project, field_name, period); end
|
3898
4009
|
|
3899
4010
|
sig { returns(T::Hash[T.untyped, T.untyped]) }
|
@@ -3906,6 +4017,7 @@ module Checkoff
|
|
3906
4017
|
sig { params(workspace_name: String).returns(Asana::Resources::Project) }
|
3907
4018
|
def my_tasks(workspace_name); end
|
3908
4019
|
|
4020
|
+
# @sg-ignore
|
3909
4021
|
sig { returns(::Logger) }
|
3910
4022
|
def logger; end
|
3911
4023
|
|
@@ -3968,7 +4080,7 @@ module Checkoff
|
|
3968
4080
|
# _@param_ `time`
|
3969
4081
|
sig do
|
3970
4082
|
params(
|
3971
|
-
config: Checkoff::Internal::EnvFallbackConfigLoader,
|
4083
|
+
config: T.any(Checkoff::Internal::EnvFallbackConfigLoader, T::Hash[T.untyped, T.untyped]),
|
3972
4084
|
client: Asana::Client,
|
3973
4085
|
projects: Checkoff::Projects,
|
3974
4086
|
workspaces: Checkoff::Workspaces,
|
@@ -3997,9 +4109,6 @@ module Checkoff
|
|
3997
4109
|
sig { params(project_gid: String, extra_fields: T::Array[String]).returns(T::Enumerable[Asana::Resources::Section]) }
|
3998
4110
|
def sections_by_project_gid(project_gid, extra_fields: []); end
|
3999
4111
|
|
4000
|
-
# sord warn - "[String" does not appear to be a type
|
4001
|
-
# sord warn - "nil]" does not appear to be a type
|
4002
|
-
# sord warn - Invalid hash, must have exactly two types: "Hash{[String, nil] => Enumerable<Asana::Resources::Task>}".
|
4003
4112
|
# Given a workspace name and project name, then provide a Hash of
|
4004
4113
|
# tasks with section name -> task list of the uncompleted tasks
|
4005
4114
|
#
|
@@ -4016,7 +4125,7 @@ module Checkoff
|
|
4016
4125
|
project_name: T.any(String, Symbol),
|
4017
4126
|
only_uncompleted: T::Boolean,
|
4018
4127
|
extra_fields: T::Array[String]
|
4019
|
-
).returns(T.
|
4128
|
+
).returns(T::Hash[T.nilable(String), T::Enumerable[Asana::Resources::Task]])
|
4020
4129
|
end
|
4021
4130
|
def tasks_by_section(workspace_name, project_name, only_uncompleted: true, extra_fields: []); end
|
4022
4131
|
|
@@ -4051,6 +4160,7 @@ module Checkoff
|
|
4051
4160
|
def tasks(workspace_name, project_name, section_name, only_uncompleted: true, extra_fields: []); end
|
4052
4161
|
|
4053
4162
|
# Pulls just names of tasks from a given section.
|
4163
|
+
# @sg-ignore
|
4054
4164
|
#
|
4055
4165
|
# _@param_ `workspace_name`
|
4056
4166
|
#
|
@@ -4120,9 +4230,6 @@ module Checkoff
|
|
4120
4230
|
sig { params(response: Asana::HttpClient::Response).returns(T::Array[T.any(T::Hash[T.untyped, T.untyped], T::Hash[T.untyped, T.untyped])]) }
|
4121
4231
|
def parse(response); end
|
4122
4232
|
|
4123
|
-
# sord warn - "[String" does not appear to be a type
|
4124
|
-
# sord warn - "nil]" does not appear to be a type
|
4125
|
-
# sord warn - Invalid hash, must have exactly two types: "Hash<[String,nil], Enumerable<Asana::Resources::Task>>".
|
4126
4233
|
# Given a project object, pull all tasks, then provide a Hash of
|
4127
4234
|
# tasks with section name -> task list of the uncompleted tasks
|
4128
4235
|
#
|
@@ -4131,29 +4238,23 @@ module Checkoff
|
|
4131
4238
|
# _@param_ `only_uncompleted`
|
4132
4239
|
#
|
4133
4240
|
# _@param_ `extra_fields`
|
4134
|
-
sig { params(project: Asana::Resources::Project, only_uncompleted: T::Boolean, extra_fields: T::Array[String]).returns(T.
|
4241
|
+
sig { params(project: Asana::Resources::Project, only_uncompleted: T::Boolean, extra_fields: T::Array[String]).returns(T::Hash[T.nilable(String), T::Enumerable[Asana::Resources::Task]]) }
|
4135
4242
|
def tasks_by_section_for_project(project, only_uncompleted: true, extra_fields: []); end
|
4136
4243
|
|
4137
|
-
# sord warn - "[String" does not appear to be a type
|
4138
|
-
# sord warn - "nil]" does not appear to be a type
|
4139
|
-
# sord warn - Invalid hash, must have exactly two types: "Hash<[String,nil], Enumerable<Asana::Resources::Task>>".
|
4140
4244
|
# Given a list of tasks, pull a Hash of tasks with section name -> task list
|
4141
4245
|
#
|
4142
4246
|
# _@param_ `tasks`
|
4143
4247
|
#
|
4144
4248
|
# _@param_ `project_gid`
|
4145
|
-
sig { params(tasks: T::Enumerable[Asana::Resources::Task], project_gid: String).returns(T.
|
4249
|
+
sig { params(tasks: T::Enumerable[Asana::Resources::Task], project_gid: String).returns(T::Hash[T.nilable(String), T::Enumerable[Asana::Resources::Task]]) }
|
4146
4250
|
def by_section(tasks, project_gid); end
|
4147
4251
|
|
4148
|
-
# sord warn - "[String" does not appear to be a type
|
4149
|
-
# sord warn - "nil]" does not appear to be a type
|
4150
|
-
# sord warn - Invalid hash, must have exactly two types: "Hash{[String, nil] => Enumerable<Asana::Resources::Task>}".
|
4151
4252
|
# _@param_ `by_section`
|
4152
4253
|
#
|
4153
4254
|
# _@param_ `task`
|
4154
4255
|
#
|
4155
4256
|
# _@param_ `project_gid`
|
4156
|
-
sig { params(by_section: T.
|
4257
|
+
sig { params(by_section: T::Hash[T.nilable(String), T::Array[Asana::Resources::Task]], task: Asana::Resources::Task, project_gid: String).void }
|
4157
4258
|
def file_task_by_section(by_section, task, project_gid); end
|
4158
4259
|
|
4159
4260
|
# _@param_ `workspace_name`
|
@@ -4162,6 +4263,7 @@ module Checkoff
|
|
4162
4263
|
sig { params(workspace_name: String, project_name: T.any(String, Symbol)).returns(Asana::Resources::Project) }
|
4163
4264
|
def project_or_raise(workspace_name, project_name); end
|
4164
4265
|
|
4266
|
+
# @sg-ignore
|
4165
4267
|
sig { returns(::Logger) }
|
4166
4268
|
def logger; end
|
4167
4269
|
|
@@ -4227,13 +4329,10 @@ module Checkoff
|
|
4227
4329
|
sig { params(task: Asana::Resources::Task).returns(T::Boolean) }
|
4228
4330
|
def all_subtasks_completed?(task); end
|
4229
4331
|
|
4230
|
-
# sord warn - "[nil" does not appear to be a type
|
4231
|
-
# sord warn - "String]" does not appear to be a type
|
4232
|
-
# sord warn - Invalid hash, must have exactly two types: "Hash<[nil,String], Enumerable<Asana::Resources::Task>>".
|
4233
4332
|
# pulls a Hash of subtasks broken out by section
|
4234
4333
|
#
|
4235
4334
|
# _@param_ `tasks`
|
4236
|
-
sig { params(tasks: T::Enumerable[Asana::Resources::Task]).returns(T.
|
4335
|
+
sig { params(tasks: T::Enumerable[Asana::Resources::Task]).returns(T::Hash[T.nilable(String), T::Enumerable[Asana::Resources::Task]]) }
|
4237
4336
|
def by_section(tasks); end
|
4238
4337
|
|
4239
4338
|
# Returns all subtasks, including section headers
|
@@ -4267,7 +4366,7 @@ module Checkoff
|
|
4267
4366
|
# _@param_ `by_section`
|
4268
4367
|
#
|
4269
4368
|
# _@param_ `task`
|
4270
|
-
sig { params(current_section: T.nilable(String), by_section: T::Hash[T.untyped, T.untyped], task: Asana::Resources::Task).returns(
|
4369
|
+
sig { params(current_section: T.nilable(String), by_section: T::Hash[T.untyped, T.untyped], task: Asana::Resources::Task).returns([String, T::Hash[T.untyped, T.untyped]]) }
|
4271
4370
|
def file_task_by_section(current_section, by_section, task); end
|
4272
4371
|
|
4273
4372
|
sig { returns(Checkoff::Projects) }
|
@@ -4323,7 +4422,7 @@ module Checkoff
|
|
4323
4422
|
# _@param_ `gid`
|
4324
4423
|
#
|
4325
4424
|
# _@param_ `resource_type`
|
4326
|
-
sig { params(gid: String, resource_type: T.nilable(String)).returns(
|
4425
|
+
sig { params(gid: String, resource_type: T.nilable(String)).returns([T.untyped, T.untyped, T.untyped, T.untyped]) }
|
4327
4426
|
def resource_by_gid(gid, resource_type: nil); end
|
4328
4427
|
|
4329
4428
|
# _@param_ `gid`
|
@@ -4396,8 +4495,6 @@ module Checkoff
|
|
4396
4495
|
# _@param_ `task`
|
4397
4496
|
#
|
4398
4497
|
# _@param_ `limit_to_portfolio_gid`
|
4399
|
-
#
|
4400
|
-
# _@param_ `project_name`
|
4401
4498
|
sig { params(task: Asana::Resources::Task, limit_to_portfolio_gid: T.nilable(String)).returns(T::Boolean) }
|
4402
4499
|
def task_dependent_on_previous_section_last_milestone?(task, limit_to_portfolio_gid: nil); end
|
4403
4500
|
|
@@ -4435,8 +4532,8 @@ module Checkoff
|
|
4435
4532
|
|
4436
4533
|
# Pull portfolios from Asana
|
4437
4534
|
class Portfolios
|
4438
|
-
extend CacheMethod::ClassMethods
|
4439
4535
|
extend T::Sig
|
4536
|
+
extend CacheMethod::ClassMethods
|
4440
4537
|
MINUTE = T.let(60, T.untyped)
|
4441
4538
|
HOUR = T.let(T.let(MINUTE * 60, Numeric), T.untyped)
|
4442
4539
|
DAY = T.let(T.let(24 * HOUR, Numeric), T.untyped)
|
@@ -4455,7 +4552,7 @@ module Checkoff
|
|
4455
4552
|
# _@param_ `projects`
|
4456
4553
|
sig do
|
4457
4554
|
params(
|
4458
|
-
config: Checkoff::Internal::EnvFallbackConfigLoader,
|
4555
|
+
config: T.any(Checkoff::Internal::EnvFallbackConfigLoader, T::Hash[T.untyped, T.untyped]),
|
4459
4556
|
clients: Checkoff::Clients,
|
4460
4557
|
client: Asana::Client,
|
4461
4558
|
projects: Checkoff::Projects,
|
@@ -4528,7 +4625,7 @@ module Checkoff
|
|
4528
4625
|
# _@param_ `client`
|
4529
4626
|
#
|
4530
4627
|
# _@param_ `asana_workspace`
|
4531
|
-
sig { params(config: Checkoff::Internal::EnvFallbackConfigLoader, client: Asana::Client, asana_workspace: T.class_of(Asana::Resources::Workspace)).void }
|
4628
|
+
sig { params(config: T.any(T::Hash[T.untyped, T.untyped], Checkoff::Internal::EnvFallbackConfigLoader), client: Asana::Client, asana_workspace: T.class_of(Asana::Resources::Workspace)).void }
|
4532
4629
|
def initialize(config: Checkoff::Internal::ConfigLoader.load(:asana), client: Checkoff::Clients.new(config:).client, asana_workspace: Asana::Resources::Workspace); end
|
4533
4630
|
|
4534
4631
|
# Pulls an Asana workspace object
|
@@ -4664,6 +4761,7 @@ module Checkoff
|
|
4664
4761
|
sig { void }
|
4665
4762
|
def self.run; end
|
4666
4763
|
|
4764
|
+
# @sg-ignore
|
4667
4765
|
sig { returns(::Logger) }
|
4668
4766
|
def logger; end
|
4669
4767
|
|
@@ -4717,7 +4815,7 @@ module Checkoff
|
|
4717
4815
|
# _@param_ `client`
|
4718
4816
|
sig do
|
4719
4817
|
params(
|
4720
|
-
config: Checkoff::Internal::EnvFallbackConfigLoader,
|
4818
|
+
config: T.any(T::Hash[T.untyped, T.untyped], Checkoff::Internal::EnvFallbackConfigLoader),
|
4721
4819
|
clients: Checkoff::Clients,
|
4722
4820
|
client: Asana::Client,
|
4723
4821
|
workspaces: Checkoff::Workspaces
|
@@ -4756,10 +4854,10 @@ module Checkoff
|
|
4756
4854
|
|
4757
4855
|
# @sg-ignore
|
4758
4856
|
#
|
4759
|
-
# _@param_ `
|
4857
|
+
# _@param_ `resource`
|
4760
4858
|
#
|
4761
4859
|
# _@param_ `custom_field_name`
|
4762
|
-
sig { params(resource: T.
|
4860
|
+
sig { params(resource: T.any(Asana::Resources::Task, Asana::Resources::Project), custom_field_name: String).returns(T.nilable(T::Hash[T.untyped, T.untyped])) }
|
4763
4861
|
def resource_custom_field_by_name(resource, custom_field_name); end
|
4764
4862
|
|
4765
4863
|
# _@param_ `resource`
|
@@ -4774,13 +4872,10 @@ module Checkoff
|
|
4774
4872
|
sig { params(resource: T.any(Asana::Resources::Project, Asana::Resources::Task), custom_field_gid: String).returns(T::Hash[T.untyped, T.untyped]) }
|
4775
4873
|
def resource_custom_field_by_gid_or_raise(resource, custom_field_gid); end
|
4776
4874
|
|
4777
|
-
# sord warn - "[Hash" does not appear to be a type
|
4778
|
-
# sord warn - "Array<Hash>]" does not appear to be a type
|
4779
|
-
# sord warn - Invalid hash, must have exactly two types: "Hash{String => [Hash,Array<Hash>]}".
|
4780
4875
|
# @sg-ignore
|
4781
4876
|
#
|
4782
4877
|
# _@param_ `custom_field`
|
4783
|
-
sig { params(custom_field: T.untyped).returns(T::Array[T::Hash[T.untyped, T.untyped]]) }
|
4878
|
+
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]]) }
|
4784
4879
|
def resource_custom_field_enum_values(custom_field); end
|
4785
4880
|
|
4786
4881
|
# _@param_ `custom_field`
|
@@ -4874,7 +4969,7 @@ module Checkoff
|
|
4874
4969
|
api_params: T::Hash[String, Object],
|
4875
4970
|
workspace_gid: String,
|
4876
4971
|
extra_fields: T::Array[String],
|
4877
|
-
task_selector: T::Array[T.untyped],
|
4972
|
+
task_selector: T.any(Symbol, T::Array[T.any(Symbol, Integer, T::Array[T.untyped])]),
|
4878
4973
|
fetch_all: T::Boolean
|
4879
4974
|
).returns(T::Enumerable[Asana::Resources::Task])
|
4880
4975
|
end
|
@@ -4913,18 +5008,21 @@ module Checkoff
|
|
4913
5008
|
# _@param_ `url`
|
4914
5009
|
#
|
4915
5010
|
# _@param_ `extra_fields`
|
4916
|
-
#
|
4917
|
-
# _@param_ `fetch_all` — Ensure all results are provided by manually paginating
|
4918
5011
|
sig { params(api_params: T::Hash[String, Object], workspace_gid: String, extra_fields: T::Array[String]).returns(T::Enumerable[Asana::Resources::Task]) }
|
4919
5012
|
def iterated_raw_task_search(api_params, workspace_gid:, extra_fields:); end
|
4920
5013
|
|
5014
|
+
# sord warn - undefined is probably not a type, but using anyway
|
5015
|
+
# sord warn - undefined wasn't able to be resolved to a constant in this project
|
5016
|
+
# @sg-ignore
|
5017
|
+
#
|
4921
5018
|
# _@param_ `extra_fields`
|
4922
|
-
sig { params(extra_fields: T::Array[String]).returns(T::Hash[
|
5019
|
+
sig { params(extra_fields: T::Array[String]).returns(T::Hash[Symbol, undefined]) }
|
4923
5020
|
def calculate_api_options(extra_fields); end
|
4924
5021
|
|
4925
5022
|
sig { void }
|
4926
5023
|
def self.run; end
|
4927
5024
|
|
5025
|
+
# @sg-ignore
|
4928
5026
|
sig { returns(::Logger) }
|
4929
5027
|
def logger; end
|
4930
5028
|
|
@@ -4983,13 +5081,15 @@ module Checkoff
|
|
4983
5081
|
# _@param_ `tasks`
|
4984
5082
|
#
|
4985
5083
|
# _@param_ `timelines`
|
5084
|
+
#
|
5085
|
+
# _@param_ `custom_fields`
|
4986
5086
|
sig do
|
4987
5087
|
params(
|
4988
5088
|
config: T.any(T::Hash[T.untyped, T.untyped], Checkoff::Internal::EnvFallbackConfigLoader),
|
4989
5089
|
client: Asana::Client,
|
4990
5090
|
tasks: Checkoff::Tasks,
|
4991
5091
|
timelines: Checkoff::Timelines,
|
4992
|
-
custom_fields:
|
5092
|
+
custom_fields: Checkoff::CustomFields
|
4993
5093
|
).void
|
4994
5094
|
end
|
4995
5095
|
def initialize(config: Checkoff::Internal::ConfigLoader.load(:asana), client: Checkoff::Clients.new(config:).client, tasks: Checkoff::Tasks.new(config:,
|
@@ -5000,7 +5100,7 @@ module Checkoff
|
|
5000
5100
|
# _@param_ `task`
|
5001
5101
|
#
|
5002
5102
|
# _@param_ `task_selector` — Filter based on task details. Examples: [:tag, 'foo'] [:not, [:tag, 'foo']] [:tag, 'foo']
|
5003
|
-
sig { params(task: Asana::Resources::Task, task_selector: T::Array[
|
5103
|
+
sig { params(task: Asana::Resources::Task, task_selector: T.any(Symbol, T::Array[T.any(Symbol, Integer, T::Array[T.untyped])])).returns(T::Boolean) }
|
5004
5104
|
def filter_via_task_selector(task, task_selector); end
|
5005
5105
|
|
5006
5106
|
# @sg-ignore
|
@@ -5011,7 +5111,8 @@ module Checkoff
|
|
5011
5111
|
sig { returns(String) }
|
5012
5112
|
def self.workspace_name; end
|
5013
5113
|
|
5014
|
-
|
5114
|
+
# @sg-ignore
|
5115
|
+
sig { returns([Symbol, T::Array[T.untyped]]) }
|
5015
5116
|
def self.task_selector; end
|
5016
5117
|
|
5017
5118
|
sig { void }
|
@@ -5065,7 +5166,7 @@ module Checkoff
|
|
5065
5166
|
# _@param_ `project`
|
5066
5167
|
#
|
5067
5168
|
# _@param_ `project_selector` — Filter based on project details. Examples: [:tag, 'foo'] [:not, [:tag, 'foo']] [:tag, 'foo']
|
5068
|
-
sig { params(project: Asana::Resources::Project, project_selector:
|
5169
|
+
sig { params(project: Asana::Resources::Project, project_selector: [Symbol, T::Array[T.untyped]]).returns(T::Boolean) }
|
5069
5170
|
def filter_via_project_selector(project, project_selector); end
|
5070
5171
|
|
5071
5172
|
sig { void }
|
@@ -5122,7 +5223,7 @@ module Checkoff
|
|
5122
5223
|
# _@param_ `section`
|
5123
5224
|
#
|
5124
5225
|
# _@param_ `section_selector` — Filter based on section details. Examples: [:tag, 'foo'] [:not, [:tag, 'foo']] [:tag, 'foo']
|
5125
|
-
sig { params(section: Asana::Resources::Section, section_selector:
|
5226
|
+
sig { params(section: Asana::Resources::Section, section_selector: [Symbol, T::Array[T.untyped]]).returns(T::Boolean) }
|
5126
5227
|
def filter_via_section_selector(section, section_selector); end
|
5127
5228
|
|
5128
5229
|
sig { void }
|
@@ -5159,11 +5260,10 @@ module Checkoff
|
|
5159
5260
|
sig { params(task_hash: T::Hash[T.untyped, T.untyped]).void }
|
5160
5261
|
def unwrap_custom_fields(task_hash); end
|
5161
5262
|
|
5162
|
-
# sord warn - Invalid hash, must have exactly two types: "Hash<String, Hash, Array>".
|
5163
5263
|
# _@param_ `task_hash`
|
5164
5264
|
#
|
5165
5265
|
# _@param_ `memberships`
|
5166
|
-
sig { params(task_hash: T.untyped, memberships: T::Array[T::Hash[T.untyped, T.untyped]]).void }
|
5266
|
+
sig { params(task_hash: T::Hash[String, T.any(String, T::Hash[T.untyped, T.untyped], T::Array[T.untyped])], memberships: T::Array[T::Hash[T.untyped, T.untyped]]).void }
|
5167
5267
|
def add_user_task_list(task_hash, memberships); end
|
5168
5268
|
|
5169
5269
|
# _@param_ `task_hash`
|
@@ -5218,16 +5318,12 @@ module Checkoff
|
|
5218
5318
|
# @sg-ignore
|
5219
5319
|
#
|
5220
5320
|
# _@param_ `task`
|
5221
|
-
#
|
5222
|
-
# _@param_ `field_name`
|
5223
5321
|
sig { params(task: Asana::Resources::Task).returns(T.nilable(T.any(Date, Time))) }
|
5224
5322
|
def start_date_or_time(task); end
|
5225
5323
|
|
5226
5324
|
# @sg-ignore
|
5227
5325
|
#
|
5228
5326
|
# _@param_ `task`
|
5229
|
-
#
|
5230
|
-
# _@param_ `field_name`
|
5231
5327
|
sig { params(task: Asana::Resources::Task).returns(T.nilable(T.any(Date, Time))) }
|
5232
5328
|
def due_date_or_time(task); end
|
5233
5329
|
|
@@ -5257,19 +5353,21 @@ module Checkoff
|
|
5257
5353
|
# _@param_ `name`
|
5258
5354
|
#
|
5259
5355
|
# _@param_ `value`
|
5260
|
-
sig { params(name: Symbol, value: T.any(Object, T::Boolean), block: T.
|
5356
|
+
sig { params(name: Symbol, value: T.any(Object, T::Boolean), block: T.proc.returns(T)).returns(T) }
|
5261
5357
|
def with_thread_local_variable(name, value, &block); end
|
5262
5358
|
end
|
5263
5359
|
|
5264
5360
|
# Use the provided config from a YAML file, and fall back to env
|
5265
5361
|
# variable if it's not populated for a key'
|
5266
5362
|
class EnvFallbackConfigLoader
|
5363
|
+
# sord warn - undefined is probably not a type, but using anyway
|
5364
|
+
# sord warn - undefined wasn't able to be resolved to a constant in this project
|
5267
5365
|
# _@param_ `config`
|
5268
5366
|
#
|
5269
5367
|
# _@param_ `sym`
|
5270
5368
|
#
|
5271
5369
|
# _@param_ `yaml_filename`
|
5272
|
-
sig { params(config: T::Hash[Symbol,
|
5370
|
+
sig { params(config: T::Hash[Symbol, undefined], sym: Symbol, yaml_filename: String).void }
|
5273
5371
|
def initialize(config, sym, yaml_filename); end
|
5274
5372
|
|
5275
5373
|
# _@param_ `key`
|
@@ -5287,14 +5385,14 @@ module Checkoff
|
|
5287
5385
|
|
5288
5386
|
# Load configuration file
|
5289
5387
|
class ConfigLoader
|
5290
|
-
|
5388
|
+
# _@param_ `sym`
|
5389
|
+
sig { params(sym: Symbol).returns(EnvFallbackConfigLoader) }
|
5291
5390
|
def self.load(sym); end
|
5292
5391
|
|
5293
|
-
# sord warn -
|
5294
|
-
# sord warn -
|
5295
|
-
# sord warn - Invalid hash, must have exactly two types: "Hash<[String, Symbol], Object>".
|
5392
|
+
# sord warn - undefined is probably not a type, but using anyway
|
5393
|
+
# sord warn - undefined wasn't able to be resolved to a constant in this project
|
5296
5394
|
# _@param_ `sym`
|
5297
|
-
sig { params(sym: Symbol).returns(T
|
5395
|
+
sig { params(sym: Symbol).returns(T::Hash[Symbol, undefined]) }
|
5298
5396
|
def self.load_yaml_file(sym); end
|
5299
5397
|
|
5300
5398
|
# _@param_ `sym`
|
@@ -5342,16 +5440,12 @@ module Checkoff
|
|
5342
5440
|
# @sg-ignore
|
5343
5441
|
#
|
5344
5442
|
# _@param_ `project`
|
5345
|
-
#
|
5346
|
-
# _@param_ `field_name`
|
5347
5443
|
sig { params(project: Asana::Resources::Project).returns(T.nilable(Date)) }
|
5348
5444
|
def start_date(project); end
|
5349
5445
|
|
5350
5446
|
# @sg-ignore
|
5351
5447
|
#
|
5352
5448
|
# _@param_ `project`
|
5353
|
-
#
|
5354
|
-
# _@param_ `field_name`
|
5355
5449
|
sig { params(project: Asana::Resources::Project).returns(T.nilable(Date)) }
|
5356
5450
|
def due_date(project); end
|
5357
5451
|
|
@@ -5379,45 +5473,34 @@ module Checkoff
|
|
5379
5473
|
def initialize(_deps = {}); end
|
5380
5474
|
|
5381
5475
|
# _@param_ `url`
|
5382
|
-
sig { params(url: String).returns([T::Hash[String, String], T::
|
5476
|
+
sig { params(url: String).returns([T::Hash[String, String], T::Array[T.untyped]]) }
|
5383
5477
|
def convert_params(url); end
|
5384
5478
|
|
5385
|
-
# sord warn - "[Symbol" does not appear to be a type
|
5386
|
-
# sord warn - "Array]" does not appear to be a type
|
5387
5479
|
# _@param_ `date_url_params`
|
5388
|
-
sig { params(date_url_params: T::Hash[String, T::Array[String]]).returns([T::Hash[String, String], T::Array[T.any(
|
5480
|
+
sig { params(date_url_params: T::Hash[String, T::Array[String]]).returns([T::Hash[String, String], T::Array[T.any(Symbol, T::Array[T.untyped])]]) }
|
5389
5481
|
def convert_date_params(date_url_params); end
|
5390
5482
|
|
5391
5483
|
# _@param_ `simple_url_params`
|
5392
5484
|
sig { params(simple_url_params: T::Hash[String, T::Array[String]]).returns(T::Hash[String, String]) }
|
5393
5485
|
def convert_simple_params(simple_url_params); end
|
5394
5486
|
|
5395
|
-
# sord warn - "[Symbol" does not appear to be a type
|
5396
|
-
# sord warn - "Array]" does not appear to be a type
|
5397
5487
|
# _@param_ `custom_field_params`
|
5398
|
-
sig { params(custom_field_params: T::Hash[String, T::Array[String]]).returns([T::Hash[String, String], T::Array[T.any(
|
5488
|
+
sig { params(custom_field_params: T::Hash[String, T::Array[String]]).returns([T::Hash[String, String], T::Array[T.any(Symbol, T::Array[T.untyped])]]) }
|
5399
5489
|
def convert_custom_field_params(custom_field_params); end
|
5400
5490
|
|
5401
5491
|
# _@param_ `url_params`
|
5402
|
-
sig { params(url_params: T::Hash[String, String]).returns([T::Hash[String, String], T::Hash[String, String], T::Hash[String, String]]) }
|
5492
|
+
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]]]) }
|
5403
5493
|
def partition_url_params(url_params); end
|
5404
5494
|
end
|
5405
5495
|
|
5406
5496
|
# Merge task selectors and search API arguments
|
5407
5497
|
class ResultsMerger
|
5408
|
-
# sord warn - "[Hash<String, String>]" does not appear to be a type
|
5409
5498
|
# _@param_ `args`
|
5410
|
-
|
5411
|
-
# _@return_ — Hash<String, String>
|
5412
|
-
sig { params(args: T::Array[T.untyped]).returns(T::Hash[String, String]) }
|
5499
|
+
sig { params(args: T::Array[T::Hash[String, String]]).returns(T::Hash[String, String]) }
|
5413
5500
|
def self.merge_args(*args); end
|
5414
5501
|
|
5415
|
-
# sord warn - "[Symbol" does not appear to be a type
|
5416
|
-
# sord warn - "Array]" does not appear to be a type
|
5417
|
-
# sord warn - "[Symbol" does not appear to be a type
|
5418
|
-
# sord warn - "Array]" does not appear to be a type
|
5419
5502
|
# _@param_ `task_selectors`
|
5420
|
-
sig { params(task_selectors: T::Array[T
|
5503
|
+
sig { params(task_selectors: T::Array[T.any(Symbol, T::Array[T.untyped])]).returns([Symbol, T::Array[T.untyped], T::Array[T.untyped]]) }
|
5421
5504
|
def self.merge_task_selectors(*task_selectors); end
|
5422
5505
|
end
|
5423
5506
|
|
@@ -5428,12 +5511,14 @@ module Checkoff
|
|
5428
5511
|
# _@param_ `gid`
|
5429
5512
|
#
|
5430
5513
|
# _@param_ `remaining_params`
|
5431
|
-
sig { params(gid: String, remaining_params: T::Hash[
|
5514
|
+
sig { params(gid: String, remaining_params: T::Hash[String, T::Array[String]]).void }
|
5432
5515
|
def initialize(gid, remaining_params); end
|
5433
5516
|
|
5434
5517
|
sig { void }
|
5435
5518
|
def ensure_no_remaining_params!; end
|
5436
5519
|
|
5520
|
+
# @sg-ignore
|
5521
|
+
#
|
5437
5522
|
# _@param_ `param_name`
|
5438
5523
|
sig { params(param_name: String).returns(String) }
|
5439
5524
|
def fetch_solo_param(param_name); end
|
@@ -5441,25 +5526,25 @@ module Checkoff
|
|
5441
5526
|
sig { returns(String) }
|
5442
5527
|
attr_reader :gid
|
5443
5528
|
|
5444
|
-
sig { returns(T::Hash[
|
5529
|
+
sig { returns(T::Hash[String, T::Array[String]]) }
|
5445
5530
|
attr_reader :remaining_params
|
5446
5531
|
end
|
5447
5532
|
|
5448
5533
|
# custom_field_#{gid}.variant = 'less_than'
|
5449
5534
|
class LessThan < Checkoff::Internal::SearchUrl::CustomFieldVariant::CustomFieldVariant
|
5450
|
-
sig { returns(
|
5535
|
+
sig { returns([T::Hash[String, String], T::Array[T.any(T::Array[String], String)]]) }
|
5451
5536
|
def convert; end
|
5452
5537
|
end
|
5453
5538
|
|
5454
5539
|
# custom_field_#{gid}.variant = 'greater_than'
|
5455
5540
|
class GreaterThan < Checkoff::Internal::SearchUrl::CustomFieldVariant::CustomFieldVariant
|
5456
|
-
sig { returns(
|
5541
|
+
sig { returns([T::Hash[String, String], T::Array[T.any(T::Array[String], String)]]) }
|
5457
5542
|
def convert; end
|
5458
5543
|
end
|
5459
5544
|
|
5460
5545
|
# custom_field_#{gid}.variant = 'equals'
|
5461
5546
|
class Equals < Checkoff::Internal::SearchUrl::CustomFieldVariant::CustomFieldVariant
|
5462
|
-
sig { returns(
|
5547
|
+
sig { returns([T::Hash[String, String], T::Array[T.any(T::Array[String], String)]]) }
|
5463
5548
|
def convert; end
|
5464
5549
|
end
|
5465
5550
|
|
@@ -5467,7 +5552,7 @@ module Checkoff
|
|
5467
5552
|
#
|
5468
5553
|
# custom_field_#{gid}.variant = 'is_not'
|
5469
5554
|
class IsNot < Checkoff::Internal::SearchUrl::CustomFieldVariant::CustomFieldVariant
|
5470
|
-
sig { returns(T::
|
5555
|
+
sig { returns([T::Hash[String, String], T::Array[T.any(T::Array[String], String, T::Array[T.untyped])]]) }
|
5471
5556
|
def convert; end
|
5472
5557
|
end
|
5473
5558
|
|
@@ -5475,7 +5560,7 @@ module Checkoff
|
|
5475
5560
|
#
|
5476
5561
|
# custom_field_#{gid}.variant = 'doesnt_contain_any'
|
5477
5562
|
class DoesntContainAny < Checkoff::Internal::SearchUrl::CustomFieldVariant::CustomFieldVariant
|
5478
|
-
sig { returns(T::
|
5563
|
+
sig { returns([T::Hash[String, String], T::Array[T.any(T::Array[String], String, T::Array[T.untyped])]]) }
|
5479
5564
|
def convert; end
|
5480
5565
|
end
|
5481
5566
|
|
@@ -5483,7 +5568,7 @@ module Checkoff
|
|
5483
5568
|
#
|
5484
5569
|
# custom_field_#{gid}.variant = 'contains_any'
|
5485
5570
|
class ContainsAny < Checkoff::Internal::SearchUrl::CustomFieldVariant::CustomFieldVariant
|
5486
|
-
sig { returns(T::
|
5571
|
+
sig { returns([T::Hash[String, String], T::Array[T.any(T::Array[String], String, T::Array[T.untyped])]]) }
|
5487
5572
|
def convert; end
|
5488
5573
|
end
|
5489
5574
|
|
@@ -5491,13 +5576,13 @@ module Checkoff
|
|
5491
5576
|
#
|
5492
5577
|
# custom_field_#{gid}.variant = 'contains_all'
|
5493
5578
|
class ContainsAll < Checkoff::Internal::SearchUrl::CustomFieldVariant::CustomFieldVariant
|
5494
|
-
sig { returns(T::
|
5579
|
+
sig { returns([T::Hash[String, String], T::Array[T.any(T::Array[String], String, T::Array[T.untyped])]]) }
|
5495
5580
|
def convert; end
|
5496
5581
|
end
|
5497
5582
|
|
5498
5583
|
# custom_field_#{gid}.variant = 'no_value'
|
5499
5584
|
class NoValue < Checkoff::Internal::SearchUrl::CustomFieldVariant::CustomFieldVariant
|
5500
|
-
sig { returns(T::
|
5585
|
+
sig { returns([T::Hash[String, String], T::Array[T.any(T::Array[String], String, T::Array[T.untyped], Symbol)]]) }
|
5501
5586
|
def convert; end
|
5502
5587
|
end
|
5503
5588
|
|
@@ -5505,13 +5590,13 @@ module Checkoff
|
|
5505
5590
|
#
|
5506
5591
|
# Not used for multi-select fields
|
5507
5592
|
class AnyValue < Checkoff::Internal::SearchUrl::CustomFieldVariant::CustomFieldVariant
|
5508
|
-
sig { returns(T::
|
5593
|
+
sig { returns([T::Hash[String, String], T::Array[T.any(T::Array[String], String, T::Array[T.untyped])]]) }
|
5509
5594
|
def convert; end
|
5510
5595
|
end
|
5511
5596
|
|
5512
5597
|
# custom_field_#{gid}.variant = 'is'
|
5513
5598
|
class Is < Checkoff::Internal::SearchUrl::CustomFieldVariant::CustomFieldVariant
|
5514
|
-
sig { returns(T::
|
5599
|
+
sig { returns([T::Hash[String, String], T::Array[T.any(T::Array[String], String, T::Array[T.untyped])]]) }
|
5515
5600
|
def convert; end
|
5516
5601
|
end
|
5517
5602
|
end
|
@@ -5529,50 +5614,36 @@ module Checkoff
|
|
5529
5614
|
sig { params(date_url_params: T::Hash[String, T::Array[String]]).void }
|
5530
5615
|
def initialize(date_url_params:); end
|
5531
5616
|
|
5532
|
-
# sord warn - "[Symbol" does not appear to be a type
|
5533
|
-
# sord warn - "Array]" does not appear to be a type
|
5534
5617
|
# @sg-ignore
|
5535
|
-
sig { returns([T::Hash[String, String], T::Array[T.any(
|
5618
|
+
sig { returns([T::Hash[String, String], T::Array[T.any(Symbol, T::Array[T.untyped])]]) }
|
5536
5619
|
def convert; end
|
5537
5620
|
|
5538
|
-
# sord warn - "[Symbol" does not appear to be a type
|
5539
|
-
# sord warn - "Array]" does not appear to be a type
|
5540
|
-
# @sg-ignore
|
5541
|
-
#
|
5542
5621
|
# _@param_ `prefix`
|
5543
|
-
sig { params(prefix: String).returns([T::Hash[String, String], T::Array[T.any(
|
5622
|
+
sig { params(prefix: String).returns([T::Hash[String, String], T::Array[T.any(Symbol, T::Array[T.untyped])]]) }
|
5544
5623
|
def convert_for_prefix(prefix); end
|
5545
5624
|
|
5546
|
-
# sord warn - "[Symbol" does not appear to be a type
|
5547
|
-
# sord warn - "Array]" does not appear to be a type
|
5548
5625
|
# _@param_ `prefix`
|
5549
5626
|
#
|
5550
5627
|
# _@return_ — See https://developers.asana.com/docs/search-tasks-in-a-workspace
|
5551
|
-
sig { params(prefix: String).returns([T::Hash[String, String], T::Array[T.any(
|
5628
|
+
sig { params(prefix: String).returns([T::Hash[String, String], T::Array[T.any(Symbol, T::Array[T.untyped])]]) }
|
5552
5629
|
def handle_through_next(prefix); end
|
5553
5630
|
|
5554
|
-
# sord warn - "[Symbol" does not appear to be a type
|
5555
|
-
# sord warn - "Array]" does not appear to be a type
|
5556
5631
|
# _@param_ `prefix`
|
5557
5632
|
#
|
5558
5633
|
# _@return_ — See https://developers.asana.com/docs/search-tasks-in-a-workspace
|
5559
|
-
sig { params(prefix: String).returns([T::Hash[String, String], T::Array[T.any(
|
5634
|
+
sig { params(prefix: String).returns([T::Hash[String, String], T::Array[T.any(Symbol, T::Array[T.untyped])]]) }
|
5560
5635
|
def handle_between(prefix); end
|
5561
5636
|
|
5562
|
-
# sord warn - "[Symbol" does not appear to be a type
|
5563
|
-
# sord warn - "Array]" does not appear to be a type
|
5564
5637
|
# _@param_ `prefix`
|
5565
5638
|
#
|
5566
5639
|
# _@return_ — See https://developers.asana.com/docs/search-tasks-in-a-workspace
|
5567
|
-
sig { params(prefix: String).returns([T::Hash[String, String], T::Array[T.any(
|
5640
|
+
sig { params(prefix: String).returns([T::Hash[String, String], T::Array[T.any(Symbol, T::Array[T.untyped])]]) }
|
5568
5641
|
def handle_within_last(prefix); end
|
5569
5642
|
|
5570
|
-
# sord warn - "[Symbol" does not appear to be a type
|
5571
|
-
# sord warn - "Array]" does not appear to be a type
|
5572
5643
|
# _@param_ `prefix`
|
5573
5644
|
#
|
5574
5645
|
# _@return_ — See https://developers.asana.com/docs/search-tasks-in-a-workspace
|
5575
|
-
sig { params(prefix: String).returns([T::Hash[String, String], T::Array[T.any(
|
5646
|
+
sig { params(prefix: String).returns([T::Hash[String, String], T::Array[T.any(Symbol, T::Array[T.untyped])]]) }
|
5576
5647
|
def handle_within_next(prefix); end
|
5577
5648
|
|
5578
5649
|
# _@param_ `param_key`
|
@@ -5651,7 +5722,7 @@ module Checkoff
|
|
5651
5722
|
|
5652
5723
|
# Handle 'completion' search url param
|
5653
5724
|
class Completion < Checkoff::Internal::SearchUrl::SimpleParam::SimpleParam
|
5654
|
-
sig { returns(T::Array[String]) }
|
5725
|
+
sig { returns(T::Array[T.any(String, T::Boolean)]) }
|
5655
5726
|
def convert; end
|
5656
5727
|
end
|
5657
5728
|
|
@@ -5663,9 +5734,7 @@ module Checkoff
|
|
5663
5734
|
|
5664
5735
|
# handle 'subtask' search url param
|
5665
5736
|
class Subtask < Checkoff::Internal::SearchUrl::SimpleParam::SimpleParam
|
5666
|
-
|
5667
|
-
# sord warn - "Boolean]" does not appear to be a type
|
5668
|
-
sig { returns(T::Array[T.any(T.untyped, T.untyped)]) }
|
5737
|
+
sig { returns(T::Array[T.any(String, T::Boolean)]) }
|
5669
5738
|
def convert; end
|
5670
5739
|
end
|
5671
5740
|
|
@@ -5753,23 +5822,19 @@ module Checkoff
|
|
5753
5822
|
sig { params(custom_field_params: T::Hash[String, T::Array[String]]).void }
|
5754
5823
|
def initialize(custom_field_params:); end
|
5755
5824
|
|
5756
|
-
|
5757
|
-
# sord warn - "Array]" does not appear to be a type
|
5758
|
-
sig { returns([T::Hash[String, String], T::Array[T.any(T.untyped, T.untyped)]]) }
|
5825
|
+
sig { returns([T::Hash[String, String], T::Array[T.any(Symbol, T::Array[T.untyped])]]) }
|
5759
5826
|
def convert; end
|
5760
5827
|
|
5761
5828
|
# @sg-ignore
|
5762
5829
|
sig { returns(T::Hash[String, T::Hash[T.untyped, T.untyped]]) }
|
5763
5830
|
def by_custom_field; end
|
5764
5831
|
|
5765
|
-
# sord warn - "[Symbol" does not appear to be a type
|
5766
|
-
# sord warn - "Array]" does not appear to be a type
|
5767
5832
|
# @sg-ignore
|
5768
5833
|
#
|
5769
5834
|
# _@param_ `gid`
|
5770
5835
|
#
|
5771
5836
|
# _@param_ `single_custom_field_params`
|
5772
|
-
sig { params(gid: String, single_custom_field_params: T::Hash[String, T::Array[String]]).returns([T::Hash[String, String], T::Array[T.any(
|
5837
|
+
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])]]) }
|
5773
5838
|
def convert_single_custom_field_params(gid, single_custom_field_params); end
|
5774
5839
|
|
5775
5840
|
# _@param_ `key`
|
@@ -5842,6 +5907,7 @@ module Checkoff
|
|
5842
5907
|
sig { params(key: String, asana_event: T::Hash[T.untyped, T.untyped], fields: T::Array[String]).returns(T.nilable(Asana::Resources::Task)) }
|
5843
5908
|
def uncached_fetch_task(key, asana_event, fields); end
|
5844
5909
|
|
5910
|
+
# @sg-ignore
|
5845
5911
|
sig { returns(::Logger) }
|
5846
5912
|
def logger; end
|
5847
5913
|
|
@@ -5890,8 +5956,6 @@ module Checkoff
|
|
5890
5956
|
# _@param_ `clients`
|
5891
5957
|
#
|
5892
5958
|
# _@param_ `client`
|
5893
|
-
#
|
5894
|
-
# _@param_ `asana_event_enrichment`
|
5895
5959
|
sig do
|
5896
5960
|
params(
|
5897
5961
|
config: T.any(T::Hash[T.untyped, T.untyped], Checkoff::Internal::EnvFallbackConfigLoader),
|
@@ -5913,18 +5977,12 @@ module Checkoff
|
|
5913
5977
|
sig { params(asana_event: T::Hash[T.untyped, T.untyped]).returns(T::Hash[T.untyped, T.untyped]) }
|
5914
5978
|
def enrich_event(asana_event); end
|
5915
5979
|
|
5916
|
-
# sord warn - "[String" does not appear to be a type
|
5917
|
-
# sord warn - "Array<String>]" does not appear to be a type
|
5918
|
-
# sord warn - Invalid hash, must have exactly two types: "Hash<String,[String,Array<String>]>".
|
5919
|
-
# sord warn - "[String" does not appear to be a type
|
5920
|
-
# sord warn - "Array<String>]" does not appear to be a type
|
5921
|
-
# sord warn - Invalid hash, must have exactly two types: "Hash<String,[String,Array<String>]>".
|
5922
5980
|
# _@param_ `filter`
|
5923
|
-
sig { params(filter: T.
|
5981
|
+
sig { params(filter: T::Hash[String, T.any(String, T::Array[String])]).returns(T::Hash[String, T.any(String, T::Array[String])]) }
|
5924
5982
|
def enrich_filter(filter); end
|
5925
5983
|
|
5926
5984
|
# _@param_ `webhook_subscription` — Hash of the request made to webhook POST endpoint - https://app.asana.com/api/1.0/webhooks https://developers.asana.com/reference/createwebhook
|
5927
|
-
sig { params(webhook_subscription: T::Hash[T.untyped, T.untyped]).void }
|
5985
|
+
sig { params(webhook_subscription: T.nilable(T::Hash[T.untyped, T.untyped])).void }
|
5928
5986
|
def enrich_webhook_subscription!(webhook_subscription); end
|
5929
5987
|
|
5930
5988
|
# sord warn - "[String" does not appear to be a type
|
@@ -5937,22 +5995,19 @@ module Checkoff
|
|
5937
5995
|
# _@param_ `gid`
|
5938
5996
|
#
|
5939
5997
|
# _@param_ `resource_type`
|
5940
|
-
sig { params(gid: String, resource_type: T.nilable(String)).returns(
|
5998
|
+
sig { params(gid: String, resource_type: T.nilable(String)).returns([T.untyped, T.untyped, T.untyped, T.untyped]) }
|
5941
5999
|
def enrich_gid(gid, resource_type: nil); end
|
5942
6000
|
|
5943
6001
|
# _@param_ `filter`
|
5944
|
-
sig { params(filter: T::Hash[String, String]).returns(T.nilable(String)) }
|
6002
|
+
sig { params(filter: T::Hash[String, T.any(String, T::Array[String])]).returns(T.nilable(String)) }
|
5945
6003
|
def enrich_filter_parent_gid!(filter); end
|
5946
6004
|
|
5947
6005
|
# _@param_ `filter`
|
5948
|
-
sig { params(filter: T::Hash[String, String]).void }
|
6006
|
+
sig { params(filter: T::Hash[String, T.any(String, T::Array[String])]).void }
|
5949
6007
|
def enrich_filter_resource!(filter); end
|
5950
6008
|
|
5951
|
-
# sord warn - "[String" does not appear to be a type
|
5952
|
-
# sord warn - "Array<String>]" does not appear to be a type
|
5953
|
-
# sord warn - Invalid hash, must have exactly two types: "Hash{String => [String,Array<String>]}".
|
5954
6009
|
# _@param_ `filter`
|
5955
|
-
sig { params(filter: T.
|
6010
|
+
sig { params(filter: T::Hash[String, T.any(String, T::Array[String])]).void }
|
5956
6011
|
def enrich_filter_section!(filter); end
|
5957
6012
|
|
5958
6013
|
# sord warn - "'resource'" does not appear to be a type
|
@@ -5965,6 +6020,7 @@ module Checkoff
|
|
5965
6020
|
sig { params(asana_event: T::Hash[T.untyped, T::Hash[T.untyped, T.untyped]]).void }
|
5966
6021
|
def enrich_event_resource!(asana_event); end
|
5967
6022
|
|
6023
|
+
# @sg-ignore
|
5968
6024
|
sig { returns(::Logger) }
|
5969
6025
|
def logger; end
|
5970
6026
|
|
@@ -6015,7 +6071,7 @@ module Checkoff
|
|
6015
6071
|
# Base class to evaluate Asana resource selectors against an Asana resource
|
6016
6072
|
class SelectorEvaluator
|
6017
6073
|
# _@param_ `selector`
|
6018
|
-
sig { params(selector: T::Array[T.untyped]).returns(T.nilable(T.any(T::Boolean, Object))) }
|
6074
|
+
sig { params(selector: T.any(Symbol, T::Array[T.any(Symbol, Integer, T::Array[T.untyped])])).returns(T.nilable(T.any(T::Boolean, Object, T::Array[T.untyped]))) }
|
6019
6075
|
def evaluate(selector); end
|
6020
6076
|
|
6021
6077
|
sig { returns(T::Hash[T.untyped, T.untyped]) }
|
@@ -6255,13 +6311,9 @@ module Checkoff
|
|
6255
6311
|
sig { returns(T::Boolean) }
|
6256
6312
|
def matches?; end
|
6257
6313
|
|
6258
|
-
# only projects in this portfolio will be evaluated.
|
6259
|
-
#
|
6260
6314
|
# _@param_ `task`
|
6261
6315
|
#
|
6262
|
-
# _@param_ `
|
6263
|
-
#
|
6264
|
-
# _@param_ `limit_to_portfolio_gid` — If specified,
|
6316
|
+
# _@param_ `limit_to_portfolio_gid` — If specified, only projects in this portfolio will be evaluated.
|
6265
6317
|
sig { params(task: Asana::Resources::Task, limit_to_portfolio_gid: T.nilable(String)).returns(T::Boolean) }
|
6266
6318
|
def evaluate(task, limit_to_portfolio_gid: nil); end
|
6267
6319
|
end
|
@@ -6338,18 +6390,20 @@ module Checkoff
|
|
6338
6390
|
# _@param_ `timelines`
|
6339
6391
|
#
|
6340
6392
|
# _@param_ `custom_fields`
|
6393
|
+
#
|
6394
|
+
# _@param_ `_kwargs`
|
6341
6395
|
sig do
|
6342
6396
|
params(
|
6343
|
-
selector: T.any(
|
6397
|
+
selector: T.any([Symbol, T::Array[T.untyped]], String),
|
6344
6398
|
tasks: Checkoff::Tasks,
|
6345
6399
|
timelines: Checkoff::Timelines,
|
6346
6400
|
custom_fields: Checkoff::CustomFields,
|
6347
|
-
_kwargs: T.untyped
|
6401
|
+
_kwargs: T::Hash[T.untyped, T.untyped]
|
6348
6402
|
).void
|
6349
6403
|
end
|
6350
6404
|
def initialize(selector:, tasks:, timelines:, custom_fields:, **_kwargs); end
|
6351
6405
|
|
6352
|
-
sig { returns(
|
6406
|
+
sig { returns([Symbol, T::Array[T.untyped]]) }
|
6353
6407
|
attr_reader :selector
|
6354
6408
|
end
|
6355
6409
|
end
|
@@ -6530,12 +6584,12 @@ module Checkoff
|
|
6530
6584
|
sig { params(_index: Integer).returns(T::Boolean) }
|
6531
6585
|
def evaluate_arg?(_index); end
|
6532
6586
|
|
6533
|
-
#
|
6534
|
-
#
|
6587
|
+
# sord warn - boolish is probably not a type, but using anyway
|
6588
|
+
# sord warn - boolish wasn't able to be resolved to a constant in this project
|
6535
6589
|
# _@param_ `resource`
|
6536
6590
|
#
|
6537
6591
|
# _@param_ `prefix`
|
6538
|
-
sig { params(resource: T.any(Asana::Resources::Task, Asana::Resources::Project), prefix: String).returns(
|
6592
|
+
sig { params(resource: T.any(Asana::Resources::Task, Asana::Resources::Project), prefix: String).returns(boolish) }
|
6539
6593
|
def evaluate(resource, prefix); end
|
6540
6594
|
end
|
6541
6595
|
|
@@ -6556,10 +6610,12 @@ module Checkoff
|
|
6556
6610
|
# _@param_ `selector`
|
6557
6611
|
#
|
6558
6612
|
# _@param_ `custom_fields`
|
6559
|
-
|
6613
|
+
#
|
6614
|
+
# _@param_ `_kwargs`
|
6615
|
+
sig { params(selector: T.any([Symbol, T::Array[T.untyped]], String), custom_fields: Checkoff::CustomFields, _kwargs: T::Hash[T.untyped, T.untyped]).void }
|
6560
6616
|
def initialize(selector:, custom_fields:, **_kwargs); end
|
6561
6617
|
|
6562
|
-
sig { returns(T
|
6618
|
+
sig { returns(T.any([Symbol, T::Array[T.untyped]], String)) }
|
6563
6619
|
attr_reader :selector
|
6564
6620
|
end
|
6565
6621
|
end
|
@@ -6626,18 +6682,20 @@ module Checkoff
|
|
6626
6682
|
# _@param_ `portfolios`
|
6627
6683
|
#
|
6628
6684
|
# _@param_ `workspaces`
|
6685
|
+
#
|
6686
|
+
# _@param_ `_kwargs`
|
6629
6687
|
sig do
|
6630
6688
|
params(
|
6631
|
-
selector: T.any(
|
6689
|
+
selector: T.any([Symbol, T::Array[T.untyped]], String),
|
6632
6690
|
projects: Checkoff::Projects,
|
6633
6691
|
portfolios: Checkoff::Portfolios,
|
6634
6692
|
workspaces: Checkoff::Workspaces,
|
6635
|
-
_kwargs: T.untyped
|
6693
|
+
_kwargs: T::Hash[T.untyped, T.untyped]
|
6636
6694
|
).void
|
6637
6695
|
end
|
6638
6696
|
def initialize(selector:, projects:, portfolios:, workspaces:, **_kwargs); end
|
6639
6697
|
|
6640
|
-
sig { returns(
|
6698
|
+
sig { returns([Symbol, T::Array[T.untyped]]) }
|
6641
6699
|
attr_reader :selector
|
6642
6700
|
end
|
6643
6701
|
end
|
@@ -6683,7 +6741,7 @@ module Checkoff
|
|
6683
6741
|
# _@param_ `kwargs`
|
6684
6742
|
sig do
|
6685
6743
|
params(
|
6686
|
-
selector: T.any(
|
6744
|
+
selector: T.any([Symbol, T::Array[T.untyped]], String),
|
6687
6745
|
sections: Checkoff::Sections,
|
6688
6746
|
client: Asana::Client,
|
6689
6747
|
kwargs: T::Hash[T.untyped, T.untyped]
|
@@ -6691,7 +6749,7 @@ module Checkoff
|
|
6691
6749
|
end
|
6692
6750
|
def initialize(selector:, sections:, client:, **kwargs); end
|
6693
6751
|
|
6694
|
-
sig { returns(
|
6752
|
+
sig { returns([Symbol, T::Array[T.untyped]]) }
|
6695
6753
|
attr_reader :selector
|
6696
6754
|
|
6697
6755
|
sig { returns(Asana::Client) }
|
@@ -6703,8 +6761,6 @@ module Checkoff
|
|
6703
6761
|
class FunctionEvaluator
|
6704
6762
|
include Logging
|
6705
6763
|
|
6706
|
-
# @sg-ignore
|
6707
|
-
#
|
6708
6764
|
# _@param_ `_index`
|
6709
6765
|
sig { params(_index: Integer).returns(T::Boolean) }
|
6710
6766
|
def evaluate_arg?(_index); end
|
@@ -6727,6 +6783,7 @@ module Checkoff
|
|
6727
6783
|
sig { params(object: Object, fn_name: Symbol).returns(T::Boolean) }
|
6728
6784
|
def fn?(object, fn_name); end
|
6729
6785
|
|
6786
|
+
# @sg-ignore
|
6730
6787
|
sig { returns(::Logger) }
|
6731
6788
|
def logger; end
|
6732
6789
|
|
@@ -6862,7 +6919,7 @@ end - [Checkoff::SelectorClasses::Common::FunctionEvaluator]).freeze, T.untyped)
|
|
6862
6919
|
SECTION_FUNCTION_EVALUATORS = T.let((Checkoff::SelectorClasses::Section.constants.map do |const|
|
6863
6920
|
Checkoff::SelectorClasses::Section.const_get(const)
|
6864
6921
|
end - [Checkoff::SelectorClasses::Section::FunctionEvaluator]).freeze, T.untyped)
|
6865
|
-
|
6922
|
+
FUNCTION_EVALUATORS = T.let((COMMON_FUNCTION_EVALUATORS + SECTION_FUNCTION_EVALUATORS).freeze, T.untyped)
|
6866
6923
|
|
6867
6924
|
# _@param_ `section`
|
6868
6925
|
#
|
@@ -6873,14 +6930,16 @@ end - [Checkoff::SelectorClasses::Section::FunctionEvaluator]).freeze, T.untyped
|
|
6873
6930
|
# _@param_ `sections`
|
6874
6931
|
#
|
6875
6932
|
# _@param_ `custom_fields`
|
6933
|
+
#
|
6934
|
+
# _@param_ `_kwargs`
|
6876
6935
|
sig do
|
6877
6936
|
params(
|
6878
|
-
section: Asana::Resources::
|
6937
|
+
section: Asana::Resources::Section,
|
6879
6938
|
client: Asana::Client,
|
6880
6939
|
projects: Checkoff::Projects,
|
6881
6940
|
sections: Checkoff::Sections,
|
6882
6941
|
custom_fields: Checkoff::CustomFields,
|
6883
|
-
_kwargs: T.untyped
|
6942
|
+
_kwargs: T::Hash[T.untyped, T.untyped]
|
6884
6943
|
).void
|
6885
6944
|
end
|
6886
6945
|
def initialize(section:, client:, projects: Checkoff::Projects.new(client:), sections: Checkoff::Sections.new(client:), custom_fields: Checkoff::CustomFields.new(client:), **_kwargs); end
|
@@ -6910,6 +6969,7 @@ end
|
|
6910
6969
|
|
6911
6970
|
# include this to add ability to log at different levels
|
6912
6971
|
module Logging
|
6972
|
+
# @sg-ignore
|
6913
6973
|
sig { returns(::Logger) }
|
6914
6974
|
def logger; end
|
6915
6975
|
|
@@ -6937,26 +6997,3 @@ module Logging
|
|
6937
6997
|
sig { returns(Symbol) }
|
6938
6998
|
def log_level; end
|
6939
6999
|
end
|
6940
|
-
|
6941
|
-
module T
|
6942
|
-
# sord warn - T::Types::Base wasn't able to be resolved to a constant in this project
|
6943
|
-
# sord warn - T::Types::Base wasn't able to be resolved to a constant in this project
|
6944
|
-
# _@param_ `type`
|
6945
|
-
sig { params(type: T.any(T::Types::Base, T.class_of(Object))).returns(T::Types::Base) }
|
6946
|
-
def self.nilable(type); end
|
6947
|
-
|
6948
|
-
# sord warn - T::Types::Base wasn't able to be resolved to a constant in this project
|
6949
|
-
# _@param_ `obj`
|
6950
|
-
#
|
6951
|
-
# _@param_ `type`
|
6952
|
-
sig { params(obj: BasicObject, type: T.any(T::Types::Base, T.class_of(Object))).returns(BasicObject) }
|
6953
|
-
def self.let(obj, type); end
|
6954
|
-
|
6955
|
-
# sord warn - T::Types::Base wasn't able to be resolved to a constant in this project
|
6956
|
-
sig { returns(T::Types::Base) }
|
6957
|
-
def self.untyped; end
|
6958
|
-
|
6959
|
-
class Struct
|
6960
|
-
extend T::Props::ClassMethods
|
6961
|
-
end
|
6962
|
-
end
|