checkoff 0.222.0 → 0.225.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.
Files changed (260) hide show
  1. checksums.yaml +4 -4
  2. data/checkoff.gemspec +10 -5
  3. data/lib/checkoff/attachments.rb +1 -0
  4. data/lib/checkoff/cli.rb +1 -1
  5. data/lib/checkoff/clients.rb +2 -1
  6. data/lib/checkoff/custom_fields.rb +2 -1
  7. data/lib/checkoff/events.rb +2 -1
  8. data/lib/checkoff/internal/asana_event_enrichment.rb +1 -0
  9. data/lib/checkoff/internal/asana_event_filter.rb +1 -0
  10. data/lib/checkoff/internal/config_loader.rb +2 -2
  11. data/lib/checkoff/internal/logging.rb +6 -5
  12. data/lib/checkoff/internal/project_hashes.rb +1 -0
  13. data/lib/checkoff/internal/project_selector_evaluator.rb +2 -1
  14. data/lib/checkoff/internal/project_timing.rb +1 -0
  15. data/lib/checkoff/internal/search_url/custom_field_param_converter.rb +1 -0
  16. data/lib/checkoff/internal/search_url/custom_field_variant.rb +1 -0
  17. data/lib/checkoff/internal/search_url/date_param_converter.rb +1 -0
  18. data/lib/checkoff/internal/search_url/parser.rb +1 -0
  19. data/lib/checkoff/internal/search_url/results_merger.rb +1 -0
  20. data/lib/checkoff/internal/search_url/simple_param_converter.rb +1 -0
  21. data/lib/checkoff/internal/search_url.rb +1 -0
  22. data/lib/checkoff/internal/section_selector_evaluator.rb +2 -1
  23. data/lib/checkoff/internal/selector_classes/common/function_evaluator.rb +1 -0
  24. data/lib/checkoff/internal/selector_classes/common.rb +1 -0
  25. data/lib/checkoff/internal/selector_classes/function_evaluator.rb +1 -0
  26. data/lib/checkoff/internal/selector_classes/project/function_evaluator.rb +1 -0
  27. data/lib/checkoff/internal/selector_classes/project.rb +1 -0
  28. data/lib/checkoff/internal/selector_classes/section/function_evaluator.rb +3 -1
  29. data/lib/checkoff/internal/selector_classes/section.rb +1 -0
  30. data/lib/checkoff/internal/selector_classes/task/function_evaluator.rb +1 -0
  31. data/lib/checkoff/internal/selector_classes/task.rb +1 -0
  32. data/lib/checkoff/internal/selector_evaluator.rb +5 -4
  33. data/lib/checkoff/internal/task_hashes.rb +1 -0
  34. data/lib/checkoff/internal/task_selector_evaluator.rb +2 -1
  35. data/lib/checkoff/internal/task_timing.rb +1 -0
  36. data/lib/checkoff/internal/thread_local.rb +1 -0
  37. data/lib/checkoff/monkeypatches/resource_marshalling.rb +1 -0
  38. data/lib/checkoff/my_tasks.rb +2 -1
  39. data/lib/checkoff/portfolios.rb +12 -9
  40. data/lib/checkoff/project_selectors.rb +1 -0
  41. data/lib/checkoff/projects.rb +3 -1
  42. data/lib/checkoff/resources.rb +1 -0
  43. data/lib/checkoff/section_selectors.rb +1 -0
  44. data/lib/checkoff/sections.rb +4 -4
  45. data/lib/checkoff/subtasks.rb +1 -0
  46. data/lib/checkoff/tags.rb +67 -17
  47. data/lib/checkoff/task_searches.rb +1 -0
  48. data/lib/checkoff/task_selectors.rb +1 -0
  49. data/lib/checkoff/tasks.rb +2 -2
  50. data/lib/checkoff/timelines.rb +1 -0
  51. data/lib/checkoff/timing.rb +1 -0
  52. data/lib/checkoff/version.rb +2 -1
  53. data/lib/checkoff/workspaces.rb +2 -1
  54. data/lib/checkoff.rb +1 -0
  55. data/rbi/checkoff.rbi +4529 -0
  56. data/sig/checkoff.rbs +3749 -0
  57. metadata +4 -205
  58. data/.circleci/config.yml +0 -291
  59. data/.envrc +0 -9
  60. data/.git-hooks/pre_commit/circle_ci.rb +0 -25
  61. data/.git-hooks/pre_commit/punchlist.rb +0 -51
  62. data/.git-hooks/pre_commit/solargraph_typecheck.rb +0 -76
  63. data/.gitattributes +0 -6
  64. data/.gitignore +0 -61
  65. data/.markdownlint_style.rb +0 -3
  66. data/.mdlrc +0 -1
  67. data/.overcommit.yml +0 -114
  68. data/.rubocop.yml +0 -143
  69. data/.rubocop_todo.yml +0 -90
  70. data/.solargraph.yml +0 -35
  71. data/.yamllint.yml +0 -8
  72. data/CODE_OF_CONDUCT.md +0 -133
  73. data/CONTRIBUTING.rst +0 -75
  74. data/DEVELOPMENT.md +0 -69
  75. data/GLOSSARY.md +0 -16
  76. data/Gemfile +0 -66
  77. data/Gemfile.lock +0 -336
  78. data/LICENSE +0 -21
  79. data/Makefile +0 -121
  80. data/bin/brakeman +0 -27
  81. data/bin/bump +0 -29
  82. data/bin/checkoff +0 -29
  83. data/bin/console +0 -15
  84. data/bin/overcommit +0 -29
  85. data/bin/overcommit_branch +0 -114
  86. data/bin/rake +0 -29
  87. data/bin/rubocop +0 -27
  88. data/bin/setup +0 -8
  89. data/bin/solargraph +0 -27
  90. data/bin/sord +0 -27
  91. data/bin/spoom +0 -27
  92. data/bin/srb +0 -27
  93. data/bin/srb-rbi +0 -27
  94. data/bin/tapioca +0 -27
  95. data/bin/yard +0 -27
  96. data/config/annotations_asana.rb +0 -254
  97. data/config/annotations_misc.rb +0 -68
  98. data/config/env.1p +0 -2
  99. data/docs/.gitignore +0 -3
  100. data/docs/cookiecutter_input.json +0 -17
  101. data/docs/example_project.png +0 -0
  102. data/fix.sh +0 -534
  103. data/metrics/bigfiles_high_water_mark +0 -1
  104. data/metrics/brakeman_high_water_mark +0 -1
  105. data/metrics/bundle-audit_high_water_mark +0 -1
  106. data/metrics/cane_high_water_mark +0 -1
  107. data/metrics/eslint_high_water_mark +0 -1
  108. data/metrics/flake8_high_water_mark +0 -1
  109. data/metrics/flay_high_water_mark +0 -1
  110. data/metrics/flog_high_water_mark +0 -1
  111. data/metrics/jscs_high_water_mark +0 -1
  112. data/metrics/mdl_high_water_mark +0 -1
  113. data/metrics/pep8_high_water_mark +0 -1
  114. data/metrics/punchlist_high_water_mark +0 -1
  115. data/metrics/pycodestyle_high_water_mark +0 -1
  116. data/metrics/rails_best_practices_high_water_mark +0 -1
  117. data/metrics/rubocop_high_water_mark +0 -1
  118. data/metrics/scalastyle_high_water_mark +0 -1
  119. data/metrics/shellcheck_high_water_mark +0 -1
  120. data/package.json +0 -9
  121. data/rakelib/citest.rake +0 -4
  122. data/rakelib/clear_metrics.rake +0 -9
  123. data/rakelib/console.rake +0 -15
  124. data/rakelib/default.rake +0 -4
  125. data/rakelib/doc.rake +0 -6
  126. data/rakelib/gem_tasks.rake +0 -3
  127. data/rakelib/localtest.rake +0 -4
  128. data/rakelib/overcommit.rake +0 -6
  129. data/rakelib/quality.rake +0 -4
  130. data/rakelib/repl.rake +0 -4
  131. data/rakelib/test.rake +0 -10
  132. data/rakelib/trigger_next_builds.rake +0 -7
  133. data/rakelib/undercover.rake +0 -8
  134. data/requirements_dev.txt +0 -2
  135. data/sorbet/config +0 -4
  136. data/sorbet/rbi/annotations/.gitattributes +0 -1
  137. data/sorbet/rbi/annotations/activesupport.rbi +0 -453
  138. data/sorbet/rbi/annotations/faraday.rbi +0 -17
  139. data/sorbet/rbi/annotations/minitest.rbi +0 -119
  140. data/sorbet/rbi/annotations/mocha.rbi +0 -34
  141. data/sorbet/rbi/annotations/rainbow.rbi +0 -269
  142. data/sorbet/rbi/annotations/webmock.rbi +0 -9
  143. data/sorbet/rbi/dsl/.gitattributes +0 -1
  144. data/sorbet/rbi/dsl/active_support/callbacks.rbi +0 -23
  145. data/sorbet/rbi/gems/.gitattributes +0 -1
  146. data/sorbet/rbi/gems/activesupport@7.1.5.rbi +0 -18746
  147. data/sorbet/rbi/gems/addressable@2.8.6.rbi +0 -1994
  148. data/sorbet/rbi/gems/ansi@1.5.0.rbi +0 -688
  149. data/sorbet/rbi/gems/asana@0.10.6-ab9393136d9ca59b75e42a661fdddc1c65c8f7c3.rbi +0 -6142
  150. data/sorbet/rbi/gems/ast@2.4.2.rbi +0 -585
  151. data/sorbet/rbi/gems/backport@1.2.0.rbi +0 -523
  152. data/sorbet/rbi/gems/base64@0.2.0.rbi +0 -509
  153. data/sorbet/rbi/gems/benchmark@0.4.0.rbi +0 -618
  154. data/sorbet/rbi/gems/bigdecimal@3.1.5.rbi +0 -78
  155. data/sorbet/rbi/gems/brakeman@6.2.2.rbi +0 -222
  156. data/sorbet/rbi/gems/builder@3.2.4.rbi +0 -505
  157. data/sorbet/rbi/gems/bump@0.10.0.rbi +0 -169
  158. data/sorbet/rbi/gems/cache@0.4.1.rbi +0 -211
  159. data/sorbet/rbi/gems/cache_method@0.2.7.rbi +0 -293
  160. data/sorbet/rbi/gems/chef-utils@18.3.0.rbi +0 -9
  161. data/sorbet/rbi/gems/childprocess@5.1.0.rbi +0 -383
  162. data/sorbet/rbi/gems/coderay@1.1.3.rbi +0 -3427
  163. data/sorbet/rbi/gems/concurrent-ruby@1.2.3.rbi +0 -11591
  164. data/sorbet/rbi/gems/connection_pool@2.4.1.rbi +0 -9
  165. data/sorbet/rbi/gems/crack@0.4.5.rbi +0 -145
  166. data/sorbet/rbi/gems/diff-lcs@1.5.1.rbi +0 -969
  167. data/sorbet/rbi/gems/docile@1.4.0.rbi +0 -377
  168. data/sorbet/rbi/gems/drb@2.2.1.rbi +0 -1347
  169. data/sorbet/rbi/gems/e2mmap@0.1.0.rbi +0 -9
  170. data/sorbet/rbi/gems/erubi@1.13.0.rbi +0 -152
  171. data/sorbet/rbi/gems/faraday-em_http@1.0.0.rbi +0 -222
  172. data/sorbet/rbi/gems/faraday-em_synchrony@1.0.0.rbi +0 -126
  173. data/sorbet/rbi/gems/faraday-excon@1.1.0.rbi +0 -136
  174. data/sorbet/rbi/gems/faraday-httpclient@1.0.1.rbi +0 -145
  175. data/sorbet/rbi/gems/faraday-multipart@1.0.4.rbi +0 -259
  176. data/sorbet/rbi/gems/faraday-net_http@1.0.1.rbi +0 -142
  177. data/sorbet/rbi/gems/faraday-net_http_persistent@1.2.0.rbi +0 -118
  178. data/sorbet/rbi/gems/faraday-patron@1.0.0.rbi +0 -125
  179. data/sorbet/rbi/gems/faraday-rack@1.0.0.rbi +0 -133
  180. data/sorbet/rbi/gems/faraday-retry@1.0.3.rbi +0 -198
  181. data/sorbet/rbi/gems/faraday@1.10.3.rbi +0 -2729
  182. data/sorbet/rbi/gems/faraday_middleware-multi_json@0.0.6.rbi +0 -29
  183. data/sorbet/rbi/gems/faraday_middleware@1.2.0.rbi +0 -1004
  184. data/sorbet/rbi/gems/gli@2.22.0.rbi +0 -9
  185. data/sorbet/rbi/gems/hashdiff@1.0.1.rbi +0 -351
  186. data/sorbet/rbi/gems/i18n@1.14.6.rbi +0 -2359
  187. data/sorbet/rbi/gems/imagen@0.1.8.rbi +0 -340
  188. data/sorbet/rbi/gems/iniparse@1.5.0.rbi +0 -899
  189. data/sorbet/rbi/gems/jaro_winkler@1.6.0.rbi +0 -22
  190. data/sorbet/rbi/gems/json@2.7.1.rbi +0 -1562
  191. data/sorbet/rbi/gems/jwt@2.7.1.rbi +0 -1405
  192. data/sorbet/rbi/gems/kramdown-parser-gfm@1.1.0.rbi +0 -128
  193. data/sorbet/rbi/gems/kramdown@2.4.0.rbi +0 -3272
  194. data/sorbet/rbi/gems/language_server-protocol@3.17.0.3.rbi +0 -14238
  195. data/sorbet/rbi/gems/logger@1.6.2.rbi +0 -923
  196. data/sorbet/rbi/gems/mdl@0.13.0.rbi +0 -445
  197. data/sorbet/rbi/gems/method_source@1.0.0.rbi +0 -273
  198. data/sorbet/rbi/gems/mime-types-data@3.2023.1205.rbi +0 -127
  199. data/sorbet/rbi/gems/mime-types@3.5.1.rbi +0 -1252
  200. data/sorbet/rbi/gems/minitest-profile@0.0.2.rbi +0 -136
  201. data/sorbet/rbi/gems/minitest-reporters@1.6.1.rbi +0 -1014
  202. data/sorbet/rbi/gems/minitest@5.21.1.rbi +0 -1539
  203. data/sorbet/rbi/gems/mixlib-cli@2.1.8.rbi +0 -314
  204. data/sorbet/rbi/gems/mixlib-config@3.0.27.rbi +0 -581
  205. data/sorbet/rbi/gems/mixlib-shellout@3.2.7.rbi +0 -629
  206. data/sorbet/rbi/gems/mocha@2.1.0.rbi +0 -12
  207. data/sorbet/rbi/gems/multi_json@1.15.0.rbi +0 -268
  208. data/sorbet/rbi/gems/multi_xml@0.6.0.rbi +0 -102
  209. data/sorbet/rbi/gems/multipart-post@2.3.0.rbi +0 -234
  210. data/sorbet/rbi/gems/mutex_m@0.3.0.rbi +0 -97
  211. data/sorbet/rbi/gems/netrc@0.11.0.rbi +0 -159
  212. data/sorbet/rbi/gems/nokogiri@1.17.0.rbi +0 -8201
  213. data/sorbet/rbi/gems/oauth2@1.4.11.rbi +0 -833
  214. data/sorbet/rbi/gems/overcommit@0.64.1.rbi +0 -2400
  215. data/sorbet/rbi/gems/parallel@1.23.0.rbi +0 -274
  216. data/sorbet/rbi/gems/parser@3.2.2.4.rbi +0 -7253
  217. data/sorbet/rbi/gems/prism@1.2.0.rbi +0 -39085
  218. data/sorbet/rbi/gems/pry@0.14.2.rbi +0 -10070
  219. data/sorbet/rbi/gems/public_suffix@5.0.4.rbi +0 -936
  220. data/sorbet/rbi/gems/punchlist@1.3.2.rbi +0 -173
  221. data/sorbet/rbi/gems/racc@1.8.1.rbi +0 -162
  222. data/sorbet/rbi/gems/rack@3.1.8.rbi +0 -4896
  223. data/sorbet/rbi/gems/rainbow@3.1.1.rbi +0 -403
  224. data/sorbet/rbi/gems/rake@13.1.0.rbi +0 -3022
  225. data/sorbet/rbi/gems/rbi@0.2.1.rbi +0 -4535
  226. data/sorbet/rbi/gems/rbs@2.8.4.rbi +0 -5613
  227. data/sorbet/rbi/gems/regexp_parser@2.8.3.rbi +0 -3750
  228. data/sorbet/rbi/gems/reverse_markdown@2.1.1.rbi +0 -390
  229. data/sorbet/rbi/gems/rexml@3.3.9.rbi +0 -4964
  230. data/sorbet/rbi/gems/rubocop-ast@1.30.0.rbi +0 -7061
  231. data/sorbet/rbi/gems/rubocop-minitest@0.34.5.rbi +0 -2577
  232. data/sorbet/rbi/gems/rubocop-performance@1.20.2.rbi +0 -3262
  233. data/sorbet/rbi/gems/rubocop-rake@0.6.0.rbi +0 -329
  234. data/sorbet/rbi/gems/rubocop-rspec@3.0.0.rbi +0 -7546
  235. data/sorbet/rbi/gems/rubocop@1.59.0.rbi +0 -57238
  236. data/sorbet/rbi/gems/ruby-progressbar@1.13.0.rbi +0 -1318
  237. data/sorbet/rbi/gems/ruby2_keywords@0.0.5.rbi +0 -9
  238. data/sorbet/rbi/gems/rugged@1.6.3.rbi +0 -1577
  239. data/sorbet/rbi/gems/securerandom@0.4.0.rbi +0 -75
  240. data/sorbet/rbi/gems/simplecov-html@0.12.3.rbi +0 -217
  241. data/sorbet/rbi/gems/simplecov-lcov@0.8.0.rbi +0 -256
  242. data/sorbet/rbi/gems/simplecov@0.22.0.rbi +0 -2149
  243. data/sorbet/rbi/gems/simplecov_json_formatter@0.1.4.rbi +0 -9
  244. data/sorbet/rbi/gems/solargraph-rails@1.1.0-9dc37915bd4f3b169046e34db6fb32193ab347d8.rbi +0 -320
  245. data/sorbet/rbi/gems/solargraph@0.50.1-904b9304770a59fac393c5cc3cad481e5bdf0fd8.rbi +0 -9396
  246. data/sorbet/rbi/gems/source_finder@3.2.1.rbi +0 -317
  247. data/sorbet/rbi/gems/spoom@1.5.0.rbi +0 -4932
  248. data/sorbet/rbi/gems/tapioca@0.16.5.rbi +0 -3617
  249. data/sorbet/rbi/gems/thor@1.3.2.rbi +0 -4378
  250. data/sorbet/rbi/gems/tilt@2.4.0.rbi +0 -933
  251. data/sorbet/rbi/gems/tomlrb@2.0.3.rbi +0 -9
  252. data/sorbet/rbi/gems/tzinfo@2.0.6.rbi +0 -5918
  253. data/sorbet/rbi/gems/undercover@0.5.0.rbi +0 -433
  254. data/sorbet/rbi/gems/unicode-display_width@2.5.0.rbi +0 -66
  255. data/sorbet/rbi/gems/webmock@3.19.1.rbi +0 -1769
  256. data/sorbet/rbi/gems/yard-sorbet@0.9.0.rbi +0 -435
  257. data/sorbet/rbi/gems/yard@0.9.37.rbi +0 -18406
  258. data/sorbet/rbi/todo.rbi +0 -11
  259. data/sorbet/tapioca/config.yml +0 -13
  260. data/sorbet/tapioca/require.rb +0 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: cddefb59c6b268a9501c151a8c5482baedc1626ff56090a02bacd09a34e4f530
