believe 0.7.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 (551) hide show
  1. checksums.yaml +7 -0
  2. data/.ignore +2 -0
  3. data/CHANGELOG.md +125 -0
  4. data/README.md +291 -0
  5. data/SECURITY.md +27 -0
  6. data/lib/believe/client.rb +194 -0
  7. data/lib/believe/errors.rb +228 -0
  8. data/lib/believe/file_part.rb +58 -0
  9. data/lib/believe/internal/skip_limit_page.rb +90 -0
  10. data/lib/believe/internal/transport/base_client.rb +573 -0
  11. data/lib/believe/internal/transport/pooled_net_requester.rb +210 -0
  12. data/lib/believe/internal/type/array_of.rb +168 -0
  13. data/lib/believe/internal/type/base_model.rb +531 -0
  14. data/lib/believe/internal/type/base_page.rb +55 -0
  15. data/lib/believe/internal/type/boolean.rb +77 -0
  16. data/lib/believe/internal/type/converter.rb +327 -0
  17. data/lib/believe/internal/type/enum.rb +156 -0
  18. data/lib/believe/internal/type/file_input.rb +111 -0
  19. data/lib/believe/internal/type/hash_of.rb +188 -0
  20. data/lib/believe/internal/type/request_parameters.rb +42 -0
  21. data/lib/believe/internal/type/union.rb +262 -0
  22. data/lib/believe/internal/type/unknown.rb +81 -0
  23. data/lib/believe/internal/util.rb +966 -0
  24. data/lib/believe/internal.rb +20 -0
  25. data/lib/believe/models/believe_submit_params.rb +63 -0
  26. data/lib/believe/models/believe_submit_response.rb +51 -0
  27. data/lib/believe/models/biscuit.rb +76 -0
  28. data/lib/believe/models/biscuit_get_fresh_params.rb +14 -0
  29. data/lib/believe/models/biscuit_list_params.rb +30 -0
  30. data/lib/believe/models/biscuit_retrieve_params.rb +20 -0
  31. data/lib/believe/models/character.rb +123 -0
  32. data/lib/believe/models/character_create_params.rb +130 -0
  33. data/lib/believe/models/character_delete_params.rb +20 -0
  34. data/lib/believe/models/character_get_quotes_params.rb +20 -0
  35. data/lib/believe/models/character_get_quotes_response.rb +8 -0
  36. data/lib/believe/models/character_list_params.rb +54 -0
  37. data/lib/believe/models/character_retrieve_params.rb +20 -0
  38. data/lib/believe/models/character_role.rb +24 -0
  39. data/lib/believe/models/character_update_params.rb +125 -0
  40. data/lib/believe/models/client/w_test_params.rb +16 -0
  41. data/lib/believe/models/client_get_welcome_params.rb +14 -0
  42. data/lib/believe/models/coach.rb +87 -0
  43. data/lib/believe/models/coach_specialty.rb +19 -0
  44. data/lib/believe/models/coaching/coaching_principle.rb +63 -0
  45. data/lib/believe/models/coaching/principle_get_random_params.rb +16 -0
  46. data/lib/believe/models/coaching/principle_list_params.rb +32 -0
  47. data/lib/believe/models/coaching/principle_retrieve_params.rb +22 -0
  48. data/lib/believe/models/conflict_resolve_params.rb +61 -0
  49. data/lib/believe/models/conflict_resolve_response.rb +59 -0
  50. data/lib/believe/models/emotional_stats.rb +50 -0
  51. data/lib/believe/models/episode.rb +139 -0
  52. data/lib/believe/models/episode_create_params.rb +134 -0
  53. data/lib/believe/models/episode_delete_params.rb +20 -0
  54. data/lib/believe/models/episode_get_wisdom_params.rb +20 -0
  55. data/lib/believe/models/episode_get_wisdom_response.rb +8 -0
  56. data/lib/believe/models/episode_list_params.rb +46 -0
  57. data/lib/believe/models/episode_retrieve_params.rb +20 -0
  58. data/lib/believe/models/episode_update_params.rb +110 -0
  59. data/lib/believe/models/equipment_manager.rb +78 -0
  60. data/lib/believe/models/geo_location.rb +26 -0
  61. data/lib/believe/models/get_welcome_response.rb +8 -0
  62. data/lib/believe/models/growth_arc.rb +50 -0
  63. data/lib/believe/models/health_check_params.rb +14 -0
  64. data/lib/believe/models/health_check_response.rb +8 -0
  65. data/lib/believe/models/league.rb +22 -0
  66. data/lib/believe/models/match.rb +139 -0
  67. data/lib/believe/models/match_completed_webhook_event.rb +178 -0
  68. data/lib/believe/models/match_create_params.rb +146 -0
  69. data/lib/believe/models/match_delete_params.rb +20 -0
  70. data/lib/believe/models/match_get_lesson_params.rb +20 -0
  71. data/lib/believe/models/match_get_lesson_response.rb +8 -0
  72. data/lib/believe/models/match_get_turning_points_params.rb +20 -0
  73. data/lib/believe/models/match_get_turning_points_response.rb +9 -0
  74. data/lib/believe/models/match_list_params.rb +54 -0
  75. data/lib/believe/models/match_result.rb +18 -0
  76. data/lib/believe/models/match_retrieve_params.rb +20 -0
  77. data/lib/believe/models/match_stream_live_params.rb +46 -0
  78. data/lib/believe/models/match_type.rb +19 -0
  79. data/lib/believe/models/match_update_params.rb +139 -0
  80. data/lib/believe/models/matches/commentary_stream_params.rb +22 -0
  81. data/lib/believe/models/matches/commentary_stream_response.rb +10 -0
  82. data/lib/believe/models/medical_specialty.rb +19 -0
  83. data/lib/believe/models/medical_staff.rb +86 -0
  84. data/lib/believe/models/paginated_response.rb +62 -0
  85. data/lib/believe/models/paginated_response_quote.rb +62 -0
  86. data/lib/believe/models/pep_talk_retrieve_params.rb +22 -0
  87. data/lib/believe/models/pep_talk_retrieve_response.rb +69 -0
  88. data/lib/believe/models/player.rb +103 -0
  89. data/lib/believe/models/position.rb +18 -0
  90. data/lib/believe/models/press_simulate_params.rb +38 -0
  91. data/lib/believe/models/press_simulate_response.rb +51 -0
  92. data/lib/believe/models/purchase_method.rb +18 -0
  93. data/lib/believe/models/quote.rb +107 -0
  94. data/lib/believe/models/quote_create_params.rb +102 -0
  95. data/lib/believe/models/quote_delete_params.rb +20 -0
  96. data/lib/believe/models/quote_get_random_params.rb +38 -0
  97. data/lib/believe/models/quote_list_by_character_params.rb +37 -0
  98. data/lib/believe/models/quote_list_by_theme_params.rb +38 -0
  99. data/lib/believe/models/quote_list_params.rb +70 -0
  100. data/lib/believe/models/quote_moment.rb +25 -0
  101. data/lib/believe/models/quote_retrieve_params.rb +20 -0
  102. data/lib/believe/models/quote_theme.rb +45 -0
  103. data/lib/believe/models/quote_update_params.rb +102 -0
  104. data/lib/believe/models/reframe_transform_negative_thoughts_params.rb +30 -0
  105. data/lib/believe/models/reframe_transform_negative_thoughts_response.rb +51 -0
  106. data/lib/believe/models/registered_webhook.rb +70 -0
  107. data/lib/believe/models/stream_test_connection_params.rb +14 -0
  108. data/lib/believe/models/stream_test_connection_response.rb +8 -0
  109. data/lib/believe/models/team.rb +155 -0
  110. data/lib/believe/models/team_create_params.rb +162 -0
  111. data/lib/believe/models/team_delete_params.rb +20 -0
  112. data/lib/believe/models/team_get_culture_params.rb +20 -0
  113. data/lib/believe/models/team_get_culture_response.rb +8 -0
  114. data/lib/believe/models/team_get_rivals_params.rb +20 -0
  115. data/lib/believe/models/team_get_rivals_response.rb +8 -0
  116. data/lib/believe/models/team_list_logos_params.rb +20 -0
  117. data/lib/believe/models/team_list_logos_response.rb +8 -0
  118. data/lib/believe/models/team_list_params.rb +46 -0
  119. data/lib/believe/models/team_member_create_params.rb +345 -0
  120. data/lib/believe/models/team_member_create_response.rb +29 -0
  121. data/lib/believe/models/team_member_delete_params.rb +20 -0
  122. data/lib/believe/models/team_member_list_coaches_params.rb +46 -0
  123. data/lib/believe/models/team_member_list_params.rb +59 -0
  124. data/lib/believe/models/team_member_list_players_params.rb +46 -0
  125. data/lib/believe/models/team_member_list_response.rb +29 -0
  126. data/lib/believe/models/team_member_list_staff_params.rb +38 -0
  127. data/lib/believe/models/team_member_list_staff_response.rb +21 -0
  128. data/lib/believe/models/team_member_retrieve_params.rb +20 -0
  129. data/lib/believe/models/team_member_retrieve_response.rb +29 -0
  130. data/lib/believe/models/team_member_transferred_webhook_event.rb +185 -0
  131. data/lib/believe/models/team_member_update_params.rb +216 -0
  132. data/lib/believe/models/team_member_update_response.rb +29 -0
  133. data/lib/believe/models/team_retrieve_params.rb +20 -0
  134. data/lib/believe/models/team_update_params.rb +154 -0
  135. data/lib/believe/models/team_values.rb +34 -0
  136. data/lib/believe/models/teams/file_upload.rb +50 -0
  137. data/lib/believe/models/teams/logo_delete_params.rb +28 -0
  138. data/lib/believe/models/teams/logo_download_params.rb +28 -0
  139. data/lib/believe/models/teams/logo_download_response.rb +10 -0
  140. data/lib/believe/models/teams/logo_upload_params.rb +31 -0
  141. data/lib/believe/models/ticket_sale.rb +115 -0
  142. data/lib/believe/models/ticket_sale_create_params.rb +110 -0
  143. data/lib/believe/models/ticket_sale_delete_params.rb +20 -0
  144. data/lib/believe/models/ticket_sale_list_params.rb +62 -0
  145. data/lib/believe/models/ticket_sale_retrieve_params.rb +20 -0
  146. data/lib/believe/models/ticket_sale_update_params.rb +106 -0
  147. data/lib/believe/models/turning_point.rb +42 -0
  148. data/lib/believe/models/unwrap_webhook_event.rb +19 -0
  149. data/lib/believe/models/version_retrieve_params.rb +14 -0
  150. data/lib/believe/models/version_retrieve_response.rb +8 -0
  151. data/lib/believe/models/webhook_create_params.rb +50 -0
  152. data/lib/believe/models/webhook_create_response.rb +35 -0
  153. data/lib/believe/models/webhook_delete_params.rb +20 -0
  154. data/lib/believe/models/webhook_delete_response.rb +8 -0
  155. data/lib/believe/models/webhook_list_params.rb +14 -0
  156. data/lib/believe/models/webhook_list_response.rb +8 -0
  157. data/lib/believe/models/webhook_retrieve_params.rb +20 -0
  158. data/lib/believe/models/webhook_trigger_event_params.rb +383 -0
  159. data/lib/believe/models/webhook_trigger_event_response.rb +118 -0
  160. data/lib/believe/models/webhook_unwrap_params.rb +14 -0
  161. data/lib/believe/models.rb +245 -0
  162. data/lib/believe/request_options.rb +77 -0
  163. data/lib/believe/resources/believe.rb +43 -0
  164. data/lib/believe/resources/biscuits.rb +79 -0
  165. data/lib/believe/resources/characters.rb +198 -0
  166. data/lib/believe/resources/client/ws.rb +44 -0
  167. data/lib/believe/resources/client.rb +20 -0
  168. data/lib/believe/resources/coaching/principles.rb +80 -0
  169. data/lib/believe/resources/coaching.rb +19 -0
  170. data/lib/believe/resources/conflicts.rb +43 -0
  171. data/lib/believe/resources/episodes.rb +189 -0
  172. data/lib/believe/resources/health.rb +32 -0
  173. data/lib/believe/resources/matches/commentary.rb +37 -0
  174. data/lib/believe/resources/matches.rb +288 -0
  175. data/lib/believe/resources/pep_talk.rb +40 -0
  176. data/lib/believe/resources/press.rb +41 -0
  177. data/lib/believe/resources/quotes.rb +258 -0
  178. data/lib/believe/resources/reframe.rb +39 -0
  179. data/lib/believe/resources/stream.rb +33 -0
  180. data/lib/believe/resources/team_members.rb +267 -0
  181. data/lib/believe/resources/teams/logo.rb +92 -0
  182. data/lib/believe/resources/teams.rb +250 -0
  183. data/lib/believe/resources/ticket_sales.rb +179 -0
  184. data/lib/believe/resources/version.rb +32 -0
  185. data/lib/believe/resources/webhooks.rb +177 -0
  186. data/lib/believe/version.rb +5 -0
  187. data/lib/believe.rb +215 -0
  188. data/manifest.yaml +17 -0
  189. data/rbi/believe/client.rbi +128 -0
  190. data/rbi/believe/errors.rbi +205 -0
  191. data/rbi/believe/file_part.rbi +37 -0
  192. data/rbi/believe/internal/skip_limit_page.rbi +25 -0
  193. data/rbi/believe/internal/transport/base_client.rbi +298 -0
  194. data/rbi/believe/internal/transport/pooled_net_requester.rbi +83 -0
  195. data/rbi/believe/internal/type/array_of.rbi +104 -0
  196. data/rbi/believe/internal/type/base_model.rbi +308 -0
  197. data/rbi/believe/internal/type/base_page.rbi +42 -0
  198. data/rbi/believe/internal/type/boolean.rbi +58 -0
  199. data/rbi/believe/internal/type/converter.rbi +216 -0
  200. data/rbi/believe/internal/type/enum.rbi +82 -0
  201. data/rbi/believe/internal/type/file_input.rbi +59 -0
  202. data/rbi/believe/internal/type/hash_of.rbi +104 -0
  203. data/rbi/believe/internal/type/request_parameters.rbi +29 -0
  204. data/rbi/believe/internal/type/union.rbi +128 -0
  205. data/rbi/believe/internal/type/unknown.rbi +58 -0
  206. data/rbi/believe/internal/util.rbi +515 -0
  207. data/rbi/believe/internal.rbi +18 -0
  208. data/rbi/believe/models/believe_submit_params.rbi +134 -0
  209. data/rbi/believe/models/believe_submit_response.rbi +73 -0
  210. data/rbi/believe/models/biscuit.rbi +101 -0
  211. data/rbi/believe/models/biscuit_get_fresh_params.rbi +27 -0
  212. data/rbi/believe/models/biscuit_list_params.rbi +57 -0
  213. data/rbi/believe/models/biscuit_retrieve_params.rbi +35 -0
  214. data/rbi/believe/models/character.rbi +151 -0
  215. data/rbi/believe/models/character_create_params.rbi +169 -0
  216. data/rbi/believe/models/character_delete_params.rbi +35 -0
  217. data/rbi/believe/models/character_get_quotes_params.rbi +38 -0
  218. data/rbi/believe/models/character_get_quotes_response.rbi +11 -0
  219. data/rbi/believe/models/character_list_params.rbi +81 -0
  220. data/rbi/believe/models/character_retrieve_params.rbi +38 -0
  221. data/rbi/believe/models/character_role.rbi +28 -0
  222. data/rbi/believe/models/character_update_params.rbi +150 -0
  223. data/rbi/believe/models/client/w_test_params.rbi +32 -0
  224. data/rbi/believe/models/client_get_welcome_params.rbi +27 -0
  225. data/rbi/believe/models/coach.rbi +115 -0
  226. data/rbi/believe/models/coach_specialty.rbi +29 -0
  227. data/rbi/believe/models/coaching/coaching_principle.rbi +85 -0
  228. data/rbi/believe/models/coaching/principle_get_random_params.rbi +32 -0
  229. data/rbi/believe/models/coaching/principle_list_params.rbi +62 -0
  230. data/rbi/believe/models/coaching/principle_retrieve_params.rbi +40 -0
  231. data/rbi/believe/models/conflict_resolve_params.rbi +121 -0
  232. data/rbi/believe/models/conflict_resolve_response.rbi +81 -0
  233. data/rbi/believe/models/emotional_stats.rbi +70 -0
  234. data/rbi/believe/models/episode.rbi +159 -0
  235. data/rbi/believe/models/episode_create_params.rbi +158 -0
  236. data/rbi/believe/models/episode_delete_params.rbi +35 -0
  237. data/rbi/believe/models/episode_get_wisdom_params.rbi +35 -0
  238. data/rbi/believe/models/episode_get_wisdom_response.rbi +11 -0
  239. data/rbi/believe/models/episode_list_params.rbi +73 -0
  240. data/rbi/believe/models/episode_retrieve_params.rbi +35 -0
  241. data/rbi/believe/models/episode_update_params.rbi +131 -0
  242. data/rbi/believe/models/equipment_manager.rbi +128 -0
  243. data/rbi/believe/models/geo_location.rbi +36 -0
  244. data/rbi/believe/models/get_welcome_response.rbi +7 -0
  245. data/rbi/believe/models/growth_arc.rbi +70 -0
  246. data/rbi/believe/models/health_check_params.rbi +27 -0
  247. data/rbi/believe/models/health_check_response.rbi +8 -0
  248. data/rbi/believe/models/league.rbi +26 -0
  249. data/rbi/believe/models/match.rbi +170 -0
  250. data/rbi/believe/models/match_completed_webhook_event.rbi +315 -0
  251. data/rbi/believe/models/match_create_params.rbi +192 -0
  252. data/rbi/believe/models/match_delete_params.rbi +35 -0
  253. data/rbi/believe/models/match_get_lesson_params.rbi +35 -0
  254. data/rbi/believe/models/match_get_lesson_response.rbi +11 -0
  255. data/rbi/believe/models/match_get_turning_points_params.rbi +38 -0
  256. data/rbi/believe/models/match_get_turning_points_response.rbi +13 -0
  257. data/rbi/believe/models/match_list_params.rbi +81 -0
  258. data/rbi/believe/models/match_result.rbi +22 -0
  259. data/rbi/believe/models/match_retrieve_params.rbi +35 -0
  260. data/rbi/believe/models/match_stream_live_params.rbi +79 -0
  261. data/rbi/believe/models/match_type.rbi +23 -0
  262. data/rbi/believe/models/match_update_params.rbi +157 -0
  263. data/rbi/believe/models/matches/commentary_stream_params.rbi +40 -0
  264. data/rbi/believe/models/matches/commentary_stream_response.rbi +10 -0
  265. data/rbi/believe/models/medical_specialty.rbi +30 -0
  266. data/rbi/believe/models/medical_staff.rbi +127 -0
  267. data/rbi/believe/models/paginated_response.rbi +77 -0
  268. data/rbi/believe/models/paginated_response_quote.rbi +77 -0
  269. data/rbi/believe/models/pep_talk_retrieve_params.rbi +43 -0
  270. data/rbi/believe/models/pep_talk_retrieve_response.rbi +114 -0
  271. data/rbi/believe/models/player.rbi +139 -0
  272. data/rbi/believe/models/position.rbi +22 -0
  273. data/rbi/believe/models/press_simulate_params.rbi +62 -0
  274. data/rbi/believe/models/press_simulate_response.rbi +73 -0
  275. data/rbi/believe/models/purchase_method.rbi +24 -0
  276. data/rbi/believe/models/quote.rbi +135 -0
  277. data/rbi/believe/models/quote_create_params.rbi +134 -0
  278. data/rbi/believe/models/quote_delete_params.rbi +35 -0
  279. data/rbi/believe/models/quote_get_random_params.rbi +59 -0
  280. data/rbi/believe/models/quote_list_by_character_params.rbi +66 -0
  281. data/rbi/believe/models/quote_list_by_theme_params.rbi +65 -0
  282. data/rbi/believe/models/quote_list_params.rbi +97 -0
  283. data/rbi/believe/models/quote_moment.rbi +33 -0
  284. data/rbi/believe/models/quote_retrieve_params.rbi +35 -0
  285. data/rbi/believe/models/quote_theme.rbi +51 -0
  286. data/rbi/believe/models/quote_update_params.rbi +113 -0
  287. data/rbi/believe/models/reframe_transform_negative_thoughts_params.rbi +57 -0
  288. data/rbi/believe/models/reframe_transform_negative_thoughts_response.rbi +73 -0
  289. data/rbi/believe/models/registered_webhook.rbi +111 -0
  290. data/rbi/believe/models/stream_test_connection_params.rbi +30 -0
  291. data/rbi/believe/models/stream_test_connection_response.rbi +8 -0
  292. data/rbi/believe/models/team.rbi +186 -0
  293. data/rbi/believe/models/team_create_params.rbi +206 -0
  294. data/rbi/believe/models/team_delete_params.rbi +35 -0
  295. data/rbi/believe/models/team_get_culture_params.rbi +35 -0
  296. data/rbi/believe/models/team_get_culture_response.rbi +11 -0
  297. data/rbi/believe/models/team_get_rivals_params.rbi +35 -0
  298. data/rbi/believe/models/team_get_rivals_response.rbi +11 -0
  299. data/rbi/believe/models/team_list_logos_params.rbi +35 -0
  300. data/rbi/believe/models/team_list_logos_response.rbi +11 -0
  301. data/rbi/believe/models/team_list_params.rbi +73 -0
  302. data/rbi/believe/models/team_member_create_params.rbi +636 -0
  303. data/rbi/believe/models/team_member_create_response.rbi +28 -0
  304. data/rbi/believe/models/team_member_delete_params.rbi +35 -0
  305. data/rbi/believe/models/team_member_list_coaches_params.rbi +76 -0
  306. data/rbi/believe/models/team_member_list_params.rbi +119 -0
  307. data/rbi/believe/models/team_member_list_players_params.rbi +76 -0
  308. data/rbi/believe/models/team_member_list_response.rbi +28 -0
  309. data/rbi/believe/models/team_member_list_staff_params.rbi +68 -0
  310. data/rbi/believe/models/team_member_list_staff_response.rbi +23 -0
  311. data/rbi/believe/models/team_member_retrieve_params.rbi +38 -0
  312. data/rbi/believe/models/team_member_retrieve_response.rbi +28 -0
  313. data/rbi/believe/models/team_member_transferred_webhook_event.rbi +325 -0
  314. data/rbi/believe/models/team_member_update_params.rbi +337 -0
  315. data/rbi/believe/models/team_member_update_response.rbi +28 -0
  316. data/rbi/believe/models/team_retrieve_params.rbi +35 -0
  317. data/rbi/believe/models/team_update_params.rbi +177 -0
  318. data/rbi/believe/models/team_values.rbi +54 -0
  319. data/rbi/believe/models/teams/file_upload.rbi +68 -0
  320. data/rbi/believe/models/teams/logo_delete_params.rbi +48 -0
  321. data/rbi/believe/models/teams/logo_download_params.rbi +48 -0
  322. data/rbi/believe/models/teams/logo_download_response.rbi +10 -0
  323. data/rbi/believe/models/teams/logo_upload_params.rbi +54 -0
  324. data/rbi/believe/models/ticket_sale.rbi +134 -0
  325. data/rbi/believe/models/ticket_sale_create_params.rbi +131 -0
  326. data/rbi/believe/models/ticket_sale_delete_params.rbi +35 -0
  327. data/rbi/believe/models/ticket_sale_list_params.rbi +89 -0
  328. data/rbi/believe/models/ticket_sale_retrieve_params.rbi +38 -0
  329. data/rbi/believe/models/ticket_sale_update_params.rbi +115 -0
  330. data/rbi/believe/models/turning_point.rbi +62 -0
  331. data/rbi/believe/models/unwrap_webhook_event.rbi +24 -0
  332. data/rbi/believe/models/version_retrieve_params.rbi +27 -0
  333. data/rbi/believe/models/version_retrieve_response.rbi +8 -0
  334. data/rbi/believe/models/webhook_create_params.rbi +100 -0
  335. data/rbi/believe/models/webhook_create_response.rbi +66 -0
  336. data/rbi/believe/models/webhook_delete_params.rbi +35 -0
  337. data/rbi/believe/models/webhook_delete_response.rbi +11 -0
  338. data/rbi/believe/models/webhook_list_params.rbi +27 -0
  339. data/rbi/believe/models/webhook_list_response.rbi +11 -0
  340. data/rbi/believe/models/webhook_retrieve_params.rbi +35 -0
  341. data/rbi/believe/models/webhook_trigger_event_params.rbi +771 -0
  342. data/rbi/believe/models/webhook_trigger_event_response.rbi +200 -0
  343. data/rbi/believe/models/webhook_unwrap_params.rbi +27 -0
  344. data/rbi/believe/models.rbi +209 -0
  345. data/rbi/believe/request_options.rbi +59 -0
  346. data/rbi/believe/resources/believe.rbi +37 -0
  347. data/rbi/believe/resources/biscuits.rbi +50 -0
  348. data/rbi/believe/resources/characters.rbi +162 -0
  349. data/rbi/believe/resources/client/ws.rbi +34 -0
  350. data/rbi/believe/resources/client.rbi +17 -0
  351. data/rbi/believe/resources/coaching/principles.rbi +55 -0
  352. data/rbi/believe/resources/coaching.rbi +16 -0
  353. data/rbi/believe/resources/conflicts.rbi +37 -0
  354. data/rbi/believe/resources/episodes.rbi +166 -0
  355. data/rbi/believe/resources/health.rbi +21 -0
  356. data/rbi/believe/resources/matches/commentary.rbi +26 -0
  357. data/rbi/believe/resources/matches.rbi +244 -0
  358. data/rbi/believe/resources/pep_talk.rbi +29 -0
  359. data/rbi/believe/resources/press.rbi +33 -0
  360. data/rbi/believe/resources/quotes.rbi +206 -0
  361. data/rbi/believe/resources/reframe.rbi +30 -0
  362. data/rbi/believe/resources/stream.rbi +22 -0
  363. data/rbi/believe/resources/team_members.rbi +223 -0
  364. data/rbi/believe/resources/teams/logo.rbi +53 -0
  365. data/rbi/believe/resources/teams.rbi +205 -0
  366. data/rbi/believe/resources/ticket_sales.rbi +149 -0
  367. data/rbi/believe/resources/version.rbi +21 -0
  368. data/rbi/believe/resources/webhooks.rbi +150 -0
  369. data/rbi/believe/version.rbi +5 -0
  370. data/sig/believe/client.rbs +64 -0
  371. data/sig/believe/errors.rbs +117 -0
  372. data/sig/believe/file_part.rbs +21 -0
  373. data/sig/believe/internal/skip_limit_page.rbs +15 -0
  374. data/sig/believe/internal/transport/base_client.rbs +133 -0
  375. data/sig/believe/internal/transport/pooled_net_requester.rbs +48 -0
  376. data/sig/believe/internal/type/array_of.rbs +48 -0
  377. data/sig/believe/internal/type/base_model.rbs +102 -0
  378. data/sig/believe/internal/type/base_page.rbs +24 -0
  379. data/sig/believe/internal/type/boolean.rbs +26 -0
  380. data/sig/believe/internal/type/converter.rbs +79 -0
  381. data/sig/believe/internal/type/enum.rbs +32 -0
  382. data/sig/believe/internal/type/file_input.rbs +25 -0
  383. data/sig/believe/internal/type/hash_of.rbs +48 -0
  384. data/sig/believe/internal/type/request_parameters.rbs +19 -0
  385. data/sig/believe/internal/type/union.rbs +52 -0
  386. data/sig/believe/internal/type/unknown.rbs +26 -0
  387. data/sig/believe/internal/util.rbs +199 -0
  388. data/sig/believe/internal.rbs +9 -0
  389. data/sig/believe/models/believe_submit_params.rbs +68 -0
  390. data/sig/believe/models/believe_submit_response.rbs +40 -0
  391. data/sig/believe/models/biscuit.rbs +66 -0
  392. data/sig/believe/models/biscuit_get_fresh_params.rbs +15 -0
  393. data/sig/believe/models/biscuit_list_params.rbs +32 -0
  394. data/sig/believe/models/biscuit_retrieve_params.rbs +23 -0
  395. data/sig/believe/models/character.rbs +91 -0
  396. data/sig/believe/models/character_create_params.rbs +100 -0
  397. data/sig/believe/models/character_delete_params.rbs +23 -0
  398. data/sig/believe/models/character_get_quotes_params.rbs +23 -0
  399. data/sig/believe/models/character_get_quotes_response.rbs +7 -0
  400. data/sig/believe/models/character_list_params.rbs +50 -0
  401. data/sig/believe/models/character_retrieve_params.rbs +23 -0
  402. data/sig/believe/models/character_role.rbs +32 -0
  403. data/sig/believe/models/character_update_params.rbs +99 -0
  404. data/sig/believe/models/client/w_test_params.rbs +16 -0
  405. data/sig/believe/models/client_get_welcome_params.rbs +15 -0
  406. data/sig/believe/models/coach.rbs +71 -0
  407. data/sig/believe/models/coach_specialty.rbs +22 -0
  408. data/sig/believe/models/coaching/coaching_principle.rbs +49 -0
  409. data/sig/believe/models/coaching/principle_get_random_params.rbs +17 -0
  410. data/sig/believe/models/coaching/principle_list_params.rbs +34 -0
  411. data/sig/believe/models/coaching/principle_retrieve_params.rbs +25 -0
  412. data/sig/believe/models/conflict_resolve_params.rbs +62 -0
  413. data/sig/believe/models/conflict_resolve_response.rbs +45 -0
  414. data/sig/believe/models/emotional_stats.rbs +40 -0
  415. data/sig/believe/models/episode.rbs +97 -0
  416. data/sig/believe/models/episode_create_params.rbs +98 -0
  417. data/sig/believe/models/episode_delete_params.rbs +23 -0
  418. data/sig/believe/models/episode_get_wisdom_params.rbs +23 -0
  419. data/sig/believe/models/episode_get_wisdom_response.rbs +7 -0
  420. data/sig/believe/models/episode_list_params.rbs +45 -0
  421. data/sig/believe/models/episode_retrieve_params.rbs +23 -0
  422. data/sig/believe/models/episode_update_params.rbs +101 -0
  423. data/sig/believe/models/equipment_manager.rbs +68 -0
  424. data/sig/believe/models/geo_location.rbs +15 -0
  425. data/sig/believe/models/get_welcome_response.rbs +5 -0
  426. data/sig/believe/models/growth_arc.rbs +40 -0
  427. data/sig/believe/models/health_check_params.rbs +15 -0
  428. data/sig/believe/models/health_check_response.rbs +5 -0
  429. data/sig/believe/models/league.rbs +28 -0
  430. data/sig/believe/models/match.rbs +107 -0
  431. data/sig/believe/models/match_completed_webhook_event.rbs +138 -0
  432. data/sig/believe/models/match_create_params.rbs +116 -0
  433. data/sig/believe/models/match_delete_params.rbs +23 -0
  434. data/sig/believe/models/match_get_lesson_params.rbs +23 -0
  435. data/sig/believe/models/match_get_lesson_response.rbs +7 -0
  436. data/sig/believe/models/match_get_turning_points_params.rbs +23 -0
  437. data/sig/believe/models/match_get_turning_points_response.rbs +7 -0
  438. data/sig/believe/models/match_list_params.rbs +50 -0
  439. data/sig/believe/models/match_result.rbs +16 -0
  440. data/sig/believe/models/match_retrieve_params.rbs +23 -0
  441. data/sig/believe/models/match_stream_live_params.rbs +49 -0
  442. data/sig/believe/models/match_type.rbs +17 -0
  443. data/sig/believe/models/match_update_params.rbs +109 -0
  444. data/sig/believe/models/matches/commentary_stream_params.rbs +25 -0
  445. data/sig/believe/models/matches/commentary_stream_response.rbs +7 -0
  446. data/sig/believe/models/medical_specialty.rbs +22 -0
  447. data/sig/believe/models/medical_staff.rbs +71 -0
  448. data/sig/believe/models/paginated_response.rbs +50 -0
  449. data/sig/believe/models/paginated_response_quote.rbs +50 -0
  450. data/sig/believe/models/pep_talk_retrieve_params.rbs +25 -0
  451. data/sig/believe/models/pep_talk_retrieve_response.rbs +57 -0
  452. data/sig/believe/models/player.rbs +85 -0
  453. data/sig/believe/models/position.rbs +16 -0
  454. data/sig/believe/models/press_simulate_params.rbs +34 -0
  455. data/sig/believe/models/press_simulate_response.rbs +40 -0
  456. data/sig/believe/models/purchase_method.rbs +16 -0
  457. data/sig/believe/models/quote.rbs +83 -0
  458. data/sig/believe/models/quote_create_params.rbs +84 -0
  459. data/sig/believe/models/quote_delete_params.rbs +23 -0
  460. data/sig/believe/models/quote_get_random_params.rbs +36 -0
  461. data/sig/believe/models/quote_list_by_character_params.rbs +36 -0
  462. data/sig/believe/models/quote_list_by_theme_params.rbs +36 -0
  463. data/sig/believe/models/quote_list_params.rbs +60 -0
  464. data/sig/believe/models/quote_moment.rbs +34 -0
  465. data/sig/believe/models/quote_retrieve_params.rbs +23 -0
  466. data/sig/believe/models/quote_theme.rbs +74 -0
  467. data/sig/believe/models/quote_update_params.rbs +81 -0
  468. data/sig/believe/models/reframe_transform_negative_thoughts_params.rbs +30 -0
  469. data/sig/believe/models/reframe_transform_negative_thoughts_response.rbs +40 -0
  470. data/sig/believe/models/registered_webhook.rbs +56 -0
  471. data/sig/believe/models/stream_test_connection_params.rbs +15 -0
  472. data/sig/believe/models/stream_test_connection_response.rbs +5 -0
  473. data/sig/believe/models/team.rbs +109 -0
  474. data/sig/believe/models/team_create_params.rbs +118 -0
  475. data/sig/believe/models/team_delete_params.rbs +23 -0
  476. data/sig/believe/models/team_get_culture_params.rbs +23 -0
  477. data/sig/believe/models/team_get_culture_response.rbs +7 -0
  478. data/sig/believe/models/team_get_rivals_params.rbs +23 -0
  479. data/sig/believe/models/team_get_rivals_response.rbs +7 -0
  480. data/sig/believe/models/team_list_logos_params.rbs +23 -0
  481. data/sig/believe/models/team_list_logos_response.rbs +7 -0
  482. data/sig/believe/models/team_list_params.rbs +45 -0
  483. data/sig/believe/models/team_member_create_params.rbs +299 -0
  484. data/sig/believe/models/team_member_create_response.rbs +15 -0
  485. data/sig/believe/models/team_member_delete_params.rbs +23 -0
  486. data/sig/believe/models/team_member_list_coaches_params.rbs +45 -0
  487. data/sig/believe/models/team_member_list_params.rbs +58 -0
  488. data/sig/believe/models/team_member_list_players_params.rbs +45 -0
  489. data/sig/believe/models/team_member_list_response.rbs +15 -0
  490. data/sig/believe/models/team_member_list_staff_params.rbs +36 -0
  491. data/sig/believe/models/team_member_list_staff_response.rbs +12 -0
  492. data/sig/believe/models/team_member_retrieve_params.rbs +23 -0
  493. data/sig/believe/models/team_member_retrieve_response.rbs +15 -0
  494. data/sig/believe/models/team_member_transferred_webhook_event.rbs +142 -0
  495. data/sig/believe/models/team_member_update_params.rbs +196 -0
  496. data/sig/believe/models/team_member_update_response.rbs +15 -0
  497. data/sig/believe/models/team_retrieve_params.rbs +23 -0
  498. data/sig/believe/models/team_update_params.rbs +119 -0
  499. data/sig/believe/models/team_values.rbs +30 -0
  500. data/sig/believe/models/teams/file_upload.rbs +47 -0
  501. data/sig/believe/models/teams/logo_delete_params.rbs +30 -0
  502. data/sig/believe/models/teams/logo_download_params.rbs +30 -0
  503. data/sig/believe/models/teams/logo_download_response.rbs +7 -0
  504. data/sig/believe/models/teams/logo_upload_params.rbs +30 -0
  505. data/sig/believe/models/ticket_sale.rbs +80 -0
  506. data/sig/believe/models/ticket_sale_create_params.rbs +81 -0
  507. data/sig/believe/models/ticket_sale_delete_params.rbs +23 -0
  508. data/sig/believe/models/ticket_sale_list_params.rbs +55 -0
  509. data/sig/believe/models/ticket_sale_retrieve_params.rbs +23 -0
  510. data/sig/believe/models/ticket_sale_update_params.rbs +86 -0
  511. data/sig/believe/models/turning_point.rbs +35 -0
  512. data/sig/believe/models/unwrap_webhook_event.rbs +13 -0
  513. data/sig/believe/models/version_retrieve_params.rbs +15 -0
  514. data/sig/believe/models/version_retrieve_response.rbs +5 -0
  515. data/sig/believe/models/webhook_create_params.rbs +47 -0
  516. data/sig/believe/models/webhook_create_response.rbs +34 -0
  517. data/sig/believe/models/webhook_delete_params.rbs +23 -0
  518. data/sig/believe/models/webhook_delete_response.rbs +7 -0
  519. data/sig/believe/models/webhook_list_params.rbs +15 -0
  520. data/sig/believe/models/webhook_list_response.rbs +7 -0
  521. data/sig/believe/models/webhook_retrieve_params.rbs +23 -0
  522. data/sig/believe/models/webhook_trigger_event_params.rbs +314 -0
  523. data/sig/believe/models/webhook_trigger_event_response.rbs +93 -0
  524. data/sig/believe/models/webhook_unwrap_params.rbs +15 -0
  525. data/sig/believe/models.rbs +205 -0
  526. data/sig/believe/request_options.rbs +34 -0
  527. data/sig/believe/resources/believe.rbs +15 -0
  528. data/sig/believe/resources/biscuits.rbs +22 -0
  529. data/sig/believe/resources/characters.rbs +66 -0
  530. data/sig/believe/resources/client/ws.rbs +11 -0
  531. data/sig/believe/resources/client.rbs +9 -0
  532. data/sig/believe/resources/coaching/principles.rbs +24 -0
  533. data/sig/believe/resources/coaching.rbs +9 -0
  534. data/sig/believe/resources/conflicts.rbs +15 -0
  535. data/sig/believe/resources/episodes.rbs +69 -0
  536. data/sig/believe/resources/health.rbs +9 -0
  537. data/sig/believe/resources/matches/commentary.rbs +14 -0
  538. data/sig/believe/resources/matches.rbs +85 -0
  539. data/sig/believe/resources/pep_talk.rbs +12 -0
  540. data/sig/believe/resources/press.rbs +14 -0
  541. data/sig/believe/resources/quotes.rbs +80 -0
  542. data/sig/believe/resources/reframe.rbs +13 -0
  543. data/sig/believe/resources/stream.rbs +9 -0
  544. data/sig/believe/resources/team_members.rbs +59 -0
  545. data/sig/believe/resources/teams/logo.rbs +27 -0
  546. data/sig/believe/resources/teams.rbs +85 -0
  547. data/sig/believe/resources/ticket_sales.rbs +60 -0
  548. data/sig/believe/resources/version.rbs +9 -0
  549. data/sig/believe/resources/webhooks.rbs +39 -0
  550. data/sig/believe/version.rbs +3 -0
  551. metadata +622 -0
