ipt 1.0.1 → 2.1.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 (235) hide show
  1. checksums.yaml +5 -5
  2. data/.github/workflows/test.yml +41 -0
  3. data/.gitignore +0 -1
  4. data/Gemfile.lock +318 -0
  5. data/README.md +1 -1
  6. data/bin/tapioca +29 -0
  7. data/ipt.gemspec +15 -8
  8. data/lib/pt.rb +8 -9
  9. data/lib/pt/action.rb +42 -24
  10. data/lib/pt/cli.rb +1 -1
  11. data/lib/pt/client.rb +2 -3
  12. data/lib/pt/configuration.rb +1 -1
  13. data/lib/pt/data_row.rb +1 -0
  14. data/lib/pt/data_table.rb +1 -2
  15. data/lib/pt/io.rb +16 -7
  16. data/lib/pt/version.rb +2 -1
  17. data/sorbet/config +3 -0
  18. data/sorbet/rbi/gems/activesupport.rbi +671 -0
  19. data/sorbet/rbi/gems/activesupport@6.1.3.2.rbi +63 -0
  20. data/sorbet/rbi/gems/addressable.rbi +147 -0
  21. data/sorbet/rbi/gems/addressable@2.7.0.rbi +8 -0
  22. data/sorbet/rbi/gems/anyway_config.rbi +197 -0
  23. data/sorbet/rbi/gems/anyway_config@2.1.0.rbi +8 -0
  24. data/sorbet/rbi/gems/aruba.rbi +917 -0
  25. data/sorbet/rbi/gems/aruba@0.14.14.rbi +1342 -0
  26. data/sorbet/rbi/gems/ast.rbi +49 -0
  27. data/sorbet/rbi/gems/ast@2.4.2.rbi +54 -0
  28. data/sorbet/rbi/gems/axiom-types@0.1.1.rbi +8 -0
  29. data/sorbet/rbi/gems/builder@3.2.4.rbi +15 -0
  30. data/sorbet/rbi/gems/childprocess.rbi +107 -0
  31. data/sorbet/rbi/gems/childprocess@3.0.0.rbi +135 -0
  32. data/sorbet/rbi/gems/coderay.rbi +285 -0
  33. data/sorbet/rbi/gems/coderay@1.1.3.rbi +1005 -0
  34. data/sorbet/rbi/gems/coercible@1.0.0.rbi +8 -0
  35. data/sorbet/rbi/gems/colorize.rbi +82 -0
  36. data/sorbet/rbi/gems/colorize@0.8.1.rbi +39 -0
  37. data/sorbet/rbi/gems/commander@4.6.0.rbi +8 -0
  38. data/sorbet/rbi/gems/concurrent-ruby.rbi +1590 -0
  39. data/sorbet/rbi/gems/concurrent-ruby@1.1.8.rbi +8 -0
  40. data/sorbet/rbi/gems/config.rbi +124 -0
  41. data/sorbet/rbi/gems/config@3.1.0.rbi +8 -0
  42. data/sorbet/rbi/gems/contracts.rbi +391 -0
  43. data/sorbet/rbi/gems/contracts@0.16.1.rbi +592 -0
  44. data/sorbet/rbi/gems/cucumber-core.rbi +628 -0
  45. data/sorbet/rbi/gems/cucumber-core@9.0.0.rbi +8 -0
  46. data/sorbet/rbi/gems/cucumber-create-meta.rbi +27 -0
  47. data/sorbet/rbi/gems/cucumber-create-meta@4.0.0.rbi +8 -0
  48. data/sorbet/rbi/gems/cucumber-cucumber-expressions.rbi +216 -0
  49. data/sorbet/rbi/gems/cucumber-cucumber-expressions@12.1.1.rbi +8 -0
  50. data/sorbet/rbi/gems/cucumber-gherkin.rbi +289 -0
  51. data/sorbet/rbi/gems/cucumber-gherkin@18.1.1.rbi +8 -0
  52. data/sorbet/rbi/gems/cucumber-html-formatter@13.0.0.rbi +8 -0
  53. data/sorbet/rbi/gems/cucumber-messages.rbi +872 -0
  54. data/sorbet/rbi/gems/cucumber-messages@15.0.0.rbi +8 -0
  55. data/sorbet/rbi/gems/cucumber-tag-expressions.rbi +53 -0
  56. data/sorbet/rbi/gems/cucumber-tag-expressions@3.0.1.rbi +8 -0
  57. data/sorbet/rbi/gems/cucumber-wire.rbi +161 -0
  58. data/sorbet/rbi/gems/cucumber-wire@5.0.0.rbi +8 -0
  59. data/sorbet/rbi/gems/cucumber.rbi +1876 -0
  60. data/sorbet/rbi/gems/cucumber@6.0.0.rbi +8 -0
  61. data/sorbet/rbi/gems/declarative.rbi +75 -0
  62. data/sorbet/rbi/gems/declarative@0.0.20.rbi +8 -0
  63. data/sorbet/rbi/gems/deep_merge.rbi +26 -0
  64. data/sorbet/rbi/gems/deep_merge@1.2.1.rbi +8 -0
  65. data/sorbet/rbi/gems/descendants_tracker@0.0.4.rbi +8 -0
  66. data/sorbet/rbi/gems/diff-lcs@1.4.4.rbi +8 -0
  67. data/sorbet/rbi/gems/dry-configurable@0.12.1.rbi +8 -0
  68. data/sorbet/rbi/gems/dry-container@0.7.2.rbi +8 -0
  69. data/sorbet/rbi/gems/dry-core@0.5.0.rbi +8 -0
  70. data/sorbet/rbi/gems/dry-equalizer@0.3.0.rbi +8 -0
  71. data/sorbet/rbi/gems/dry-inflector@0.2.0.rbi +8 -0
  72. data/sorbet/rbi/gems/dry-initializer@3.0.4.rbi +8 -0
  73. data/sorbet/rbi/gems/dry-logic@1.2.0.rbi +8 -0
  74. data/sorbet/rbi/gems/dry-schema@1.6.2.rbi +8 -0
  75. data/sorbet/rbi/gems/dry-types@1.5.1.rbi +8 -0
  76. data/sorbet/rbi/gems/dry-validation@1.6.0.rbi +8 -0
  77. data/sorbet/rbi/gems/equalizer.rbi +23 -0
  78. data/sorbet/rbi/gems/equalizer@0.0.11.rbi +8 -0
  79. data/sorbet/rbi/gems/equatable.rbi +26 -0
  80. data/sorbet/rbi/gems/equatable@0.5.0.rbi +8 -0
  81. data/sorbet/rbi/gems/excon.rbi +378 -0
  82. data/sorbet/rbi/gems/excon@0.81.0.rbi +8 -0
  83. data/sorbet/rbi/gems/faraday-excon.rbi +28 -0
  84. data/sorbet/rbi/gems/faraday-excon@1.1.0.rbi +8 -0
  85. data/sorbet/rbi/gems/faraday-net_http.rbi +32 -0
  86. data/sorbet/rbi/gems/faraday-net_http@1.0.1.rbi +8 -0
  87. data/sorbet/rbi/gems/faraday-net_http_persistent.rbi +24 -0
  88. data/sorbet/rbi/gems/faraday-net_http_persistent@1.1.0.rbi +8 -0
  89. data/sorbet/rbi/gems/faraday.rbi +606 -0
  90. data/sorbet/rbi/gems/faraday@1.4.1.rbi +8 -0
  91. data/sorbet/rbi/gems/faraday_middleware.rbi +19 -0
  92. data/sorbet/rbi/gems/faraday_middleware@1.0.0.rbi +8 -0
  93. data/sorbet/rbi/gems/ffi.rbi +560 -0
  94. data/sorbet/rbi/gems/ffi@1.15.0.rbi +849 -0
  95. data/sorbet/rbi/gems/formatador.rbi +52 -0
  96. data/sorbet/rbi/gems/formatador@0.2.5.rbi +8 -0
  97. data/sorbet/rbi/gems/guard-compat@1.2.1.rbi +49 -0
  98. data/sorbet/rbi/gems/guard-rspec@4.7.3.rbi +233 -0
  99. data/sorbet/rbi/gems/guard.rbi +397 -0
  100. data/sorbet/rbi/gems/guard@2.16.2.rbi +615 -0
  101. data/sorbet/rbi/gems/highline.rbi +567 -0
  102. data/sorbet/rbi/gems/highline@2.0.3.rbi +8 -0
  103. data/sorbet/rbi/gems/i18n.rbi +133 -0
  104. data/sorbet/rbi/gems/i18n@1.8.10.rbi +8 -0
  105. data/sorbet/rbi/gems/ice_nine@0.11.2.rbi +8 -0
  106. data/sorbet/rbi/gems/listen.rbi +301 -0
  107. data/sorbet/rbi/gems/listen@3.5.1.rbi +476 -0
  108. data/sorbet/rbi/gems/lumberjack.rbi +299 -0
  109. data/sorbet/rbi/gems/lumberjack@1.2.8.rbi +431 -0
  110. data/sorbet/rbi/gems/method_source.rbi +64 -0
  111. data/sorbet/rbi/gems/method_source@1.0.0.rbi +72 -0
  112. data/sorbet/rbi/gems/middleware.rbi +32 -0
  113. data/sorbet/rbi/gems/middleware@0.1.0.rbi +8 -0
  114. data/sorbet/rbi/gems/mime-types-data.rbi +17 -0
  115. data/sorbet/rbi/gems/mime-types-data@3.2021.0225.rbi +8 -0
  116. data/sorbet/rbi/gems/mime-types.rbi +218 -0
  117. data/sorbet/rbi/gems/mime-types@3.3.1.rbi +8 -0
  118. data/sorbet/rbi/gems/mini_mime.rbi +52 -0
  119. data/sorbet/rbi/gems/mini_mime@1.1.0.rbi +8 -0
  120. data/sorbet/rbi/gems/minitest@5.14.4.rbi +8 -0
  121. data/sorbet/rbi/gems/multi_json.rbi +62 -0
  122. data/sorbet/rbi/gems/multi_json@1.15.0.rbi +8 -0
  123. data/sorbet/rbi/gems/multi_test.rbi +28 -0
  124. data/sorbet/rbi/gems/multi_test@0.1.2.rbi +8 -0
  125. data/sorbet/rbi/gems/multipart-post.rbi +53 -0
  126. data/sorbet/rbi/gems/multipart-post@2.1.1.rbi +8 -0
  127. data/sorbet/rbi/gems/necromancer.rbi +135 -0
  128. data/sorbet/rbi/gems/necromancer@0.3.0.rbi +8 -0
  129. data/sorbet/rbi/gems/nenv.rbi +60 -0
  130. data/sorbet/rbi/gems/nenv@0.3.0.rbi +88 -0
  131. data/sorbet/rbi/gems/notiffany.rbi +215 -0
  132. data/sorbet/rbi/gems/notiffany@0.1.3.rbi +323 -0
  133. data/sorbet/rbi/gems/paint.rbi +31 -0
  134. data/sorbet/rbi/gems/paint@2.2.1.rbi +8 -0
  135. data/sorbet/rbi/gems/parlour.rbi +840 -0
  136. data/sorbet/rbi/gems/parlour@6.0.0.rbi +1610 -0
  137. data/sorbet/rbi/gems/parser.rbi +1517 -0
  138. data/sorbet/rbi/gems/parser@3.0.1.1.rbi +1726 -0
  139. data/sorbet/rbi/gems/pastel.rbi +128 -0
  140. data/sorbet/rbi/gems/pastel@0.6.1.rbi +8 -0
  141. data/sorbet/rbi/gems/protobuf-cucumber.rbi +1520 -0
  142. data/sorbet/rbi/gems/protobuf-cucumber@3.10.8.rbi +8 -0
  143. data/sorbet/rbi/gems/pry.rbi +1898 -0
  144. data/sorbet/rbi/gems/pry@0.14.1.rbi +2486 -0
  145. data/sorbet/rbi/gems/public_suffix.rbi +104 -0
  146. data/sorbet/rbi/gems/public_suffix@4.0.6.rbi +8 -0
  147. data/sorbet/rbi/gems/rainbow.rbi +118 -0
  148. data/sorbet/rbi/gems/rainbow@3.0.0.rbi +153 -0
  149. data/sorbet/rbi/gems/rake.rbi +647 -0
  150. data/sorbet/rbi/gems/rake@10.5.0.rbi +805 -0
  151. data/sorbet/rbi/gems/rb-fsevent@0.11.0.rbi +8 -0
  152. data/sorbet/rbi/gems/rb-inotify@0.10.1.rbi +8 -0
  153. data/sorbet/rbi/gems/representable.rbi +227 -0
  154. data/sorbet/rbi/gems/representable@3.1.1.rbi +8 -0
  155. data/sorbet/rbi/gems/rspec-core.rbi +1932 -0
  156. data/sorbet/rbi/gems/rspec-core@3.10.1.rbi +2455 -0
  157. data/sorbet/rbi/gems/rspec-expectations.rbi +1151 -0
  158. data/sorbet/rbi/gems/rspec-expectations@3.10.1.rbi +1652 -0
  159. data/sorbet/rbi/gems/rspec-mocks.rbi +1100 -0
  160. data/sorbet/rbi/gems/rspec-mocks@3.10.2.rbi +1462 -0
  161. data/sorbet/rbi/gems/rspec-support.rbi +280 -0
  162. data/sorbet/rbi/gems/rspec-support@3.10.2.rbi +509 -0
  163. data/sorbet/rbi/gems/rspec.rbi +15 -0
  164. data/sorbet/rbi/gems/rspec@3.10.0.rbi +38 -0
  165. data/sorbet/rbi/gems/ruby-next-core.rbi +76 -0
  166. data/sorbet/rbi/gems/ruby-next-core@0.12.0.rbi +7 -0
  167. data/sorbet/rbi/gems/ruby2_keywords@0.0.4.rbi +8 -0
  168. data/sorbet/rbi/gems/shellany.rbi +29 -0
  169. data/sorbet/rbi/gems/shellany@0.0.1.rbi +28 -0
  170. data/sorbet/rbi/gems/spoom.rbi +872 -0
  171. data/sorbet/rbi/gems/spoom@1.1.1.rbi +1193 -0
  172. data/sorbet/rbi/gems/sys-uname.rbi +66 -0
  173. data/sorbet/rbi/gems/sys-uname@1.2.2.rbi +8 -0
  174. data/sorbet/rbi/gems/tapioca.rbi +39 -0
  175. data/sorbet/rbi/gems/tapioca@0.4.23.rbi +1230 -0
  176. data/sorbet/rbi/gems/terminal-table.rbi +166 -0
  177. data/sorbet/rbi/gems/terminal-table@3.0.0.rbi +8 -0
  178. data/sorbet/rbi/gems/thor.rbi +537 -0
  179. data/sorbet/rbi/gems/thor@1.1.0.rbi +838 -0
  180. data/sorbet/rbi/gems/thread_safe@0.3.6.rbi +8 -0
  181. data/sorbet/rbi/gems/tracker_api.rbi +33 -0
  182. data/sorbet/rbi/gems/tracker_api@1.13.0.rbi +21 -0
  183. data/sorbet/rbi/gems/trailblazer-option.rbi +22 -0
  184. data/sorbet/rbi/gems/trailblazer-option@0.1.1.rbi +8 -0
  185. data/sorbet/rbi/gems/tty-color.rbi +41 -0
  186. data/sorbet/rbi/gems/tty-color@0.3.0.rbi +8 -0
  187. data/sorbet/rbi/gems/tty-command@0.1.0.rbi +8 -0
  188. data/sorbet/rbi/gems/tty-cursor@0.3.0.rbi +8 -0
  189. data/sorbet/rbi/gems/tty-pager.rbi +41 -0
  190. data/sorbet/rbi/gems/tty-pager@0.4.0.rbi +8 -0
  191. data/sorbet/rbi/gems/tty-platform.rbi +36 -0
  192. data/sorbet/rbi/gems/tty-platform@0.1.0.rbi +8 -0
  193. data/sorbet/rbi/gems/tty-progressbar.rbi +164 -0
  194. data/sorbet/rbi/gems/tty-progressbar@0.9.0.rbi +8 -0
  195. data/sorbet/rbi/gems/tty-prompt@0.6.0.rbi +8 -0
  196. data/sorbet/rbi/gems/tty-screen.rbi +40 -0
  197. data/sorbet/rbi/gems/tty-screen@0.5.1.rbi +8 -0
  198. data/sorbet/rbi/gems/tty-spinner.rbi +40 -0
  199. data/sorbet/rbi/gems/tty-spinner@0.2.0.rbi +8 -0
  200. data/sorbet/rbi/gems/tty-table.rbi +417 -0
  201. data/sorbet/rbi/gems/tty-table@0.5.0.rbi +8 -0
  202. data/sorbet/rbi/gems/tty-which.rbi +22 -0
  203. data/sorbet/rbi/gems/tty-which@0.1.0.rbi +8 -0
  204. data/sorbet/rbi/gems/tty.rbi +126 -0
  205. data/sorbet/rbi/gems/tty@0.5.0.rbi +8 -0
  206. data/sorbet/rbi/gems/tzinfo.rbi +588 -0
  207. data/sorbet/rbi/gems/tzinfo@2.0.4.rbi +8 -0
  208. data/sorbet/rbi/gems/uber.rbi +18 -0
  209. data/sorbet/rbi/gems/uber@0.1.0.rbi +8 -0
  210. data/sorbet/rbi/gems/unicode-display_width.rbi +17 -0
  211. data/sorbet/rbi/gems/unicode-display_width@1.7.0.rbi +8 -0
  212. data/sorbet/rbi/gems/unicode_utils.rbi +171 -0
  213. data/sorbet/rbi/gems/unicode_utils@1.4.0.rbi +8 -0
  214. data/sorbet/rbi/gems/vcr.rbi +582 -0
  215. data/sorbet/rbi/gems/vcr@6.0.0.rbi +782 -0
  216. data/sorbet/rbi/gems/verse.rbi +87 -0
  217. data/sorbet/rbi/gems/verse@0.4.0.rbi +8 -0
  218. data/sorbet/rbi/gems/virtus@1.0.5.rbi +8 -0
  219. data/sorbet/rbi/gems/wisper@1.6.1.rbi +8 -0
  220. data/sorbet/rbi/gems/zeitwerk.rbi +139 -0
  221. data/sorbet/rbi/gems/zeitwerk@2.4.2.rbi +8 -0
  222. data/sorbet/rbi/hidden-definitions/errors.txt +8695 -0
  223. data/sorbet/rbi/hidden-definitions/hidden.rbi +18529 -0
  224. data/sorbet/rbi/sorbet-typed/lib/activesupport/>=6/activesupport.rbi +37 -0
  225. data/sorbet/rbi/sorbet-typed/lib/activesupport/all/activesupport.rbi +1850 -0
  226. data/sorbet/rbi/sorbet-typed/lib/faraday/all/faraday.rbi +756 -0
  227. data/sorbet/rbi/sorbet-typed/lib/minitest/all/minitest.rbi +108 -0
  228. data/sorbet/rbi/sorbet-typed/lib/parlour/6.0.0/parlour.rbi +1903 -0
  229. data/sorbet/rbi/sorbet-typed/lib/rainbow/all/rainbow.rbi +276 -0
  230. data/sorbet/rbi/sorbet-typed/lib/rake/all/rake.rbi +645 -0
  231. data/sorbet/rbi/sorbet-typed/lib/rspec-core/all/rspec-core.rbi +1891 -0
  232. data/sorbet/rbi/sorbet-typed/lib/thor/all/thor.rbi +905 -0
  233. data/sorbet/rbi/todo.rbi +23 -0
  234. data/sorbet/tapioca/require.rb +4 -0
  235. metadata +341 -23