4
- data.tar.gz: 733b5e95bab3a468e4fbe54e8215c70bd4d1094e48464b25e04053d29023653e
3
+ metadata.gz: 2e7ecdc301e24da8bcdf4893c5eac31520410584cce13060481563caabf7deba
4
+ data.tar.gz: ef3ebc23874cc8bfdcac13b8e7ea58ead9c105fac7f9dc7293978488a6a8b432
5
5
  SHA512:
6
- metadata.gz: 21d8c9e39760f92e503efbcd98707a3935dffb077677f92e7165767cd7c305673a27810f75bd8640fe79bd6ffc1cd5f616e4787234d9ac4c84ddf4008be344d9
7
- data.tar.gz: 2d6aaadfd50a74cccca45efe6ccf866e4da393f2a70bac001e7afbc912acf071a95e765de2f4ee4fb67dbf515e46db61f01c4ddb2ad507dd34e4cb213885b9fc
6
+ metadata.gz: 0c66ab40b991cda60fee2d3ca1badd2bee3b363a09cbffa346248ee32886c84c659f49b67badbba61749a003d7a7e5abf9a5263cd09f42fe5a4d9a962a80b252
7
+ data.tar.gz: 50b8cee8d14a8515222cd285041780eb2bcdab8a8835ca22ce9ab3ef9d608c89c942fb1416df851658f95e8c7dc47242ce637334023c9e2c59f5fd33a18f9bd4
data/checkoff.gemspec CHANGED
@@ -15,11 +15,16 @@ Gem::Specification.new do |spec|
15
15
  spec.license = 'MIT license'