@@ -0,0 +1,188 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Believe
4
+ module Internal
5
+ module Type
6
+ # @api private
7
+ #
8
+ # @abstract
9
+ #
10
+ # @generic Elem
11
+ #
12
+ # Hash of items of a given type.
13
+ class HashOf
14
+ include ::Believe::Internal::Type::Converter
15
+ include ::Believe::Internal::Util::SorbetRuntimeSupport
16
+
17
+ private_class_method :new
18
+
19
+ # @overload [](type_info, spec = {})
20
+ #
21
+ # @param type_info [Hash{Symbol=>Object}, Proc, ::Believe::Internal::Type::Converter, Class]
22
+ #
23
+ # @param spec [Hash{Symbol=>Object}] .
24
+ #
25
+ # @option spec [NilClass, TrueClass, FalseClass, Integer, Float, Symbol] :const
26
+ #
27
+ # @option spec [Proc] :enum
28
+ #
29
+ # @option spec [Proc] :union
30
+ #
31
+ # @option spec [Boolean] :"nil?"
32
+ #
33
+ # @return [self]
34
+ def self.[](...) = new(...)
35
+
36
+ # @api public
37
+ #
38
+ # @param other [Object]
39
+ #
40
+ # @return [Boolean]
41
+ def ===(other)
42
+ type = item_type
43
+ case other
44
+ in Hash
45
+ other.all? do |key, val|
46
+ case [key, val]
47
+ in [Symbol | String, ^type]
48
+ true
49
+ else
50
+ false
51
+ end
52
+ end
53
+ else
54
+ false
55
+ end
56
+ end
57
+
58
+ # @api public
59
+ #
60
+ # @param other [Object]
61
+ #
62
+ # @return [Boolean]
63
+ def ==(other)
64
+ # rubocop:disable Layout/LineLength
65
+ other.is_a?(::Believe::Internal::Type::HashOf) && other.nilable? == nilable? && other.item_type == item_type
66
+ # rubocop:enable Layout/LineLength
67
+ end
68
+
69
+ # @api public
70
+ #
71
+ # @return [Integer]
72
+ def hash = [self.class, item_type].hash
73
+
74
+ # @api private
75
+ #
76
+ # @param value [Hash{Object=>Object}, Object]
77
+ #
78
+ # @param state [Hash{Symbol=>Object}] .
79
+ #
80
+ # @option state [Boolean] :translate_names
81
+ #
82
+ # @option state [Boolean] :strictness
83
+ #
84
+ # @option state [Hash{Symbol=>Object}] :exactness
85
+ #
86
+ # @option state [Class<StandardError>] :error
87
+ #
88
+ # @option state [Integer] :branched
89
+ #
90
+ # @return [Hash{Symbol=>Object}, Object]
91
+ def coerce(value, state:)
92
+ exactness = state.fetch(:exactness)
93
+
94
+ unless value.is_a?(Hash)
95
+ exactness[:no] += 1
96
+ state[:error] = TypeError.new("#{value.class} can't be coerced into #{Hash}")
97
+ return value
98
+ end
99
+
100
+ target = item_type
101
+ exactness[:yes] += 1
102
+ value
103
+ .to_h do |key, val|
104
+ k = key.is_a?(String) ? key.to_sym : key
105
+ v =
106
+ case [nilable?, val]
107
+ in [true, nil]
108
+ exactness[:yes] += 1
109
+ nil
110
+ else
111
+ ::Believe::Internal::Type::Converter.coerce(target, val, state: state)
112
+ end
113
+
114
+ exactness[:no] += 1 unless k.is_a?(Symbol)
115
+ [k, v]
116
+ end
117
+ end
118
+
119
+ # @api private
120
+ #
121
+ # @param value [Hash{Object=>Object}, Object]
122
+ #
123
+ # @param state [Hash{Symbol=>Object}] .
124
+ #
125
+ # @option state [Boolean] :can_retry
126
+ #
127
+ # @return [Hash{Symbol=>Object}, Object]
128
+ def dump(value, state:)
129
+ target = item_type
130
+ if value.is_a?(Hash)
131
+ value.transform_values do
132
+ ::Believe::Internal::Type::Converter.dump(target, _1, state: state)
133
+ end
134
+ else
135
+ super
136
+ end
137
+ end
138
+
139
+ # @api private
140
+ #
141
+ # @return [Object]
142
+ def to_sorbet_type
143
+ T::Hash[::Believe::Internal::Util::SorbetRuntimeSupport.to_sorbet_type(item_type)]
144
+ end
145
+
146
+ # @api private
147
+ #
148
+ # @return [generic<Elem>]
149
+ protected def item_type = @item_type_fn.call
150
+
151
+ # @api private
152
+ #
153
+ # @return [Boolean]
154
+ protected def nilable? = @nilable
155
+
156
+ # @api private
157
+ #
158
+ # @param type_info [Hash{Symbol=>Object}, Proc, ::Believe::Internal::Type::Converter, Class]
159
+ #
160
+ # @param spec [Hash{Symbol=>Object}] .
161
+ #
162
+ # @option spec [NilClass, TrueClass, FalseClass, Integer, Float, Symbol] :const
163
+ #
164
+ # @option spec [Proc] :enum
165
+ #
166
+ # @option spec [Proc] :union
167
+ #
168
+ # @option spec [Boolean] :"nil?"
169
+ def initialize(type_info, spec = {})
170
+ @item_type_fn = ::Believe::Internal::Type::Converter.type_info(type_info || spec)
171
+ @meta = ::Believe::Internal::Type::Converter.meta_info(type_info, spec)
172
+ @nilable = spec.fetch(:nil?, false)
173
+ end
174
+
175
+ # @api private
176
+ #
177
+ # @param depth [Integer]
178
+ #
179
+ # @return [String]
180
+ def inspect(depth: 0)
181
+ items = ::Believe::Internal::Type::Converter.inspect(item_type, depth: depth.succ)
182
+
183
+ "#{self.class}[#{[items, nilable? ? 'nil' : nil].compact.join(' | ')}]"
184
+ end
185
+ end
186
+ end
187
+ end
188
+ end
@@ -0,0 +1,42 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Believe
4
+ module Internal
5
+ module Type
6
+ # @api private
7
+ module RequestParameters
8
+ # @!attribute request_options
9
+ # Options to specify HTTP behaviour for this request.
10
+ #
11
+ # @return [::Believe::RequestOptions, Hash{Symbol=>Object}]
12
+
13
+ # @param mod [Module]
14
+ def self.included(mod)
15
+ raise ArgumentError.new(mod) unless mod <= ::Believe::Internal::Type::BaseModel
16
+
17
+ mod.optional(:request_options, ::Believe::RequestOptions)
18
+ end
19
+
20
+ # @api private
21
+ module Converter
22
+ # @api private
23
+ #
24
+ # @param params [Object]
25
+ #
26
+ # @return [Array(Object, Hash{Symbol=>Object})]
27
+ def dump_request(params)
28
+ state = {can_retry: true}
29
+ case (dumped = dump(params, state: state))
30
+ in Hash
31
+ options = ::Believe::Internal::Util.coerce_hash!(dumped[:request_options]).to_h
32
+ request_options = state.fetch(:can_retry) ? options : {**options, max_retries: 0}
33
+ [dumped.except(:request_options), request_options]
34
+ else
35
+ [dumped, nil]
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,262 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Believe
4
+ module Internal
5
+ module Type
6
+ # @api private
7
+ #
8
+ # @example
9
+ # # `team_member_create_response` is a `::Believe::Models::TeamMemberCreateResponse`
10
+ # case team_member_create_response
11
+ # when ::Believe::Player
12
+ # puts(team_member_create_response.id)
13
+ # when ::Believe::Coach
14
+ # puts(team_member_create_response.character_id)
15
+ # when ::Believe::MedicalStaff
16
+ # puts(team_member_create_response.specialty)
17
+ # else
18
+ # puts(team_member_create_response)
19
+ # end
20
+ #
21
+ # @example
22
+ # case team_member_create_response
23
+ # in {member_type: :player, id: id, character_id: character_id, jersey_number: jersey_number}
24
+ # puts(id)
25
+ # in {member_type: :coach, id: id, character_id: character_id, specialty: specialty}
26
+ # puts(character_id)
27
+ # in {member_type: :medical_staff, id: id, character_id: character_id, specialty: specialty}
28
+ # puts(specialty)
29
+ # else
30
+ # puts(team_member_create_response)
31
+ # end
32
+ module Union
33
+ include ::Believe::Internal::Type::Converter
34
+ include ::Believe::Internal::Util::SorbetRuntimeSupport
35
+
36
+ # @api private
37
+ #
38
+ # All of the specified variant info for this union.
39
+ #
40
+ # @return [Array<Array(Symbol, Proc, Hash{Symbol=>Object})>]
41
+ private def known_variants = (@known_variants ||= [])
42
+
43
+ # @api private
44
+ #
45
+ # @return [Array<Array(Symbol, Object, Hash{Symbol=>Object})>]
46
+ protected def derefed_variants
47
+ known_variants.map { |key, variant_fn, meta| [key, variant_fn.call, meta] }
48
+ end
49
+
50
+ # All of the specified variants for this union.
51
+ #
52
+ # @return [Array<Object>]
53
+ def variants = derefed_variants.map { _2 }
54
+
55
+ # @api private
56
+ #
57
+ # @param property [Symbol]
58
+ private def discriminator(property)
59
+ case property
60
+ in Symbol
61
+ @discriminator = property
62
+ end
63
+ end
64
+
65
+ # @api private
66
+ #
67
+ # @param key [Symbol, Hash{Symbol=>Object}, Proc, ::Believe::Internal::Type::Converter, Class]
68
+ #
69
+ # @param spec [Hash{Symbol=>Object}, Proc, ::Believe::Internal::Type::Converter, Class] .
70
+ #
71
+ # @option spec [NilClass, TrueClass, FalseClass, Integer, Float, Symbol] :const
72
+ #
73
+ # @option spec [Proc] :enum
74
+ #
75
+ # @option spec [Proc] :union
76
+ #
77
+ # @option spec [Boolean] :"nil?"
78
+ private def variant(key, spec = nil)
79
+ meta = ::Believe::Internal::Type::Converter.meta_info(nil, spec)
80
+ variant_info =
81
+ case key
82
+ in Symbol
83
+ [key, ::Believe::Internal::Type::Converter.type_info(spec), meta]
84
+ in Proc | ::Believe::Internal::Type::Converter | Class | Hash
85
+ [nil, ::Believe::Internal::Type::Converter.type_info(key), meta]
86
+ end
87
+
88
+ known_variants << variant_info
89
+ end
90
+
91
+ # @api private
92
+ #
93
+ # @param value [Object]
94
+ #
95
+ # @return [::Believe::Internal::Type::Converter, Class, nil]
96
+ private def resolve_variant(value)
97
+ case [@discriminator, value]
98
+ in [_, ::Believe::Internal::Type::BaseModel]
99
+ value.class
100
+ in [Symbol, Hash]
101
+ key = value.fetch(@discriminator) do
102
+ value.fetch(@discriminator.to_s, ::Believe::Internal::OMIT)
103
+ end
104
+
105
+ return nil if key == ::Believe::Internal::OMIT
106
+
107
+ key = key.to_sym if key.is_a?(String)
108
+ _, found = known_variants.find { |k,| k == key }
109
+ found&.call
110
+ else
111
+ nil
112
+ end
113
+ end
114
+
115
+ # rubocop:disable Style/HashEachMethods
116
+ # rubocop:disable Style/CaseEquality
117
+
118
+ # @api public
119
+ #
120
+ # @param other [Object]
121
+ #
122
+ # @return [Boolean]
123
+ def ===(other)
124
+ known_variants.any? do |_, variant_fn|
125
+ variant_fn.call === other
126
+ end
127
+ end
128
+
129
+ # @api public
130
+ #
131
+ # @param other [Object]
132
+ #
133
+ # @return [Boolean]
134
+ def ==(other)
135
+ ::Believe::Internal::Type::Union === other && other.derefed_variants == derefed_variants
136
+ end
137
+
138
+ # @api public
139
+ #
140
+ # @return [Integer]
141
+ def hash = variants.hash
142
+
143
+ # @api private
144
+ #
145
+ # Tries to efficiently coerce the given value to one of the known variants.
146
+ #
147
+ # If the value cannot match any of the known variants, the coercion is considered
148
+ # non-viable and returns the original value.
149
+ #
150
+ # @param value [Object]
151
+ #
152
+ # @param state [Hash{Symbol=>Object}] .
153
+ #
154
+ # @option state [Boolean] :translate_names
155
+ #
156
+ # @option state [Boolean] :strictness
157
+ #
158
+ # @option state [Hash{Symbol=>Object}] :exactness
159
+ #
160
+ # @option state [Class<StandardError>] :error
161
+ #
162
+ # @option state [Integer] :branched
163
+ #
164
+ # @return [Object]
165
+ def coerce(value, state:)
166
+ if (target = resolve_variant(value))
167
+ return ::Believe::Internal::Type::Converter.coerce(target, value, state: state)
168
+ end
169
+
170
+ strictness = state.fetch(:strictness)
171
+ exactness = state.fetch(:exactness)
172
+
173
+ alternatives = []
174
+ known_variants.each do |_, variant_fn|
175
+ target = variant_fn.call
176
+ exact = state[:exactness] = {yes: 0, no: 0, maybe: 0}
177
+ state[:branched] += 1
178
+
179
+ coerced = ::Believe::Internal::Type::Converter.coerce(target, value, state: state)
180
+ yes, no, maybe = exact.values
181
+ if (no + maybe).zero? || (!strictness && yes.positive?)
182
+ exact.each { exactness[_1] += _2 }
183
+ state[:exactness] = exactness
184
+ return coerced
185
+ elsif maybe.positive?
186
+ alternatives << [[-yes, -maybe, no], exact, coerced]
187
+ end
188
+ end
189
+
190
+ case alternatives.sort_by!(&:first)
191
+ in []
192
+ exactness[:no] += 1
193
+ state[:error] = ArgumentError.new("no matching variant for #{value.inspect}")
194
+ value
195
+ in [[_, exact, coerced], *]
196
+ exact.each { exactness[_1] += _2 }
197
+ coerced
198
+ end
199
+ .tap { state[:exactness] = exactness }
200
+ ensure
201
+ state[:strictness] = strictness
202
+ end
203
+
204
+ # @api private
205
+ #
206
+ # @param value [Object]
207
+ #
208
+ # @param state [Hash{Symbol=>Object}] .
209
+ #
210
+ # @option state [Boolean] :can_retry
211
+ #
212
+ # @return [Object]
213
+ def dump(value, state:)
214
+ if (target = resolve_variant(value))
215
+ return ::Believe::Internal::Type::Converter.dump(target, value, state: state)
216
+ end
217
+
218
+ known_variants.each do
219
+ target = _2.call
220
+ return ::Believe::Internal::Type::Converter.dump(target, value, state: state) if target === value
221
+ end
222
+
223
+ super
224
+ end
225
+
226
+ # @api private
227
+ #
228
+ # @return [Object]
229
+ def to_sorbet_type
230
+ types = variants.map { ::Believe::Internal::Util::SorbetRuntimeSupport.to_sorbet_type(_1) }.uniq
231
+ case types
232
+ in []
233
+ T.noreturn
234
+ in [type]
235
+ type
236
+ else
237
+ T.any(*types)
238
+ end
239
+ end
240
+
241
+ # rubocop:enable Style/CaseEquality
242
+ # rubocop:enable Style/HashEachMethods
243
+
244
+ # @api private
245
+ #
246
+ # @param depth [Integer]
247
+ #
248
+ # @return [String]
249
+ def inspect(depth: 0)
250
+ if depth.positive?
251
+ return is_a?(Module) ? super() : self.class.name
252
+ end
253
+
254
+ members = variants.map { ::Believe::Internal::Type::Converter.inspect(_1, depth: depth.succ) }
255
+ prefix = is_a?(Module) ? name : self.class.name
256
+
257
+ "#{prefix}[#{members.join(' | ')}]"
258
+ end
259
+ end
260
+ end
261
+ end
262
+ end
@@ -0,0 +1,81 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Believe
4
+ module Internal
5
+ module Type
6
+ # @api private
7
+ #
8
+ # @abstract
9
+ #
10
+ # When we don't know what to expect for the value.
11
+ class Unknown
12
+ extend ::Believe::Internal::Type::Converter
13
+ extend ::Believe::Internal::Util::SorbetRuntimeSupport
14
+
15
+ # rubocop:disable Lint/UnusedMethodArgument
16
+
17
+ private_class_method :new
18
+
19
+ # @api public
20
+ #
21
+ # @param other [Object]
22
+ #
23
+ # @return [Boolean]
24
+ def self.===(other) = true
25
+
26
+ # @api public
27
+ #
28
+ # @param other [Object]
29
+ #
30
+ # @return [Boolean]
31
+ def self.==(other) = other.is_a?(Class) && other <= ::Believe::Internal::Type::Unknown
32
+
33
+ class << self
34
+ # @api private
35
+ #
36
+ # No coercion needed for Unknown type.
37
+ #
38
+ # @param value [Object]
39
+ #
40
+ # @param state [Hash{Symbol=>Object}] .
41
+ #
42
+ # @option state [Boolean] :translate_names
43
+ #
44
+ # @option state [Boolean] :strictness
45
+ #
46
+ # @option state [Hash{Symbol=>Object}] :exactness
47
+ #
48
+ # @option state [Class<StandardError>] :error
49
+ #
50
+ # @option state [Integer] :branched
51
+ #
52
+ # @return [Object]
53
+ def coerce(value, state:)
54
+ state.fetch(:exactness)[:yes] += 1
55
+ value
56
+ end
57
+
58
+ # @!method dump(value, state:)
59
+ # @api private
60
+ #
61
+ # @param value [Object]
62
+ #
63
+ # @param state [Hash{Symbol=>Object}] .
64
+ #
65
+ # @option state [Boolean] :can_retry
66
+ #
67
+ # @return [Object]
68
+
69
+ # @api private
70
+ #
71
+ # @return [Object]
72
+ def to_sorbet_type
73
+ T.anything
74
+ end
75
+ end
76
+
77
+ # rubocop:enable Lint/UnusedMethodArgument
78
+ end
79
+ end
80
+ end
81
+ end