@@ -0,0 +1,1193 @@
1
+ # DO NOT EDIT MANUALLY
2
+ # This is an autogenerated file for types exported from the `spoom` gem.
3
+ # Please instead update this file by running `bin/tapioca sync`.
4
+
5
+ # typed: true
6
+
7
+ module Spoom
8
+ class << self
9
+ sig { params(cmd: String, arg: String, path: String, capture_err: T::Boolean).returns([String, T::Boolean]) }
10
+ def exec(cmd, *arg, path: T.unsafe(nil), capture_err: T.unsafe(nil)); end
11
+ end
12
+ end
13
+
14
+ module Spoom::Cli; end
15
+
16
+ class Spoom::Cli::Bump < ::Thor
17
+ include ::Spoom::Cli::Helper
18
+
19
+ sig { params(directory: String).void }
20
+ def bump(directory = T.unsafe(nil)); end
21
+
22
+ def config_files(path: T.unsafe(nil)); end
23
+ def help(command = T.unsafe(nil), subcommand = T.unsafe(nil)); end
24
+ def print_changes(files, command:, from: T.unsafe(nil), to: T.unsafe(nil), dry: T.unsafe(nil), path: T.unsafe(nil)); end
25
+ def undo_changes(files, from_strictness); end
26
+ end
27
+
28
+ class Spoom::Cli::Config < ::Thor
29
+ include ::Spoom::Cli::Helper
30
+
31
+ def help(command = T.unsafe(nil), subcommand = T.unsafe(nil)); end
32
+ def show; end
33
+ end
34
+
35
+ class Spoom::Cli::Coverage < ::Thor
36
+ include ::Spoom::Cli::Helper
37
+
38
+ def bundle_install(path, sha); end
39
+ def help(command = T.unsafe(nil), subcommand = T.unsafe(nil)); end
40
+ def message_no_data(file); end
41
+ def open(file = T.unsafe(nil)); end
42
+ def parse_time(string, option); end
43
+ def report; end
44
+ def snapshot; end
45
+ def timeline; end
46
+ end
47
+
48
+ Spoom::Cli::Coverage::DATA_DIR = T.let(T.unsafe(nil), String)
49
+
50
+ module Spoom::Cli::Helper
51
+ include ::Thor::Shell
52
+
53
+ sig { params(string: String).returns(String) }
54
+ def blue(string); end
55
+
56
+ sig { returns(T::Boolean) }
57
+ def color?; end
58
+
59
+ sig { params(string: String, color: Symbol).returns(String) }
60
+ def colorize(string, color); end
61
+
62
+ sig { returns(String) }
63
+ def exec_path; end
64
+
65
+ sig { params(string: String).returns(String) }
66
+ def gray(string); end
67
+
68
+ sig { params(string: String).returns(String) }
69
+ def green(string); end
70
+
71
+ sig { params(string: String).returns(String) }
72
+ def highlight(string); end
73
+
74
+ sig { void }
75
+ def in_sorbet_project!; end
76
+
77
+ sig { returns(T::Boolean) }
78
+ def in_sorbet_project?; end
79
+
80
+ sig { params(string: String).returns(String) }
81
+ def red(string); end
82
+
83
+ sig { params(message: String).void }
84
+ def say(message); end
85
+
86
+ sig { params(message: String, status: T.nilable(String), nl: T::Boolean).void }
87
+ def say_error(message, status: T.unsafe(nil), nl: T.unsafe(nil)); end
88
+
89
+ sig { returns(Spoom::Sorbet::Config) }
90
+ def sorbet_config; end
91
+
92
+ sig { returns(String) }
93
+ def sorbet_config_file; end
94
+
95
+ sig { params(string: String).returns(String) }
96
+ def yellow(string); end
97
+ end
98
+
99
+ Spoom::Cli::Helper::HIGHLIGHT_COLOR = T.let(T.unsafe(nil), Symbol)
100
+
101
+ class Spoom::Cli::LSP < ::Thor
102
+ include ::Spoom::Cli::Helper
103
+
104
+ def defs(file, line, col); end
105
+ def find(query); end
106
+ def help(command = T.unsafe(nil), subcommand = T.unsafe(nil)); end
107
+ def hover(file, line, col); end
108
+ def list; end
109
+ def lsp_client; end
110
+ def refs(file, line, col); end
111
+ def run(&block); end
112
+ def show; end
113
+ def sigs(file, line, col); end
114
+ def symbol_printer; end
115
+ def symbols(file); end
116
+ def to_uri(path); end
117
+ def types(file, line, col); end
118
+ end
119
+
120
+ class Spoom::Cli::Main < ::Thor
121
+ include ::Spoom::Cli::Helper
122
+
123
+ def __print_version; end
124
+ def bump(*args); end
125
+ def config(*args); end
126
+ def coverage(*args); end
127
+ def files; end
128
+ def lsp(*args); end
129
+ def tc(*args); end
130
+
131
+ class << self
132
+ def exit_on_failure?; end
133
+ end
134
+ end
135
+
136
+ class Spoom::Cli::Run < ::Thor
137
+ include ::Spoom::Cli::Helper
138
+
139
+ def colorize_message(message); end
140
+ def format_error(error, format); end
141
+ def help(command = T.unsafe(nil), subcommand = T.unsafe(nil)); end
142
+ def tc(*arg); end
143
+ end
144
+
145
+ Spoom::Cli::Run::DEFAULT_FORMAT = T.let(T.unsafe(nil), String)
146
+ Spoom::Cli::Run::SORT_CODE = T.let(T.unsafe(nil), String)
147
+ Spoom::Cli::Run::SORT_ENUM = T.let(T.unsafe(nil), Array)
148
+ Spoom::Cli::Run::SORT_LOC = T.let(T.unsafe(nil), String)
149
+
150
+ module Spoom::Coverage
151
+ class << self
152
+ sig { params(snapshots: T::Array[Spoom::Coverage::Snapshot], palette: Spoom::Coverage::D3::ColorPalette, path: String).returns(Spoom::Coverage::Report) }
153
+ def report(snapshots, palette:, path: T.unsafe(nil)); end
154
+
155
+ sig { params(path: String).returns(Spoom::FileTree) }
156
+ def sigils_tree(path: T.unsafe(nil)); end
157
+
158
+ sig { params(path: String, rbi: T::Boolean, sorbet_bin: T.nilable(String)).returns(Spoom::Coverage::Snapshot) }
159
+ def snapshot(path: T.unsafe(nil), rbi: T.unsafe(nil), sorbet_bin: T.unsafe(nil)); end
160
+
161
+ sig { params(path: String).returns(Spoom::Sorbet::Config) }
162
+ def sorbet_config(path: T.unsafe(nil)); end
163
+ end
164
+ end
165
+
166
+ module Spoom::Coverage::Cards; end
167
+
168
+ class Spoom::Coverage::Cards::Card < ::Spoom::Coverage::Template
169
+ sig { params(template: String, title: T.nilable(String), body: T.nilable(String)).void }
170
+ def initialize(template: T.unsafe(nil), title: T.unsafe(nil), body: T.unsafe(nil)); end
171
+
172
+ def body; end
173
+
174
+ sig { returns(T.nilable(String)) }
175
+ def title; end
176
+ end
177
+
178
+ Spoom::Coverage::Cards::Card::TEMPLATE = T.let(T.unsafe(nil), String)
179
+
180
+ class Spoom::Coverage::Cards::Erb < ::Spoom::Coverage::Cards::Card
181
+ abstract!
182
+
183
+ sig { void }
184
+ def initialize; end
185
+
186
+ sig { abstract.returns(String) }
187
+ def erb; end
188
+
189
+ sig { override.returns(String) }
190
+ def html; end
191
+ end
192
+
193
+ class Spoom::Coverage::Cards::Map < ::Spoom::Coverage::Cards::Card
194
+ sig { params(sigils_tree: Spoom::FileTree, title: String).void }
195
+ def initialize(sigils_tree:, title: T.unsafe(nil)); end
196
+ end
197
+
198
+ class Spoom::Coverage::Cards::Snapshot < ::Spoom::Coverage::Cards::Card
199
+ sig { params(snapshot: Spoom::Coverage::Snapshot, title: String).void }
200
+ def initialize(snapshot:, title: T.unsafe(nil)); end
201
+
202
+ sig { returns(Spoom::Coverage::D3::Pie::Calls) }
203
+ def pie_calls; end
204
+
205
+ sig { returns(Spoom::Coverage::D3::Pie::Sigils) }
206
+ def pie_sigils; end
207
+
208
+ sig { returns(Spoom::Coverage::D3::Pie::Sigs) }
209
+ def pie_sigs; end
210
+
211
+ sig { returns(Spoom::Coverage::Snapshot) }
212
+ def snapshot; end
213
+ end
214
+
215
+ Spoom::Coverage::Cards::Snapshot::TEMPLATE = T.let(T.unsafe(nil), String)
216
+
217
+ class Spoom::Coverage::Cards::SorbetIntro < ::Spoom::Coverage::Cards::Erb
218
+ sig { params(sorbet_intro_commit: T.nilable(String), sorbet_intro_date: T.nilable(Time)).void }
219
+ def initialize(sorbet_intro_commit: T.unsafe(nil), sorbet_intro_date: T.unsafe(nil)); end
220
+
221
+ sig { override.returns(String) }
222
+ def erb; end
223
+ end
224
+
225
+ class Spoom::Coverage::Cards::Timeline < ::Spoom::Coverage::Cards::Card
226
+ sig { params(title: String, timeline: Spoom::Coverage::D3::Timeline).void }
227
+ def initialize(title:, timeline:); end
228
+ end
229
+
230
+ class Spoom::Coverage::Cards::Timeline::Calls < ::Spoom::Coverage::Cards::Timeline
231
+ sig { params(snapshots: T::Array[Spoom::Coverage::Snapshot], title: String).void }
232
+ def initialize(snapshots:, title: T.unsafe(nil)); end
233
+ end
234
+
235
+ class Spoom::Coverage::Cards::Timeline::RBIs < ::Spoom::Coverage::Cards::Timeline
236
+ sig { params(snapshots: T::Array[Spoom::Coverage::Snapshot], title: String).void }
237
+ def initialize(snapshots:, title: T.unsafe(nil)); end
238
+ end
239
+
240
+ class Spoom::Coverage::Cards::Timeline::Runtimes < ::Spoom::Coverage::Cards::Timeline
241
+ sig { params(snapshots: T::Array[Spoom::Coverage::Snapshot], title: String).void }
242
+ def initialize(snapshots:, title: T.unsafe(nil)); end
243
+ end
244
+
245
+ class Spoom::Coverage::Cards::Timeline::Sigils < ::Spoom::Coverage::Cards::Timeline
246
+ sig { params(snapshots: T::Array[Spoom::Coverage::Snapshot], title: String).void }
247
+ def initialize(snapshots:, title: T.unsafe(nil)); end
248
+ end
249
+
250
+ class Spoom::Coverage::Cards::Timeline::Sigs < ::Spoom::Coverage::Cards::Timeline
251
+ sig { params(snapshots: T::Array[Spoom::Coverage::Snapshot], title: String).void }
252
+ def initialize(snapshots:, title: T.unsafe(nil)); end
253
+ end
254
+
255
+ class Spoom::Coverage::Cards::Timeline::Versions < ::Spoom::Coverage::Cards::Timeline
256
+ sig { params(snapshots: T::Array[Spoom::Coverage::Snapshot], title: String).void }
257
+ def initialize(snapshots:, title: T.unsafe(nil)); end
258
+ end
259
+
260
+ module Spoom::Coverage::D3
261
+ class << self
262
+ sig { params(palette: Spoom::Coverage::D3::ColorPalette).returns(String) }
263
+ def header_script(palette); end
264
+
265
+ sig { returns(String) }
266
+ def header_style; end
267
+ end
268
+ end
269
+
270
+ class Spoom::Coverage::D3::Base
271
+ abstract!
272
+
273
+ sig { params(id: String, data: T.untyped).void }
274
+ def initialize(id, data); end
275
+
276
+ sig { returns(String) }
277
+ def html; end
278
+
279
+ sig { returns(String) }
280
+ def id; end
281
+
282
+ sig { abstract.returns(String) }
283
+ def script; end
284
+
285
+ sig { returns(String) }
286
+ def tooltip; end
287
+
288
+ class << self
289
+ sig { returns(String) }
290
+ def header_script; end
291
+
292
+ sig { returns(String) }
293
+ def header_style; end
294
+ end
295
+ end
296
+
297
+ Spoom::Coverage::D3::COLOR_FALSE = T.let(T.unsafe(nil), String)
298
+ Spoom::Coverage::D3::COLOR_IGNORE = T.let(T.unsafe(nil), String)
299
+ Spoom::Coverage::D3::COLOR_STRICT = T.let(T.unsafe(nil), String)
300
+ Spoom::Coverage::D3::COLOR_STRONG = T.let(T.unsafe(nil), String)
301
+ Spoom::Coverage::D3::COLOR_TRUE = T.let(T.unsafe(nil), String)
302
+
303
+ class Spoom::Coverage::D3::CircleMap < ::Spoom::Coverage::D3::Base
304
+ sig { override.returns(String) }
305
+ def script; end
306
+
307
+ class << self
308
+ sig { returns(String) }
309
+ def header_script; end
310
+
311
+ sig { returns(String) }
312
+ def header_style; end
313
+ end
314
+ end
315
+
316
+ class Spoom::Coverage::D3::CircleMap::Sigils < ::Spoom::Coverage::D3::CircleMap
317
+ sig { params(id: String, sigils_tree: Spoom::FileTree).void }
318
+ def initialize(id, sigils_tree); end
319
+
320
+ sig { params(node: Spoom::FileTree::Node).returns(Float) }
321
+ def tree_node_score(node); end
322
+
323
+ sig { params(node: Spoom::FileTree::Node).returns(T.nilable(String)) }
324
+ def tree_node_strictness(node); end
325
+
326
+ sig { params(node: Spoom::FileTree::Node).returns(T::Hash[Symbol, T.untyped]) }
327
+ def tree_node_to_json(node); end
328
+ end
329
+
330
+ class Spoom::Coverage::D3::ColorPalette < ::T::Struct
331
+ prop :false, String
332
+ prop :ignore, String
333
+ prop :strict, String
334
+ prop :strong, String
335
+ prop :true, String
336
+
337
+ class << self
338
+ def inherited(s); end
339
+ end
340
+ end
341
+
342
+ class Spoom::Coverage::D3::Pie < ::Spoom::Coverage::D3::Base
343
+ abstract!
344
+
345
+ sig { params(id: String, title: String, data: T.untyped).void }
346
+ def initialize(id, title, data); end
347
+
348
+ sig { override.returns(String) }
349
+ def script; end
350
+
351
+ class << self
352
+ sig { returns(String) }
353
+ def header_script; end
354
+
355
+ sig { returns(String) }
356
+ def header_style; end
357
+ end
358
+ end
359
+
360
+ class Spoom::Coverage::D3::Pie::Calls < ::Spoom::Coverage::D3::Pie
361
+ sig { params(id: String, title: String, snapshot: Spoom::Coverage::Snapshot).void }
362
+ def initialize(id, title, snapshot); end
363
+
364
+ sig { override.returns(String) }
365
+ def tooltip; end
366
+ end
367
+
368
+ class Spoom::Coverage::D3::Pie::Sigils < ::Spoom::Coverage::D3::Pie
369
+ sig { params(id: String, title: String, snapshot: Spoom::Coverage::Snapshot).void }
370
+ def initialize(id, title, snapshot); end
371
+
372
+ sig { override.returns(String) }
373
+ def tooltip; end
374
+ end
375
+
376
+ class Spoom::Coverage::D3::Pie::Sigs < ::Spoom::Coverage::D3::Pie
377
+ sig { params(id: String, title: String, snapshot: Spoom::Coverage::Snapshot).void }
378
+ def initialize(id, title, snapshot); end
379
+
380
+ sig { override.returns(String) }
381
+ def tooltip; end
382
+ end
383
+
384
+ class Spoom::Coverage::D3::Timeline < ::Spoom::Coverage::D3::Base
385
+ abstract!
386
+
387
+ sig { params(id: String, data: T.untyped, keys: T::Array[String]).void }
388
+ def initialize(id, data, keys); end
389
+
390
+ sig { params(y: String, color: String, curve: String).returns(String) }
391
+ def area(y:, color: T.unsafe(nil), curve: T.unsafe(nil)); end
392
+
393
+ sig { params(y: String, color: String, curve: String).returns(String) }
394
+ def line(y:, color: T.unsafe(nil), curve: T.unsafe(nil)); end
395
+
396
+ sig { abstract.returns(String) }
397
+ def plot; end
398
+
399
+ sig { params(y: String).returns(String) }
400
+ def points(y:); end
401
+
402
+ sig { override.returns(String) }
403
+ def script; end
404
+
405
+ sig { returns(String) }
406
+ def x_scale; end
407
+
408
+ sig { returns(String) }
409
+ def x_ticks; end
410
+
411
+ sig { params(min: String, max: String, ticks: String).returns(String) }
412
+ def y_scale(min:, max:, ticks:); end
413
+
414
+ sig { params(ticks: String, format: String, padding: Integer).returns(String) }
415
+ def y_ticks(ticks:, format:, padding:); end
416
+
417
+ class << self
418
+ sig { returns(String) }
419
+ def header_script; end
420
+
421
+ sig { returns(String) }
422
+ def header_style; end
423
+ end
424
+ end
425
+
426
+ class Spoom::Coverage::D3::Timeline::Calls < ::Spoom::Coverage::D3::Timeline::Stacked
427
+ sig { params(id: String, snapshots: T::Array[Spoom::Coverage::Snapshot]).void }
428
+ def initialize(id, snapshots); end
429
+
430
+ sig { override.returns(String) }
431
+ def tooltip; end
432
+ end
433
+
434
+ class Spoom::Coverage::D3::Timeline::RBIs < ::Spoom::Coverage::D3::Timeline::Stacked
435
+ sig { params(id: String, snapshots: T::Array[Spoom::Coverage::Snapshot]).void }
436
+ def initialize(id, snapshots); end
437
+
438
+ sig { override.params(y: String, color: String, curve: String).returns(String) }
439
+ def line(y:, color: T.unsafe(nil), curve: T.unsafe(nil)); end
440
+
441
+ sig { override.returns(String) }
442
+ def plot; end
443
+
444
+ sig { override.returns(String) }
445
+ def script; end
446
+
447
+ sig { override.returns(String) }
448
+ def tooltip; end
449
+ end
450
+
451
+ class Spoom::Coverage::D3::Timeline::Runtimes < ::Spoom::Coverage::D3::Timeline
452
+ sig { params(id: String, snapshots: T::Array[Spoom::Coverage::Snapshot]).void }
453
+ def initialize(id, snapshots); end
454
+
455
+ sig { override.returns(String) }
456
+ def plot; end
457
+
458
+ sig { override.returns(String) }
459
+ def tooltip; end
460
+ end
461
+
462
+ class Spoom::Coverage::D3::Timeline::Sigils < ::Spoom::Coverage::D3::Timeline::Stacked
463
+ sig { params(id: String, snapshots: T::Array[Spoom::Coverage::Snapshot]).void }
464
+ def initialize(id, snapshots); end
465
+
466
+ sig { override.returns(String) }
467
+ def tooltip; end
468
+ end
469
+
470
+ class Spoom::Coverage::D3::Timeline::Sigs < ::Spoom::Coverage::D3::Timeline::Stacked
471
+ sig { params(id: String, snapshots: T::Array[Spoom::Coverage::Snapshot]).void }
472
+ def initialize(id, snapshots); end
473
+
474
+ sig { override.returns(String) }
475
+ def tooltip; end
476
+ end
477
+
478
+ class Spoom::Coverage::D3::Timeline::Stacked < ::Spoom::Coverage::D3::Timeline
479
+ abstract!
480
+
481
+ def initialize(*args, &blk); end
482
+
483
+ sig { override.params(y: String, color: String, curve: String).returns(String) }
484
+ def line(y:, color: T.unsafe(nil), curve: T.unsafe(nil)); end
485
+
486
+ sig { override.returns(String) }
487
+ def plot; end
488
+
489
+ sig { override.returns(String) }
490
+ def script; end
491
+ end
492
+
493
+ class Spoom::Coverage::D3::Timeline::Versions < ::Spoom::Coverage::D3::Timeline
494
+ sig { params(id: String, snapshots: T::Array[Spoom::Coverage::Snapshot]).void }
495
+ def initialize(id, snapshots); end
496
+
497
+ sig { override.returns(String) }
498
+ def plot; end
499
+
500
+ sig { override.returns(String) }
501
+ def tooltip; end
502
+ end
503
+
504
+ class Spoom::Coverage::Page < ::Spoom::Coverage::Template
505
+ abstract!
506
+
507
+ sig { params(title: String, palette: Spoom::Coverage::D3::ColorPalette, template: String).void }
508
+ def initialize(title:, palette:, template: T.unsafe(nil)); end
509
+
510
+ sig { returns(String) }
511
+ def body_html; end
512
+
513
+ sig { abstract.returns(T::Array[Spoom::Coverage::Cards::Card]) }
514
+ def cards; end
515
+
516
+ sig { returns(String) }
517
+ def footer_html; end
518
+
519
+ sig { returns(String) }
520
+ def header_html; end
521
+
522
+ sig { returns(String) }
523
+ def header_script; end
524
+
525
+ sig { returns(String) }
526
+ def header_style; end
527
+
528
+ sig { returns(Spoom::Coverage::D3::ColorPalette) }
529
+ def palette; end
530
+
531
+ sig { returns(String) }
532
+ def title; end
533
+ end
534
+
535
+ Spoom::Coverage::Page::TEMPLATE = T.let(T.unsafe(nil), String)
536
+
537
+ class Spoom::Coverage::Report < ::Spoom::Coverage::Page
538
+ sig { params(project_name: String, palette: Spoom::Coverage::D3::ColorPalette, snapshots: T::Array[Spoom::Coverage::Snapshot], sigils_tree: Spoom::FileTree, sorbet_intro_commit: T.nilable(String), sorbet_intro_date: T.nilable(Time)).void }
539
+ def initialize(project_name:, palette:, snapshots:, sigils_tree:, sorbet_intro_commit: T.unsafe(nil), sorbet_intro_date: T.unsafe(nil)); end
540
+
541
+ sig { override.returns(T::Array[Spoom::Coverage::Cards::Card]) }
542
+ def cards; end
543
+
544
+ sig { override.returns(String) }
545
+ def header_html; end
546
+
547
+ sig { returns(String) }
548
+ def project_name; end
549
+
550
+ sig { returns(Spoom::FileTree) }
551
+ def sigils_tree; end
552
+
553
+ sig { returns(T::Array[Spoom::Coverage::Snapshot]) }
554
+ def snapshots; end
555
+
556
+ sig { returns(T.nilable(String)) }
557
+ def sorbet_intro_commit; end
558
+
559
+ sig { returns(T.nilable(Time)) }
560
+ def sorbet_intro_date; end
561
+ end
562
+
563
+ class Spoom::Coverage::Snapshot < ::T::Struct
564
+ prop :calls_typed, Integer, default: T.unsafe(nil)
565
+ prop :calls_untyped, Integer, default: T.unsafe(nil)
566
+ prop :classes, Integer, default: T.unsafe(nil)
567
+ prop :commit_sha, T.nilable(String), default: T.unsafe(nil)
568
+ prop :commit_timestamp, T.nilable(Integer), default: T.unsafe(nil)
569
+ prop :duration, Integer, default: T.unsafe(nil)
570
+ prop :files, Integer, default: T.unsafe(nil)
571
+ prop :methods_with_sig, Integer, default: T.unsafe(nil)
572
+ prop :methods_without_sig, Integer, default: T.unsafe(nil)
573
+ prop :modules, Integer, default: T.unsafe(nil)
574
+ prop :rbi_files, Integer, default: T.unsafe(nil)
575
+ prop :sigils, T::Hash[String, Integer], default: T.unsafe(nil)
576
+ prop :singleton_classes, Integer, default: T.unsafe(nil)
577
+ prop :timestamp, Integer, default: T.unsafe(nil)
578
+ prop :version_runtime, T.nilable(String), default: T.unsafe(nil)
579
+ prop :version_static, T.nilable(String), default: T.unsafe(nil)
580
+
581
+ sig { params(out: T.any(IO, StringIO), colors: T::Boolean, indent_level: Integer).void }
582
+ def print(out: T.unsafe(nil), colors: T.unsafe(nil), indent_level: T.unsafe(nil)); end
583
+
584
+ sig { params(arg: T.untyped).returns(String) }
585
+ def to_json(*arg); end
586
+
587
+ class << self
588
+ sig { params(json: String).returns(Spoom::Coverage::Snapshot) }
589
+ def from_json(json); end
590
+
591
+ sig { params(obj: T::Hash[String, T.untyped]).returns(Spoom::Coverage::Snapshot) }
592
+ def from_obj(obj); end
593
+
594
+ def inherited(s); end
595
+ end
596
+ end
597
+
598
+ Spoom::Coverage::Snapshot::STRICTNESSES = T.let(T.unsafe(nil), Array)
599
+
600
+ class Spoom::Coverage::SnapshotPrinter < ::Spoom::Printer
601
+ sig { params(snapshot: Spoom::Coverage::Snapshot).void }
602
+ def print_snapshot(snapshot); end
603
+
604
+ private
605
+
606
+ sig { params(value: T.nilable(Integer), total: T.nilable(Integer)).returns(String) }
607
+ def percent(value, total); end
608
+
609
+ sig { params(hash: T::Hash[String, Integer], total: Integer).void }
610
+ def print_map(hash, total); end
611
+ end
612
+
613
+ class Spoom::Coverage::Template
614
+ abstract!
615
+
616
+ sig { params(template: String).void }
617
+ def initialize(template:); end
618
+
619
+ sig { returns(String) }
620
+ def erb; end
621
+
622
+ sig { returns(Binding) }
623
+ def get_binding; end
624
+
625
+ sig { returns(String) }
626
+ def html; end
627
+ end
628
+
629
+ class Spoom::Error < ::StandardError; end
630
+
631
+ class Spoom::FileTree
632
+ sig { params(paths: T::Enumerable[String], strip_prefix: T.nilable(String)).void }
633
+ def initialize(paths = T.unsafe(nil), strip_prefix: T.unsafe(nil)); end
634
+
635
+ sig { params(path: String).returns(Spoom::FileTree::Node) }
636
+ def add_path(path); end
637
+
638
+ sig { params(paths: T::Enumerable[String]).void }
639
+ def add_paths(paths); end
640
+
641
+ sig { returns(T::Array[Spoom::FileTree::Node]) }
642
+ def nodes; end
643
+
644
+ sig { returns(T::Array[String]) }
645
+ def paths; end
646
+
647
+ sig { params(out: T.any(IO, StringIO), show_strictness: T::Boolean, colors: T::Boolean, indent_level: Integer).void }
648
+ def print(out: T.unsafe(nil), show_strictness: T.unsafe(nil), colors: T.unsafe(nil), indent_level: T.unsafe(nil)); end
649
+
650
+ sig { returns(T::Array[Spoom::FileTree::Node]) }
651
+ def roots; end
652
+
653
+ sig { returns(T.nilable(String)) }
654
+ def strip_prefix; end
655
+
656
+ private
657
+
658
+ sig { params(node: Spoom::FileTree::Node, collected_nodes: T::Array[Spoom::FileTree::Node]).returns(T::Array[Spoom::FileTree::Node]) }
659
+ def collect_nodes(node, collected_nodes = T.unsafe(nil)); end
660
+ end
661
+
662
+ class Spoom::FileTree::Node < ::T::Struct
663
+ const :children, T::Hash[String, Spoom::FileTree::Node], default: T.unsafe(nil)
664
+ const :name, String
665
+ const :parent, T.nilable(Spoom::FileTree::Node)
666
+
667
+ sig { returns(String) }
668
+ def path; end
669
+
670
+ class << self
671
+ def inherited(s); end
672
+ end
673
+ end
674
+
675
+ class Spoom::FileTree::TreePrinter < ::Spoom::Printer
676
+ sig { params(tree: Spoom::FileTree, out: T.any(IO, StringIO), show_strictness: T::Boolean, colors: T::Boolean, indent_level: Integer).void }
677
+ def initialize(tree:, out: T.unsafe(nil), show_strictness: T.unsafe(nil), colors: T.unsafe(nil), indent_level: T.unsafe(nil)); end
678
+
679
+ sig { params(node: Spoom::FileTree::Node).void }
680
+ def print_node(node); end
681
+
682
+ sig { params(nodes: T::Array[Spoom::FileTree::Node]).void }
683
+ def print_nodes(nodes); end
684
+
685
+ sig { void }
686
+ def print_tree; end
687
+
688
+ sig { returns(Spoom::FileTree) }
689
+ def tree; end
690
+
691
+ private
692
+
693
+ sig { params(node: Spoom::FileTree::Node).returns(T.nilable(String)) }
694
+ def node_strictness(node); end
695
+
696
+ sig { params(strictness: T.nilable(String)).returns(Symbol) }
697
+ def strictness_color(strictness); end
698
+ end
699
+
700
+ module Spoom::Git
701
+ class << self
702
+ sig { params(arg: String, path: String).returns([String, String, T::Boolean]) }
703
+ def checkout(*arg, path: T.unsafe(nil)); end
704
+
705
+ sig { params(sha: String, path: String).returns(T.nilable(Time)) }
706
+ def commit_time(sha, path: T.unsafe(nil)); end
707
+
708
+ sig { params(sha: String, path: String).returns(T.nilable(Integer)) }
709
+ def commit_timestamp(sha, path: T.unsafe(nil)); end
710
+
711
+ sig { params(arg: String, path: String).returns([String, String, T::Boolean]) }
712
+ def diff(*arg, path: T.unsafe(nil)); end
713
+
714
+ sig { params(timestamp: String).returns(Time) }
715
+ def epoch_to_time(timestamp); end
716
+
717
+ sig { params(command: String, arg: String, path: String).returns([String, String, T::Boolean]) }
718
+ def exec(command, *arg, path: T.unsafe(nil)); end
719
+
720
+ sig { params(path: String).returns(T.nilable(String)) }
721
+ def last_commit(path: T.unsafe(nil)); end
722
+
723
+ sig { params(arg: String, path: String).returns([String, String, T::Boolean]) }
724
+ def log(*arg, path: T.unsafe(nil)); end
725
+
726
+ sig { params(arg: String, path: String).returns([String, String, T::Boolean]) }
727
+ def rev_parse(*arg, path: T.unsafe(nil)); end
728
+
729
+ sig { params(arg: String, path: String).returns([String, String, T::Boolean]) }
730
+ def show(*arg, path: T.unsafe(nil)); end
731
+
732
+ sig { params(path: String).returns(T.nilable(String)) }
733
+ def sorbet_intro_commit(path: T.unsafe(nil)); end
734
+
735
+ sig { params(path: String).returns(T::Boolean) }
736
+ def workdir_clean?(path: T.unsafe(nil)); end
737
+ end
738
+ end
739
+
740
+ module Spoom::LSP; end
741
+
742
+ class Spoom::LSP::Client
743
+ def initialize(sorbet_bin, *sorbet_args, path: T.unsafe(nil)); end
744
+
745
+ def close; end
746
+ def definitions(uri, line, column); end
747
+ def document_symbols(uri); end
748
+ def hover(uri, line, column); end
749
+ def next_id; end
750
+ def open(workspace_path); end
751
+ def read; end
752
+ def read_raw; end
753
+ def references(uri, line, column, include_decl = T.unsafe(nil)); end
754
+ def send(message); end
755
+ def send_raw(json_string); end
756
+ def signatures(uri, line, column); end
757
+ def symbols(query); end
758
+ def type_definitions(uri, line, column); end
759
+ end
760
+
761
+ class Spoom::LSP::Diagnostic < ::T::Struct
762
+ include ::Spoom::LSP::PrintableSymbol
763
+
764
+ const :code, Integer
765
+ const :informations, Object
766
+ const :message, String
767
+ const :range, Spoom::LSP::Range
768
+
769
+ sig { override.params(printer: Spoom::LSP::SymbolPrinter).void }
770
+ def accept_printer(printer); end
771
+
772
+ def to_s; end
773
+
774
+ class << self
775
+ def from_json(json); end
776
+ def inherited(s); end
777
+ end
778
+ end
779
+
780
+ class Spoom::LSP::DocumentSymbol < ::T::Struct
781
+ include ::Spoom::LSP::PrintableSymbol
782
+
783
+ const :children, T::Array[Spoom::LSP::DocumentSymbol]
784
+ const :detail, T.nilable(String)
785
+ const :kind, Integer
786
+ const :location, T.nilable(Spoom::LSP::Location)
787
+ const :name, String
788
+ const :range, T.nilable(Spoom::LSP::Range)
789
+
790
+ sig { override.params(printer: Spoom::LSP::SymbolPrinter).void }
791
+ def accept_printer(printer); end
792
+
793
+ def kind_string; end
794
+ def to_s; end
795
+
796
+ class << self
797
+ def from_json(json); end
798
+ def inherited(s); end
799
+ end
800
+ end
801
+
802
+ Spoom::LSP::DocumentSymbol::SYMBOL_KINDS = T.let(T.unsafe(nil), Hash)
803
+ class Spoom::LSP::Error < ::StandardError; end
804
+ class Spoom::LSP::Error::AlreadyOpen < ::Spoom::LSP::Error; end
805
+ class Spoom::LSP::Error::BadHeaders < ::Spoom::LSP::Error; end
806
+
807
+ class Spoom::LSP::Error::Diagnostics < ::Spoom::LSP::Error
808
+ def initialize(uri, diagnostics); end
809
+
810
+ def diagnostics; end
811
+ def uri; end
812
+
813
+ class << self
814
+ def from_json(json); end
815
+ end
816
+ end
817
+
818
+ class Spoom::LSP::Hover < ::T::Struct
819
+ include ::Spoom::LSP::PrintableSymbol
820
+
821
+ const :contents, String
822
+ const :range, T.nilable(T::Range[T.untyped])
823
+
824
+ sig { override.params(printer: Spoom::LSP::SymbolPrinter).void }
825
+ def accept_printer(printer); end
826
+
827
+ def to_s; end
828
+
829
+ class << self
830
+ def from_json(json); end
831
+ def inherited(s); end
832
+ end
833
+ end
834
+
835
+ class Spoom::LSP::Location < ::T::Struct
836
+ include ::Spoom::LSP::PrintableSymbol
837
+
838
+ const :range, Spoom::LSP::Range
839
+ const :uri, String
840
+
841
+ sig { override.params(printer: Spoom::LSP::SymbolPrinter).void }
842
+ def accept_printer(printer); end
843
+
844
+ def to_s; end
845
+
846
+ class << self
847
+ def from_json(json); end
848
+ def inherited(s); end
849
+ end
850
+ end
851
+
852
+ class Spoom::LSP::Message
853
+ def initialize; end
854
+
855
+ def as_json; end
856
+ def jsonrpc; end
857
+ def to_json(*args); end
858
+ end
859
+
860
+ class Spoom::LSP::Notification < ::Spoom::LSP::Message
861
+ def initialize(method, params); end
862
+
863
+ def method; end
864
+ def params; end
865
+ end
866
+
867
+ class Spoom::LSP::Position < ::T::Struct
868
+ include ::Spoom::LSP::PrintableSymbol
869
+
870
+ const :char, Integer
871
+ const :line, Integer
872
+
873
+ sig { override.params(printer: Spoom::LSP::SymbolPrinter).void }
874
+ def accept_printer(printer); end
875
+
876
+ def to_s; end
877
+
878
+ class << self
879
+ def from_json(json); end
880
+ def inherited(s); end
881
+ end
882
+ end
883
+
884
+ module Spoom::LSP::PrintableSymbol
885
+ interface!
886
+
887
+ sig { abstract.params(printer: Spoom::LSP::SymbolPrinter).void }
888
+ def accept_printer(printer); end
889
+ end
890
+
891
+ class Spoom::LSP::Range < ::T::Struct
892
+ include ::Spoom::LSP::PrintableSymbol
893
+
894
+ const :end, Spoom::LSP::Position
895
+ const :start, Spoom::LSP::Position
896
+
897
+ sig { override.params(printer: Spoom::LSP::SymbolPrinter).void }
898
+ def accept_printer(printer); end
899
+
900
+ def to_s; end
901
+
902
+ class << self
903
+ def from_json(json); end
904
+ def inherited(s); end
905
+ end
906
+ end
907
+
908
+ class Spoom::LSP::Request < ::Spoom::LSP::Message
909
+ def initialize(id, method, params); end
910
+
911
+ def id; end
912
+ def method; end
913
+ def params; end
914
+ end
915
+
916
+ class Spoom::LSP::ResponseError < ::Spoom::LSP::Error
917
+ def initialize(code, message, data); end
918
+
919
+ def code; end
920
+ def data; end
921
+ def message; end
922
+
923
+ class << self
924
+ def from_json(json); end
925
+ end
926
+ end
927
+
928
+ class Spoom::LSP::SignatureHelp < ::T::Struct
929
+ include ::Spoom::LSP::PrintableSymbol
930
+
931
+ const :doc, Object
932
+ const :label, T.nilable(String)
933
+ const :params, T::Array[T.untyped]
934
+
935
+ sig { override.params(printer: Spoom::LSP::SymbolPrinter).void }
936
+ def accept_printer(printer); end
937
+
938
+ def to_s; end
939
+
940
+ class << self
941
+ def from_json(json); end
942
+ def inherited(s); end
943
+ end
944
+ end
945
+
946
+ class Spoom::LSP::SymbolPrinter < ::Spoom::Printer
947
+ sig { params(out: T.any(IO, StringIO), colors: T::Boolean, indent_level: Integer, prefix: T.nilable(String)).void }
948
+ def initialize(out: T.unsafe(nil), colors: T.unsafe(nil), indent_level: T.unsafe(nil), prefix: T.unsafe(nil)); end
949
+
950
+ sig { params(uri: String).returns(String) }
951
+ def clean_uri(uri); end
952
+
953
+ def prefix; end
954
+ def prefix=(_arg0); end
955
+
956
+ sig { params(objects: T::Array[Spoom::LSP::PrintableSymbol]).void }
957
+ def print_list(objects); end
958
+
959
+ sig { params(object: T.nilable(Spoom::LSP::PrintableSymbol)).void }
960
+ def print_object(object); end
961
+
962
+ sig { params(objects: T::Array[Spoom::LSP::PrintableSymbol]).void }
963
+ def print_objects(objects); end
964
+
965
+ def seen; end
966
+ def seen=(_arg0); end
967
+ end
968
+
969
+ class Spoom::Printer
970
+ abstract!
971
+
972
+ sig { params(out: T.any(IO, StringIO), colors: T::Boolean, indent_level: Integer).void }
973
+ def initialize(out: T.unsafe(nil), colors: T.unsafe(nil), indent_level: T.unsafe(nil)); end
974
+
975
+ sig { params(string: String, color: Symbol).returns(String) }
976
+ def colorize(string, color); end
977
+
978
+ sig { void }
979
+ def dedent; end
980
+
981
+ sig { void }
982
+ def indent; end
983
+
984
+ sig { returns(T.any(IO, StringIO)) }
985
+ def out; end
986
+
987
+ def out=(_arg0); end
988
+
989
+ sig { params(string: T.nilable(String)).void }
990
+ def print(string); end
991
+
992
+ sig { params(string: T.nilable(String), color: Symbol, colors: Symbol).void }
993
+ def print_colored(string, color, *colors); end
994
+
995
+ sig { params(string: T.nilable(String)).void }
996
+ def printl(string); end
997
+
998
+ sig { void }
999
+ def printn; end
1000
+
1001
+ sig { void }
1002
+ def printt; end
1003
+ end
1004
+
1005
+ Spoom::SPOOM_PATH = T.let(T.unsafe(nil), String)
1006
+
1007
+ module Spoom::Sorbet
1008
+ class << self
1009
+ sig { params(arg: String, path: String, capture_err: T::Boolean, sorbet_bin: T.nilable(String)).returns([String, T::Boolean]) }
1010
+ def srb(*arg, path: T.unsafe(nil), capture_err: T.unsafe(nil), sorbet_bin: T.unsafe(nil)); end
1011
+
1012
+ sig { params(config: Spoom::Sorbet::Config, path: String).returns(T::Array[String]) }
1013
+ def srb_files(config, path: T.unsafe(nil)); end
1014
+
1015
+ sig { params(arg: String, path: String, capture_err: T::Boolean, sorbet_bin: T.nilable(String)).returns(T.nilable(T::Hash[String, Integer])) }
1016
+ def srb_metrics(*arg, path: T.unsafe(nil), capture_err: T.unsafe(nil), sorbet_bin: T.unsafe(nil)); end
1017
+
1018
+ sig { params(arg: String, path: String, capture_err: T::Boolean, sorbet_bin: T.nilable(String)).returns([String, T::Boolean]) }
1019
+ def srb_tc(*arg, path: T.unsafe(nil), capture_err: T.unsafe(nil), sorbet_bin: T.unsafe(nil)); end
1020
+
1021
+ sig { params(arg: String, path: String, capture_err: T::Boolean, sorbet_bin: T.nilable(String)).returns(T.nilable(String)) }
1022
+ def srb_version(*arg, path: T.unsafe(nil), capture_err: T.unsafe(nil), sorbet_bin: T.unsafe(nil)); end
1023
+
1024
+ sig { params(gem: String, path: String).returns(T.nilable(String)) }
1025
+ def version_from_gemfile_lock(gem: T.unsafe(nil), path: T.unsafe(nil)); end
1026
+ end
1027
+ end
1028
+
1029
+ Spoom::Sorbet::BIN_PATH = T.let(T.unsafe(nil), String)
1030
+ Spoom::Sorbet::CONFIG_PATH = T.let(T.unsafe(nil), String)
1031
+
1032
+ class Spoom::Sorbet::Config
1033
+ sig { void }
1034
+ def initialize; end
1035
+
1036
+ def allowed_extensions; end
1037
+
1038
+ sig { returns(Spoom::Sorbet::Config) }
1039
+ def copy; end
1040
+
1041
+ def ignore; end
1042
+
1043
+ sig { returns(String) }
1044
+ def options_string; end
1045
+
1046
+ sig { returns(T::Array[String]) }
1047
+ def paths; end
1048
+
1049
+ class << self
1050
+ sig { params(sorbet_config_path: String).returns(Spoom::Sorbet::Config) }
1051
+ def parse_file(sorbet_config_path); end
1052
+
1053
+ sig { params(sorbet_config: String).returns(Spoom::Sorbet::Config) }
1054
+ def parse_string(sorbet_config); end
1055
+
1056
+ private
1057
+
1058
+ sig { params(line: String).returns(String) }
1059
+ def parse_option(line); end
1060
+ end
1061
+ end
1062
+
1063
+ module Spoom::Sorbet::Errors
1064
+ class << self
1065
+ sig { params(errors: T::Array[Spoom::Sorbet::Errors::Error]).returns(T::Array[Spoom::Sorbet::Errors::Error]) }
1066
+ def sort_errors_by_code(errors); end
1067
+ end
1068
+ end
1069
+
1070
+ class Spoom::Sorbet::Errors::Error
1071
+ include ::Comparable
1072
+
1073
+ sig { params(file: T.nilable(String), line: T.nilable(Integer), message: T.nilable(String), code: T.nilable(Integer), more: T::Array[String]).void }
1074
+ def initialize(file, line, message, code, more = T.unsafe(nil)); end
1075
+
1076
+ sig { params(other: T.untyped).returns(Integer) }
1077
+ def <=>(other); end
1078
+
1079
+ def code; end
1080
+
1081
+ sig { returns(T.nilable(String)) }
1082
+ def file; end
1083
+
1084
+ sig { returns(T.nilable(Integer)) }
1085
+ def line; end
1086
+
1087
+ def message; end
1088
+
1089
+ sig { returns(T::Array[String]) }
1090
+ def more; end
1091
+
1092
+ sig { returns(String) }
1093
+ def to_s; end
1094
+ end
1095
+
1096
+ class Spoom::Sorbet::Errors::Parser
1097
+ sig { void }
1098
+ def initialize; end
1099
+
1100
+ sig { params(output: String).returns(T::Array[Spoom::Sorbet::Errors::Error]) }
1101
+ def parse(output); end
1102
+
1103
+ private
1104
+
1105
+ sig { params(line: String).void }
1106
+ def append_error(line); end
1107
+
1108
+ sig { void }
1109
+ def close_error; end
1110
+
1111
+ sig { params(line: String).returns(T.nilable(Spoom::Sorbet::Errors::Error)) }
1112
+ def match_error_line(line); end
1113
+
1114
+ sig { params(error: Spoom::Sorbet::Errors::Error).void }
1115
+ def open_error(error); end
1116
+
1117
+ class << self
1118
+ sig { params(output: String).returns(T::Array[Spoom::Sorbet::Errors::Error]) }
1119
+ def parse_string(output); end
1120
+ end
1121
+ end
1122
+
1123
+ Spoom::Sorbet::Errors::Parser::ERROR_LINE_MATCH_REGEX = T.let(T.unsafe(nil), Regexp)
1124
+ Spoom::Sorbet::Errors::Parser::HEADER = T.let(T.unsafe(nil), Array)
1125
+ Spoom::Sorbet::GEM_PATH = T.let(T.unsafe(nil), String)
1126
+
1127
+ module Spoom::Sorbet::MetricsParser
1128
+ class << self
1129
+ sig { params(path: String, prefix: String).returns(T::Hash[String, Integer]) }
1130
+ def parse_file(path, prefix = T.unsafe(nil)); end
1131
+
1132
+ sig { params(obj: T::Hash[String, T.untyped], prefix: String).returns(T::Hash[String, Integer]) }
1133
+ def parse_hash(obj, prefix = T.unsafe(nil)); end
1134
+
1135
+ sig { params(string: String, prefix: String).returns(T::Hash[String, Integer]) }
1136
+ def parse_string(string, prefix = T.unsafe(nil)); end
1137
+ end
1138
+ end
1139
+
1140
+ Spoom::Sorbet::MetricsParser::DEFAULT_PREFIX = T.let(T.unsafe(nil), String)
1141
+
1142
+ module Spoom::Sorbet::Sigils
1143
+ class << self
1144
+ sig { params(path: T.any(Pathname, String), new_strictness: String).returns(T::Boolean) }
1145
+ def change_sigil_in_file(path, new_strictness); end
1146
+
1147
+ sig { params(path_list: T::Array[String], new_strictness: String).returns(T::Array[String]) }
1148
+ def change_sigil_in_files(path_list, new_strictness); end
1149
+
1150
+ sig { params(path: T.any(Pathname, String)).returns(T.nilable(String)) }
1151
+ def file_strictness(path); end
1152
+
1153
+ sig { params(directory: T.any(Pathname, String), strictness: String, extension: String).returns(T::Array[String]) }
1154
+ def files_with_sigil_strictness(directory, strictness, extension: T.unsafe(nil)); end
1155
+
1156
+ sig { params(strictness: String).returns(String) }
1157
+ def sigil_string(strictness); end
1158
+
1159
+ sig { params(content: String).returns(T.nilable(String)) }
1160
+ def strictness_in_content(content); end
1161
+
1162
+ sig { params(content: String, new_strictness: String).returns(String) }
1163
+ def update_sigil(content, new_strictness); end
1164
+
1165
+ sig { params(strictness: String).returns(T::Boolean) }
1166
+ def valid_strictness?(strictness); end
1167
+ end
1168
+ end
1169
+
1170
+ Spoom::Sorbet::Sigils::SIGIL_REGEXP = T.let(T.unsafe(nil), Regexp)
1171
+ Spoom::Sorbet::Sigils::STRICTNESS_FALSE = T.let(T.unsafe(nil), String)
1172
+ Spoom::Sorbet::Sigils::STRICTNESS_IGNORE = T.let(T.unsafe(nil), String)
1173
+ Spoom::Sorbet::Sigils::STRICTNESS_INTERNAL = T.let(T.unsafe(nil), String)
1174
+ Spoom::Sorbet::Sigils::STRICTNESS_STRICT = T.let(T.unsafe(nil), String)
1175
+ Spoom::Sorbet::Sigils::STRICTNESS_STRONG = T.let(T.unsafe(nil), String)
1176
+ Spoom::Sorbet::Sigils::STRICTNESS_TRUE = T.let(T.unsafe(nil), String)
1177
+ Spoom::Sorbet::Sigils::VALID_STRICTNESS = T.let(T.unsafe(nil), Array)
1178
+
1179
+ class Spoom::Timeline
1180
+ sig { params(from: Time, to: Time, path: String).void }
1181
+ def initialize(from, to, path: T.unsafe(nil)); end
1182
+
1183
+ sig { params(dates: T::Array[Time]).returns(T::Array[String]) }
1184
+ def commits_for_dates(dates); end
1185
+
1186
+ sig { returns(T::Array[Time]) }
1187
+ def months; end
1188
+
1189
+ sig { returns(T::Array[String]) }
1190
+ def ticks; end
1191
+ end
1192
+
1193
+ Spoom::VERSION = T.let(T.unsafe(nil), String)