16
16
  spec.required_ruby_version = '>= 3.0'
17
17
 
18
- spec.files = Dir.chdir(File.expand_path(__dir__)) do
19
- `git ls-files -z`.split("\x0").reject do |f|
20
- f.match(%r{^(test|spec|features)/})
21
- end
22
- end
18
+ spec.files = Dir['README.md',
19
+ 'Rakefile',
20
+ 'lib/checkoff.rb',
21
+ '{lib}/**/*',
22
+ 'sig/**/*.rbs',
23
+ 'sig/*.rbs',
24
+ 'rbi/**/*.rbi',
25
+ 'rbi/*.rbi',
26
+ '{exe}/*',
27
+ 'checkoff.gemspec']
23
28
  spec.bindir = 'exe'
24
29
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
25
30
  spec.require_paths = ['lib']
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
+ # typed: false
2
3
 
3
4
  # frozen_string_literal: true
4
5
 
data/lib/checkoff/cli.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
- # typed: ignore
2
+ # typed: true
3
3
 
4
4
  # frozen_string_literal: true
5
5
 
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
+ # typed: true
2
3
 
3
4
  # frozen_string_literal: true
4
5
 
@@ -18,7 +19,7 @@ module Checkoff
18
19
  LONG_CACHE_TIME = MINUTE * 15
19
20
  SHORT_CACHE_TIME = MINUTE
20
21
 
21
- # @param config [Hash]
22
+ # @param config [Checkoff::Internal::EnvFallbackConfigLoader]
22
23
  # @param asana_client_class [Class<Asana::Client>]
23
24
  def initialize(config: Checkoff::Internal::ConfigLoader.load(:asana),
24
25
  asana_client_class: Asana::Client)
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
+ # typed: true
2
3
 
3
4
  # frozen_string_literal: true
4
5
 
@@ -23,7 +24,7 @@ module Checkoff
23
24
  LONG_CACHE_TIME = MINUTE * 15
24
25
  SHORT_CACHE_TIME = MINUTE
25
26
 
26
- # @param config [Hash]
27
+ # @param config [Checkoff::Internal::EnvFallbackConfigLoader]
27
28
  # @param workspaces [Checkoff::Workspaces]
28
29
  # @param clients [Checkoff::Clients]
29
30
  # @param client [Asana::Client]
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
+ # typed: true
2
3
 
3
4
  # frozen_string_literal: true
4
5
 
@@ -32,7 +33,7 @@ module Checkoff
32
33
  SHORT_CACHE_TIME = MINUTE
33
34
  private_constant :SHORT_CACHE_TIME
34
35
 
35
- # @param config [Hash]
36
+ # @param config [Checkoff::Internal::EnvFallbackConfigLoader]
36
37
  # @param workspaces [Checkoff::Workspaces]
37
38
  # @param tasks [Checkoff::Tasks]
38
39
  # @param sections [Checkoff::Sections]
@@ -1,3 +1,4 @@
1
+ # typed: false
1
2
  # frozen_string_literal: true
2
3
 
3
4
  require 'forwardable'
@@ -1,3 +1,4 @@
1
+ # typed: true
1
2
  # frozen_string_literal: true
2
3
 
3
4
  require_relative 'logging'
@@ -1,3 +1,4 @@
1
+ # typed: true
1
2
  # frozen_string_literal: true
2
3
 
3
4
  require 'yaml'
@@ -49,8 +50,7 @@ module Checkoff
49
50
  # Load configuration file
50
51
  class ConfigLoader
51
52
  class << self
52
- # @sg-ignore
53
- # @return [Hash<Symbol, Object>]
53
+ # @return [EnvFallbackConfigLoader]
54
54
  def load(sym)
55
55
  yaml_result = load_yaml_file(sym)
56
56
  EnvFallbackConfigLoader.new(yaml_result, sym, yaml_filename(sym))
@@ -1,3 +1,4 @@
1
+ # typed: false
1
2
  # frozen_string_literal: true
2
3
 
3
4
  require 'logger'
@@ -15,35 +16,35 @@ module Logging
15
16
  end
16
17
  end
17
18
 
18
- # @param message [String,nil]
19
+ # @param message [Object,nil]
19
20
  #
20
21
  # @return [void]
21
22
  def error(message = nil, &block)
22
23
  logger.error(message, &block)
23
24
  end
24
25
 
25
- # @param message [String,nil]
26
+ # @param message [Object,nil]
26
27
  #
27
28
  # @return [void]
28
29
  def warn(message = nil, &block)
29
30
  logger.warn(message, &block)
30
31
  end
31
32
 
32
- # @param message [String,nil]
33
+ # @param message [Object,nil]
33
34
  #
34
35
  # @return [void]
35
36
  def info(message = nil, &block)
36
37
  logger.info(message, &block)
37
38
  end
38
39
 
39
- # @param message [String,nil]
40
+ # @param message [Object,nil]
40
41
  #
41
42
  # @return [void]
42
43
  def debug(message = nil, &block)
43
44
  logger.debug(message, &block)
44
45
  end
45
46
 
46
- # @param message [String,nil]
47
+ # @param message [Object,nil]
47
48
  #
48
49
  # @return [void]
49
50
  def finer(message = nil, &block)
@@ -1,3 +1,4 @@
1
+ # typed: true
1
2
  # frozen_string_literal: true
2
3
 
3
4
  module Checkoff
@@ -1,3 +1,4 @@
1
+ # typed: true
1
2
  # frozen_string_literal: true
2
3
 
3
4
  require_relative 'selector_classes/common'
@@ -37,7 +38,7 @@ module Checkoff
37
38
 
38
39
  FUNCTION_EVALUTORS = (COMMON_FUNCTION_EVALUATORS + PROJECT_FUNCTION_EVALUATORS).freeze
39
40
 
40
- # @return [Array<Class<ProjectSelectorClasses::FunctionEvaluator>>]
41
+ # @return [Array<Class<Checkoff::SelectorClasses::Project::FunctionEvaluator>>]
41
42
  def function_evaluators
42
43
  FUNCTION_EVALUTORS
43
44
  end
@@ -1,3 +1,4 @@
1
+ # typed: false
1
2
  # frozen_string_literal: true
2
3
 
3
4
  require 'checkoff/custom_fields'
@@ -1,3 +1,4 @@
1
+ # typed: false
1
2
  # frozen_string_literal: true
2
3
 
3
4
  require_relative 'custom_field_variant'
@@ -1,3 +1,4 @@
1
+ # typed: false
1
2
  # frozen_string_literal: true
2
3
 
3
4
  module Checkoff
@@ -1,3 +1,4 @@
1
+ # typed: false
1
2
  # frozen_string_literal: true
2
3
 
3
4
  require_relative 'custom_field_param_converter'
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
+ # typed: false
2
3
 
3
4
  # frozen_string_literal: true
4
5
 
@@ -1,3 +1,4 @@
1
+ # typed: false
1
2
  # frozen_string_literal: true
2
3
 
3
4
  module Checkoff
@@ -1,3 +1,4 @@
1
+ # typed: false
1
2
  # frozen_string_literal: true
2
3
 
3
4
  require_relative 'custom_field_param_converter'
@@ -1,3 +1,4 @@
1
+ # typed: strict
1
2
  # frozen_string_literal: true
2
3
 
3
4
  require_relative 'search_url/parser'
@@ -1,3 +1,4 @@
1
+ # typed: true
1
2
  # frozen_string_literal: true
2
3
 
3
4
  require_relative 'selector_classes/common'
@@ -38,7 +39,7 @@ module Checkoff
38
39
 
39
40
  FUNCTION_EVALUTORS = (COMMON_FUNCTION_EVALUATORS + SECTION_FUNCTION_EVALUATORS).freeze
40
41
 
41
- # @return [Array<Class<ProjectSelectorClasses::FunctionEvaluator>>]
42
+ # @return [Array<Class<Checkoff::SelectorClasses::Project::FunctionEvaluator>>]
42
43
  def function_evaluators
43
44
  FUNCTION_EVALUTORS
44
45
  end
@@ -1,3 +1,4 @@
1
+ # typed: true
1
2
  # frozen_string_literal: true
2
3
 
3
4
  require_relative '../function_evaluator'
@@ -1,3 +1,4 @@
1
+ # typed: false
1
2
  # frozen_string_literal: true
2
3
 
3
4
  require_relative 'common/function_evaluator'
@@ -1,3 +1,4 @@
1
+ # typed: strict
1
2
  # frozen_string_literal: true
2
3
 
3
4
  require 'checkoff/internal/logging'
@@ -1,3 +1,4 @@
1
+ # typed: true
1
2
  # frozen_string_literal: true
2
3
 
3
4
  require_relative '../function_evaluator'
@@ -1,3 +1,4 @@
1
+ # typed: true
1
2
  # frozen_string_literal: true
2
3
 
3
4
  require_relative 'project/function_evaluator'
@@ -1,3 +1,4 @@
1
+ # typed: true
1
2
  # frozen_string_literal: true
2
3
 
3
4
  require_relative '../function_evaluator'
@@ -10,10 +11,11 @@ module Checkoff
10
11
  # @param selector [Array<(Symbol, Array)>,String]
11
12
  # @param client [Asana::Client]
12
13
  # @param sections [Checkoff::Sections]
14
+ # @param kwargs [Hash]
13
15
  def initialize(selector:,
14
16
  sections:,
15
17
  client:,
16
- **)
18
+ **kwargs)
17
19
  @selector = selector
18
20
  @sections = sections
19
21
  @client = client
@@ -1,3 +1,4 @@
1
+ # typed: false
1
2
  # frozen_string_literal: true
2
3
 
3
4
  require_relative 'section/function_evaluator'
@@ -1,3 +1,4 @@
1
+ # typed: true
1
2
  # frozen_string_literal: true
2
3
 
3
4
  require_relative '../function_evaluator'
@@ -1,3 +1,4 @@
1
+ # typed: false
1
2
  # frozen_string_literal: true
2
3
 
3
4
  require_relative 'task/function_evaluator'
@@ -1,3 +1,4 @@
1
+ # typed: false
1
2
  # frozen_string_literal: true
2
3
 
3
4
  module Checkoff
@@ -9,7 +10,7 @@ module Checkoff
9
10
  return true if selector.empty?
10
11
 
11
12
  function_evaluators.each do |evaluator_class|
12
- # @type [SelectorClasses::FunctionEvaluator]
13
+ # @type [Checkoff::SelectorClasses::FunctionEvaluator]
13
14
  # @sg-ignore
14
15
  evaluator = evaluator_class.new(selector: selector,
15
16
  **initializer_kwargs)
@@ -29,14 +30,14 @@ module Checkoff
29
30
  {}
30
31
  end
31
32
 
32
- # @return [Array<Class<FunctionEvaluator>>]
33
+ # @return [Array<Class<Checkoff::SelectorClasses::FunctionEvaluator>>]
33
34
  # @sg-ignore
34
35
  def function_evaluators
35
36
  raise 'Implement me!'
36
37
  end
37
38
 
38
39
  # @param selector [Array]
39
- # @param evaluator [SelectorClasses::FunctionEvaluator]
40
+ # @param evaluator [Checkoff::SelectorClasses::FunctionEvaluator]
40
41
  # @return [Array]
41
42
  def evaluate_args(selector, evaluator)
42
43
  return [] unless selector.is_a?(Array)
@@ -51,7 +52,7 @@ module Checkoff
51
52
  end
52
53
 
53
54
  # @param selector [Array]
54
- # @param evaluator [SelectorClasses::FunctionEvaluator]
55
+ # @param evaluator [Checkoff::SelectorClasses::FunctionEvaluator]
55
56
  # @return [Boolean, Object, nil]
56
57
  def try_this_evaluator(selector, evaluator)
57
58
  # if selector is an array
@@ -1,3 +1,4 @@
1
+ # typed: true
1
2
  # frozen_string_literal: true
2
3
 
3
4
  module Checkoff
@@ -1,3 +1,4 @@
1
+ # typed: true
1
2
  # frozen_string_literal: true
2
3
 
3
4
  require_relative 'selector_classes/common'
@@ -34,7 +35,7 @@ module Checkoff
34
35
 
35
36
  FUNCTION_EVALUTORS = (COMMON_FUNCTION_EVALUATORS + TASK_FUNCTION_EVALUATORS).freeze
36
37
 
37
- # @return [Array<Class<TaskSelectorClasses::FunctionEvaluator>>]
38
+ # @return [Array<Class<Checkoff::SelectorClasses::Task::FunctionEvaluator>>]
38
39
  def function_evaluators
39
40
  FUNCTION_EVALUTORS
40
41
  end
@@ -1,3 +1,4 @@
1
+ # typed: false
1
2
  # frozen_string_literal: true
2
3
 
3
4
  module Checkoff
@@ -1,3 +1,4 @@
1
+ # typed: strict
1
2
  # frozen_string_literal: true
2
3
 
3
4
  module Checkoff
@@ -1,3 +1,4 @@
1
+ # typed: true
1
2
  # frozen_string_literal: true
2
3
 
3
4
  require 'asana'
@@ -1,3 +1,4 @@
1
+ # typed: false
1
2
  # frozen_string_literal: true
2
3
 
3
4
  require 'forwardable'
@@ -15,7 +16,7 @@ module Checkoff
15
16
  # @return [Checkoff::Projects]
16
17
  attr_reader :projects
17
18
 
18
- # @param config [Hash<Symbol, Object>]
19
+ # @param config [Checkoff::Internal::EnvFallbackConfigLoader]
19
20
  # @param client [Asana::Client]
20
21
  # @param projects [Checkoff::Projects]
21
22
  def initialize(config: Checkoff::Internal::ConfigLoader.load(:asana),
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
+ # typed: true
2
3
 
3
4
  # frozen_string_literal: true
4
5
 
@@ -8,23 +9,25 @@ require_relative 'internal/config_loader'
8
9
  require_relative 'workspaces'
9
10
  require_relative 'clients'
10
11
  require_relative 'projects'
12
+ require 'sorbet-runtime'
11
13
 
12
14
  # https://developers.asana.com/reference/portfolios
13
15
 
14
16
  module Checkoff
15
17
  # Pull portfolios from Asana
16
18
  class Portfolios
19
+ extend T::Sig
17
20
  # @!parse
18
21
  # extend CacheMethod::ClassMethods
19
22
 
20
23
  MINUTE = 60
21
- HOUR = MINUTE * 60
22
- DAY = 24 * HOUR
23
- REALLY_LONG_CACHE_TIME = HOUR * 1
24
- LONG_CACHE_TIME = MINUTE * 15
25
- SHORT_CACHE_TIME = MINUTE
24
+ HOUR = T.let(MINUTE * 60, Numeric)
25
+ DAY = T.let(24 * HOUR, Numeric)
26
+ REALLY_LONG_CACHE_TIME = T.let(HOUR * 1, Numeric)
27
+ LONG_CACHE_TIME = T.let(MINUTE * 15, Numeric)
28
+ SHORT_CACHE_TIME = T.let(MINUTE, Numeric)
26
29
 
27
- # @param config [Hash]
30
+ # @param config [Checkoff::Internal::EnvFallbackConfigLoader]
28
31
  # @param workspaces [Checkoff::Workspaces]
29
32
  # @param clients [Checkoff::Clients]
30
33
  # @param client [Asana::Client]
@@ -34,9 +37,9 @@ module Checkoff
34
37
  client: clients.client,
35
38
  projects: Checkoff::Projects.new(config: config, client: client),
36
39
  workspaces: Checkoff::Workspaces.new(config: config, client: client))
37
- @workspaces = workspaces
38
- @client = client
39
- @projects = projects
40
+ @workspaces = T.let(workspaces, Checkoff::Workspaces)
41
+ @client = T.let(client, Asana::Client)
42
+ @projects = T.let(projects, Checkoff::Projects)
40
43
  end
41
44
 
42
45
  # @param workspace_name [String]
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
+ # typed: false
2
3
 
3
4
  # frozen_string_literal: true
4
5
 
@@ -1,3 +1,5 @@
1
+ # typed: false
2
+
1
3
  # frozen_string_literal: true
2
4
 
3
5
  require_relative 'internal/config_loader'
@@ -31,7 +33,7 @@ module Checkoff
31
33
  # @!parse
32
34
  # extend CacheMethod::ClassMethods
33
35
 
34
- # @param config [Hash<Symbol, Object>]
36
+ # @param config [Checkoff::Internal::EnvFallbackConfigLoader]
35
37
  # @param client [Asana::Client]
36
38
  # @param workspaces [Checkoff::Workspaces]
37
39
  # @param project_hashes [Checkoff::Internal::ProjectHashes]
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
+ # typed: false
2
3
 
3
4
  # frozen_string_literal: true
4
5
 
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
+ # typed: false
2
3
 
3
4
  # frozen_string_literal: true
4
5
 
@@ -1,3 +1,4 @@
1
+ # typed: false
1
2
  # frozen_string_literal: true
2
3
 
3
4
  require 'forwardable'
@@ -33,7 +34,7 @@ module Checkoff
33
34
  # @return [Checkoff::MyTasks]
34
35
  attr_reader :my_tasks
35
36
 
36
- # @param config [Hash<Symbol, Object>]
37
+ # @param config [Checkoff::Internal::EnvFallbackConfigLoader]
37
38
  # @param client [Asana::Client]
38
39
  # @param projects [Checkoff::Projects]
39
40
  # @param workspaces [Checkoff::Workspaces]
@@ -47,7 +48,8 @@ module Checkoff
47
48
  time: Time)
48
49
  @projects = projects
49
50
  @workspaces = workspaces
50
- @my_tasks = Checkoff::MyTasks.new(config: config, projects: projects, client: client)
51
+ @my_tasks = Checkoff::MyTasks
52
+ .new(config: config, projects: projects, client: client)
51
53
  @client = client
52
54
  @time = time
53
55
  end
@@ -111,8 +113,6 @@ module Checkoff
111
113
  client.tasks.get_tasks(section: section_gid, **options)
112
114
  end
113
115
 
114
- # XXX: Rename to section_tasks
115
- #
116
116
  # Pulls task objects from a specified section
117
117
  #
118
118
  # @param workspace_name [String]
@@ -1,3 +1,4 @@
1
+ # typed: false
1
2
  # frozen_string_literal: true
2
3
 
3
4
  require 'forwardable'