dub 0.3.0 → 0.6.6

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.

Potentially problematic release.


This version of dub might be problematic. Click here for more details.

Files changed (408) hide show
  1. data/.gitignore +8 -0
  2. data/History.txt +53 -0
  3. data/LICENSE +20 -0
  4. data/README.rdoc +67 -0
  5. data/Rakefile +59 -0
  6. data/dub.gemspec +201 -0
  7. data/lib/dub/argument.rb +275 -0
  8. data/lib/dub/entities_unescape.rb +9 -0
  9. data/lib/dub/function.rb +163 -0
  10. data/lib/dub/function_group.rb +72 -0
  11. data/lib/dub/generator.rb +15 -0
  12. data/lib/dub/group.rb +24 -0
  13. data/lib/dub/klass.rb +255 -0
  14. data/lib/dub/lua/class.cpp.erb +84 -0
  15. data/lib/dub/lua/class_gen.rb +97 -0
  16. data/lib/dub/lua/function.cpp.erb +18 -0
  17. data/lib/dub/lua/function_gen.rb +265 -0
  18. data/lib/dub/lua/group.cpp.erb +9 -0
  19. data/lib/dub/lua/lua_cpp_helper.h +141 -0
  20. data/lib/dub/lua/namespace.cpp.erb +40 -0
  21. data/lib/dub/lua/namespace_gen.rb +88 -0
  22. data/lib/dub/lua.rb +24 -0
  23. data/lib/dub/member_extraction.rb +92 -0
  24. data/lib/dub/namespace.rb +277 -0
  25. data/lib/dub/opts_parser.rb +30 -0
  26. data/lib/dub/parser.rb +46 -0
  27. data/lib/dub/templates/lua_template.erb +21 -0
  28. data/lib/dub/version.rb +3 -0
  29. data/lib/dub.rb +24 -24
  30. data/test/argument_test.rb +547 -0
  31. data/test/fixtures/app/CMakeLists.txt +54 -0
  32. data/test/fixtures/app/Doxyfile +1600 -0
  33. data/test/fixtures/app/bindings/all_lua.cpp +299 -0
  34. data/test/fixtures/app/include/matrix.h +162 -0
  35. data/test/fixtures/app/make_lua_bindings.rb +13 -0
  36. data/test/fixtures/app/vendor/lua/CMakeLists.txt +25 -0
  37. data/test/fixtures/app/vendor/lua/COPYRIGHT +34 -0
  38. data/test/fixtures/app/vendor/lua/HISTORY +183 -0
  39. data/test/fixtures/app/vendor/lua/INSTALL +99 -0
  40. data/test/fixtures/app/vendor/lua/Makefile +183 -0
  41. data/test/fixtures/app/vendor/lua/README +37 -0
  42. data/test/fixtures/app/vendor/lua/lapi.c +1080 -0
  43. data/test/fixtures/app/vendor/lua/lapi.h +16 -0
  44. data/test/fixtures/app/vendor/lua/lauxlib.c +653 -0
  45. data/test/fixtures/app/vendor/lua/lauxlib.h +174 -0
  46. data/test/fixtures/app/vendor/lua/lbaselib.c +643 -0
  47. data/test/fixtures/app/vendor/lua/lcode.c +839 -0
  48. data/test/fixtures/app/vendor/lua/lcode.h +76 -0
  49. data/test/fixtures/app/vendor/lua/ldblib.c +397 -0
  50. data/test/fixtures/app/vendor/lua/ldebug.c +622 -0
  51. data/test/fixtures/app/vendor/lua/ldebug.h +33 -0
  52. data/test/fixtures/app/vendor/lua/ldo.c +516 -0
  53. data/test/fixtures/app/vendor/lua/ldo.h +57 -0
  54. data/test/fixtures/app/vendor/lua/ldump.c +164 -0
  55. data/test/fixtures/app/vendor/lua/lfunc.c +174 -0
  56. data/test/fixtures/app/vendor/lua/lfunc.h +34 -0
  57. data/test/fixtures/app/vendor/lua/lgc.c +711 -0
  58. data/test/fixtures/app/vendor/lua/lgc.h +110 -0
  59. data/test/fixtures/app/vendor/lua/liblua.a +0 -0
  60. data/test/fixtures/app/vendor/lua/linit.c +38 -0
  61. data/test/fixtures/app/vendor/lua/liolib.c +532 -0
  62. data/test/fixtures/app/vendor/lua/llex.c +461 -0
  63. data/test/fixtures/app/vendor/lua/llex.h +81 -0
  64. data/test/fixtures/app/vendor/lua/llimits.h +128 -0
  65. data/test/fixtures/app/vendor/lua/lmathlib.c +263 -0
  66. data/test/fixtures/app/vendor/lua/lmem.c +86 -0
  67. data/test/fixtures/app/vendor/lua/lmem.h +49 -0
  68. data/test/fixtures/app/vendor/lua/loadlib.c +664 -0
  69. data/test/fixtures/app/vendor/lua/lobject.c +214 -0
  70. data/test/fixtures/app/vendor/lua/lobject.h +381 -0
  71. data/test/fixtures/app/vendor/lua/lopcodes.c +102 -0
  72. data/test/fixtures/app/vendor/lua/lopcodes.h +268 -0
  73. data/test/fixtures/app/vendor/lua/loslib.c +244 -0
  74. data/test/fixtures/app/vendor/lua/lparser.c +1337 -0
  75. data/test/fixtures/app/vendor/lua/lparser.h +82 -0
  76. data/test/fixtures/app/vendor/lua/lstate.c +214 -0
  77. data/test/fixtures/app/vendor/lua/lstate.h +168 -0
  78. data/test/fixtures/app/vendor/lua/lstring.c +111 -0
  79. data/test/fixtures/app/vendor/lua/lstring.h +31 -0
  80. data/test/fixtures/app/vendor/lua/lstrlib.c +868 -0
  81. data/test/fixtures/app/vendor/lua/ltable.c +588 -0
  82. data/test/fixtures/app/vendor/lua/ltable.h +40 -0
  83. data/test/fixtures/app/vendor/lua/ltablib.c +278 -0
  84. data/test/fixtures/app/vendor/lua/ltm.c +75 -0
  85. data/test/fixtures/app/vendor/lua/ltm.h +54 -0
  86. data/test/fixtures/app/vendor/lua/lua.c +695 -0
  87. data/test/fixtures/app/vendor/lua/lua.h +385 -0
  88. data/test/fixtures/app/vendor/lua/lua_dub_helper.h +77 -0
  89. data/test/fixtures/app/vendor/lua/luac +0 -0
  90. data/test/fixtures/app/vendor/lua/luac.c +200 -0
  91. data/test/fixtures/app/vendor/lua/luaconf.h +762 -0
  92. data/test/fixtures/app/vendor/lua/lualib.h +53 -0
  93. data/test/fixtures/app/vendor/lua/lundump.c +223 -0
  94. data/test/fixtures/app/vendor/lua/lundump.h +36 -0
  95. data/test/fixtures/app/vendor/lua/lvm.c +765 -0
  96. data/test/fixtures/app/vendor/lua/lvm.h +36 -0
  97. data/test/fixtures/app/vendor/lua/lzio.c +82 -0
  98. data/test/fixtures/app/vendor/lua/lzio.h +67 -0
  99. data/test/fixtures/app/vendor/lua/matrix.h +102 -0
  100. data/test/fixtures/app/vendor/lua/print.c +227 -0
  101. data/test/fixtures/app/vendor/lua/test/README +26 -0
  102. data/test/fixtures/app/vendor/lua/test/bisect.lua +27 -0
  103. data/test/fixtures/app/vendor/lua/test/cf.lua +16 -0
  104. data/test/fixtures/app/vendor/lua/test/echo.lua +5 -0
  105. data/test/fixtures/app/vendor/lua/test/env.lua +7 -0
  106. data/test/fixtures/app/vendor/lua/test/factorial.lua +32 -0
  107. data/test/fixtures/app/vendor/lua/test/fib.lua +40 -0
  108. data/test/fixtures/app/vendor/lua/test/fibfor.lua +13 -0
  109. data/test/fixtures/app/vendor/lua/test/globals.lua +13 -0
  110. data/test/fixtures/app/vendor/lua/test/hello.lua +3 -0
  111. data/test/fixtures/app/vendor/lua/test/life.lua +111 -0
  112. data/test/fixtures/app/vendor/lua/test/luac.lua +7 -0
  113. data/test/fixtures/app/vendor/lua/test/printf.lua +7 -0
  114. data/test/fixtures/app/vendor/lua/test/readonly.lua +12 -0
  115. data/test/fixtures/app/vendor/lua/test/sieve.lua +29 -0
  116. data/test/fixtures/app/vendor/lua/test/sort.lua +66 -0
  117. data/test/fixtures/app/vendor/lua/test/table.lua +12 -0
  118. data/test/fixtures/app/vendor/lua/test/trace-calls.lua +32 -0
  119. data/test/fixtures/app/vendor/lua/test/trace-globals.lua +38 -0
  120. data/test/fixtures/app/vendor/lua/test/xd.lua +14 -0
  121. data/test/fixtures/app/xml/classdub_1_1_matrix.xml +341 -0
  122. data/test/fixtures/app/xml/classdub_1_1_t_mat.xml +252 -0
  123. data/test/fixtures/app/xml/combine.xslt +15 -0
  124. data/test/fixtures/app/xml/compound.xsd +814 -0
  125. data/test/fixtures/app/xml/dir_53661a2bdeb1d55e60581a7e15deb763.xml +12 -0
  126. data/test/fixtures/app/xml/index.xml +48 -0
  127. data/test/fixtures/app/xml/index.xsd +66 -0
  128. data/test/fixtures/app/xml/matrix_8h.xml +179 -0
  129. data/test/fixtures/app/xml/namespacedub.xml +41 -0
  130. data/test/fixtures/classcv_1_1_mat.xml +1996 -0
  131. data/test/fixtures/classcv_1_1_point__.xml +341 -0
  132. data/test/fixtures/classcv_1_1_scalar__.xml +269 -0
  133. data/test/fixtures/classcv_1_1_size__.xml +270 -0
  134. data/test/fixtures/dummy_class.cpp.erb +1 -0
  135. data/test/fixtures/dummy_function.cpp.erb +1 -0
  136. data/test/fixtures/group___magic_type.xml +406 -0
  137. data/test/fixtures/namespacecv.xml +12659 -0
  138. data/test/function_group_test.rb +24 -0
  139. data/test/function_test.rb +395 -0
  140. data/test/group_test.rb +155 -0
  141. data/test/helper.rb +34 -0
  142. data/test/klass_test.rb +422 -0
  143. data/test/lua_function_gen_test.rb +215 -0
  144. data/test/namespace_test.rb +220 -0
  145. data/test/parser_test.rb +36 -0
  146. metadata +232 -457
  147. checksums.yaml +0 -7
  148. data/lib/crystalline/metadata_fields.rb +0 -163
  149. data/lib/crystalline/t.rb +0 -59
  150. data/lib/crystalline/utils.rb +0 -65
  151. data/lib/crystalline.rb +0 -12
  152. data/lib/open_api_sdk/analytics.rb +0 -154
  153. data/lib/open_api_sdk/commissions.rb +0 -298
  154. data/lib/open_api_sdk/customers.rb +0 -709
  155. data/lib/open_api_sdk/domains.rb +0 -839
  156. data/lib/open_api_sdk/dub.rb +0 -99
  157. data/lib/open_api_sdk/embed_tokens.rb +0 -163
  158. data/lib/open_api_sdk/events.rb +0 -154
  159. data/lib/open_api_sdk/folders.rb +0 -570
  160. data/lib/open_api_sdk/links.rb +0 -1377
  161. data/lib/open_api_sdk/models/operations/accesslevel.rb +0 -18
  162. data/lib/open_api_sdk/models/operations/bulkcreatelinks_response.rb +0 -60
  163. data/lib/open_api_sdk/models/operations/bulkcreatelinks_testvariants.rb +0 -27
  164. data/lib/open_api_sdk/models/operations/bulkdeletelinks_request.rb +0 -24
  165. data/lib/open_api_sdk/models/operations/bulkdeletelinks_response.rb +0 -60
  166. data/lib/open_api_sdk/models/operations/bulkdeletelinks_responsebody.rb +0 -24
  167. data/lib/open_api_sdk/models/operations/bulkupdatelinks_requestbody.rb +0 -30
  168. data/lib/open_api_sdk/models/operations/bulkupdatelinks_response.rb +0 -60
  169. data/lib/open_api_sdk/models/operations/bulkupdatelinks_testvariants.rb +0 -27
  170. data/lib/open_api_sdk/models/operations/checkdomainstatus_request.rb +0 -24
  171. data/lib/open_api_sdk/models/operations/checkdomainstatus_response.rb +0 -60
  172. data/lib/open_api_sdk/models/operations/click.rb +0 -24
  173. data/lib/open_api_sdk/models/operations/color.rb +0 -23
  174. data/lib/open_api_sdk/models/operations/country.rb +0 -266
  175. data/lib/open_api_sdk/models/operations/createcustomer_discount.rb +0 -48
  176. data/lib/open_api_sdk/models/operations/createcustomer_link.rb +0 -39
  177. data/lib/open_api_sdk/models/operations/createcustomer_partner.rb +0 -33
  178. data/lib/open_api_sdk/models/operations/createcustomer_requestbody.rb +0 -33
  179. data/lib/open_api_sdk/models/operations/createcustomer_response.rb +0 -60
  180. data/lib/open_api_sdk/models/operations/createcustomer_responsebody.rb +0 -60
  181. data/lib/open_api_sdk/models/operations/createcustomer_type.rb +0 -18
  182. data/lib/open_api_sdk/models/operations/createdomain_requestbody.rb +0 -45
  183. data/lib/open_api_sdk/models/operations/createdomain_response.rb +0 -60
  184. data/lib/open_api_sdk/models/operations/createfolder_requestbody.rb +0 -27
  185. data/lib/open_api_sdk/models/operations/createfolder_response.rb +0 -60
  186. data/lib/open_api_sdk/models/operations/createlink_requestbody.rb +0 -145
  187. data/lib/open_api_sdk/models/operations/createlink_response.rb +0 -60
  188. data/lib/open_api_sdk/models/operations/createpartner_link.rb +0 -48
  189. data/lib/open_api_sdk/models/operations/createpartner_requestbody.rb +0 -45
  190. data/lib/open_api_sdk/models/operations/createpartner_response.rb +0 -60
  191. data/lib/open_api_sdk/models/operations/createpartner_responsebody.rb +0 -104
  192. data/lib/open_api_sdk/models/operations/createpartner_status.rb +0 -23
  193. data/lib/open_api_sdk/models/operations/createpartner_testvariants.rb +0 -27
  194. data/lib/open_api_sdk/models/operations/createpartnerlink_linkprops.rb +0 -111
  195. data/lib/open_api_sdk/models/operations/createpartnerlink_requestbody.rb +0 -39
  196. data/lib/open_api_sdk/models/operations/createpartnerlink_response.rb +0 -60
  197. data/lib/open_api_sdk/models/operations/createpartnerlink_testvariants.rb +0 -27
  198. data/lib/open_api_sdk/models/operations/createreferralsembedtoken_country.rb +0 -266
  199. data/lib/open_api_sdk/models/operations/createreferralsembedtoken_linkprops.rb +0 -111
  200. data/lib/open_api_sdk/models/operations/createreferralsembedtoken_requestbody.rb +0 -30
  201. data/lib/open_api_sdk/models/operations/createreferralsembedtoken_response.rb +0 -60
  202. data/lib/open_api_sdk/models/operations/createreferralsembedtoken_responsebody.rb +0 -27
  203. data/lib/open_api_sdk/models/operations/createreferralsembedtoken_testvariants.rb +0 -27
  204. data/lib/open_api_sdk/models/operations/createtag_requestbody.rb +0 -32
  205. data/lib/open_api_sdk/models/operations/createtag_response.rb +0 -60
  206. data/lib/open_api_sdk/models/operations/customer.rb +0 -33
  207. data/lib/open_api_sdk/models/operations/data.rb +0 -130
  208. data/lib/open_api_sdk/models/operations/deletecustomer_request.rb +0 -24
  209. data/lib/open_api_sdk/models/operations/deletecustomer_response.rb +0 -60
  210. data/lib/open_api_sdk/models/operations/deletecustomer_responsebody.rb +0 -24
  211. data/lib/open_api_sdk/models/operations/deletedomain_request.rb +0 -24
  212. data/lib/open_api_sdk/models/operations/deletedomain_response.rb +0 -60
  213. data/lib/open_api_sdk/models/operations/deletedomain_responsebody.rb +0 -24
  214. data/lib/open_api_sdk/models/operations/deletefolder_request.rb +0 -24
  215. data/lib/open_api_sdk/models/operations/deletefolder_response.rb +0 -60
  216. data/lib/open_api_sdk/models/operations/deletefolder_responsebody.rb +0 -24
  217. data/lib/open_api_sdk/models/operations/deletelink_request.rb +0 -24
  218. data/lib/open_api_sdk/models/operations/deletelink_response.rb +0 -60
  219. data/lib/open_api_sdk/models/operations/deletelink_responsebody.rb +0 -24
  220. data/lib/open_api_sdk/models/operations/deletetag_request.rb +0 -24
  221. data/lib/open_api_sdk/models/operations/deletetag_response.rb +0 -60
  222. data/lib/open_api_sdk/models/operations/deletetag_responsebody.rb +0 -24
  223. data/lib/open_api_sdk/models/operations/discount.rb +0 -48
  224. data/lib/open_api_sdk/models/operations/event.rb +0 -20
  225. data/lib/open_api_sdk/models/operations/getcustomer_discount.rb +0 -48
  226. data/lib/open_api_sdk/models/operations/getcustomer_link.rb +0 -39
  227. data/lib/open_api_sdk/models/operations/getcustomer_partner.rb +0 -33
  228. data/lib/open_api_sdk/models/operations/getcustomer_request.rb +0 -27
  229. data/lib/open_api_sdk/models/operations/getcustomer_response.rb +0 -60
  230. data/lib/open_api_sdk/models/operations/getcustomer_responsebody.rb +0 -60
  231. data/lib/open_api_sdk/models/operations/getcustomer_type.rb +0 -18
  232. data/lib/open_api_sdk/models/operations/getcustomers_link.rb +0 -39
  233. data/lib/open_api_sdk/models/operations/getcustomers_partner.rb +0 -33
  234. data/lib/open_api_sdk/models/operations/getcustomers_queryparam_sortby.rb +0 -18
  235. data/lib/open_api_sdk/models/operations/getcustomers_queryparam_sortorder.rb +0 -18
  236. data/lib/open_api_sdk/models/operations/getcustomers_request.rb +0 -51
  237. data/lib/open_api_sdk/models/operations/getcustomers_response.rb +0 -60
  238. data/lib/open_api_sdk/models/operations/getcustomers_responsebody.rb +0 -60
  239. data/lib/open_api_sdk/models/operations/getcustomers_type.rb +0 -18
  240. data/lib/open_api_sdk/models/operations/getlinkinfo_request.rb +0 -33
  241. data/lib/open_api_sdk/models/operations/getlinkinfo_response.rb +0 -60
  242. data/lib/open_api_sdk/models/operations/getlinks_request.rb +0 -66
  243. data/lib/open_api_sdk/models/operations/getlinks_response.rb +0 -60
  244. data/lib/open_api_sdk/models/operations/getlinkscount_request.rb +0 -54
  245. data/lib/open_api_sdk/models/operations/getlinkscount_response.rb +0 -60
  246. data/lib/open_api_sdk/models/operations/getqrcode_request.rb +0 -48
  247. data/lib/open_api_sdk/models/operations/getqrcode_response.rb +0 -60
  248. data/lib/open_api_sdk/models/operations/gettags_queryparam_sortby.rb +0 -18
  249. data/lib/open_api_sdk/models/operations/gettags_queryparam_sortorder.rb +0 -18
  250. data/lib/open_api_sdk/models/operations/gettags_request.rb +0 -39
  251. data/lib/open_api_sdk/models/operations/gettags_response.rb +0 -60
  252. data/lib/open_api_sdk/models/operations/getworkspace_request.rb +0 -24
  253. data/lib/open_api_sdk/models/operations/getworkspace_response.rb +0 -60
  254. data/lib/open_api_sdk/models/operations/groupby.rb +0 -37
  255. data/lib/open_api_sdk/models/operations/interval.rb +0 -25
  256. data/lib/open_api_sdk/models/operations/level.rb +0 -20
  257. data/lib/open_api_sdk/models/operations/link.rb +0 -48
  258. data/lib/open_api_sdk/models/operations/linkprops.rb +0 -111
  259. data/lib/open_api_sdk/models/operations/listcommissions_queryparam_interval.rb +0 -25
  260. data/lib/open_api_sdk/models/operations/listcommissions_queryparam_sortby.rb +0 -18
  261. data/lib/open_api_sdk/models/operations/listcommissions_queryparam_sortorder.rb +0 -18
  262. data/lib/open_api_sdk/models/operations/listcommissions_request.rb +0 -60
  263. data/lib/open_api_sdk/models/operations/listcommissions_response.rb +0 -60
  264. data/lib/open_api_sdk/models/operations/listcommissions_responsebody.rb +0 -51
  265. data/lib/open_api_sdk/models/operations/listcommissions_status.rb +0 -23
  266. data/lib/open_api_sdk/models/operations/listcommissions_type.rb +0 -20
  267. data/lib/open_api_sdk/models/operations/listdomains_request.rb +0 -33
  268. data/lib/open_api_sdk/models/operations/listdomains_response.rb +0 -60
  269. data/lib/open_api_sdk/models/operations/listevents_request.rb +0 -138
  270. data/lib/open_api_sdk/models/operations/listevents_response.rb +0 -60
  271. data/lib/open_api_sdk/models/operations/listfolders_request.rb +0 -30
  272. data/lib/open_api_sdk/models/operations/listfolders_response.rb +0 -60
  273. data/lib/open_api_sdk/models/operations/mode.rb +0 -18
  274. data/lib/open_api_sdk/models/operations/order.rb +0 -20
  275. data/lib/open_api_sdk/models/operations/partner.rb +0 -45
  276. data/lib/open_api_sdk/models/operations/paymentprocessor.rb +0 -21
  277. data/lib/open_api_sdk/models/operations/queryparam_event.rb +0 -19
  278. data/lib/open_api_sdk/models/operations/queryparam_groupby.rb +0 -19
  279. data/lib/open_api_sdk/models/operations/queryparam_interval.rb +0 -25
  280. data/lib/open_api_sdk/models/operations/queryparam_sortby.rb +0 -17
  281. data/lib/open_api_sdk/models/operations/queryparam_sortorder.rb +0 -18
  282. data/lib/open_api_sdk/models/operations/queryparam_status.rb +0 -23
  283. data/lib/open_api_sdk/models/operations/queryparam_trigger.rb +0 -18
  284. data/lib/open_api_sdk/models/operations/registerdomain_requestbody.rb +0 -24
  285. data/lib/open_api_sdk/models/operations/registerdomain_response.rb +0 -60
  286. data/lib/open_api_sdk/models/operations/registerdomain_responsebody.rb +0 -30
  287. data/lib/open_api_sdk/models/operations/requestbody.rb +0 -145
  288. data/lib/open_api_sdk/models/operations/responsebody.rb +0 -33
  289. data/lib/open_api_sdk/models/operations/retrieveanalytics_request.rb +0 -126
  290. data/lib/open_api_sdk/models/operations/retrieveanalytics_response.rb +0 -60
  291. data/lib/open_api_sdk/models/operations/retrievelinks_request.rb +0 -27
  292. data/lib/open_api_sdk/models/operations/retrievelinks_response.rb +0 -60
  293. data/lib/open_api_sdk/models/operations/retrievepartneranalytics_queryparam_interval.rb +0 -25
  294. data/lib/open_api_sdk/models/operations/retrievepartneranalytics_request.rb +0 -42
  295. data/lib/open_api_sdk/models/operations/retrievepartneranalytics_response.rb +0 -60
  296. data/lib/open_api_sdk/models/operations/sale.rb +0 -36
  297. data/lib/open_api_sdk/models/operations/sort.rb +0 -22
  298. data/lib/open_api_sdk/models/operations/sortby.rb +0 -20
  299. data/lib/open_api_sdk/models/operations/sortorder.rb +0 -18
  300. data/lib/open_api_sdk/models/operations/status.rb +0 -20
  301. data/lib/open_api_sdk/models/operations/testvariants.rb +0 -27
  302. data/lib/open_api_sdk/models/operations/tracklead_requestbody.rb +0 -48
  303. data/lib/open_api_sdk/models/operations/tracklead_response.rb +0 -60
  304. data/lib/open_api_sdk/models/operations/tracklead_responsebody.rb +0 -27
  305. data/lib/open_api_sdk/models/operations/tracksale_customer.rb +0 -36
  306. data/lib/open_api_sdk/models/operations/tracksale_requestbody.rb +0 -45
  307. data/lib/open_api_sdk/models/operations/tracksale_response.rb +0 -60
  308. data/lib/open_api_sdk/models/operations/tracksale_responsebody.rb +0 -30
  309. data/lib/open_api_sdk/models/operations/trigger.rb +0 -18
  310. data/lib/open_api_sdk/models/operations/type.rb +0 -20
  311. data/lib/open_api_sdk/models/operations/updatecommission_request.rb +0 -27
  312. data/lib/open_api_sdk/models/operations/updatecommission_requestbody.rb +0 -33
  313. data/lib/open_api_sdk/models/operations/updatecommission_response.rb +0 -60
  314. data/lib/open_api_sdk/models/operations/updatecommission_responsebody.rb +0 -51
  315. data/lib/open_api_sdk/models/operations/updatecommission_status.rb +0 -23
  316. data/lib/open_api_sdk/models/operations/updatecommission_type.rb +0 -20
  317. data/lib/open_api_sdk/models/operations/updatecustomer_discount.rb +0 -48
  318. data/lib/open_api_sdk/models/operations/updatecustomer_link.rb +0 -39
  319. data/lib/open_api_sdk/models/operations/updatecustomer_partner.rb +0 -33
  320. data/lib/open_api_sdk/models/operations/updatecustomer_request.rb +0 -30
  321. data/lib/open_api_sdk/models/operations/updatecustomer_requestbody.rb +0 -33
  322. data/lib/open_api_sdk/models/operations/updatecustomer_response.rb +0 -60
  323. data/lib/open_api_sdk/models/operations/updatecustomer_responsebody.rb +0 -60
  324. data/lib/open_api_sdk/models/operations/updatecustomer_type.rb +0 -18
  325. data/lib/open_api_sdk/models/operations/updatedomain_request.rb +0 -27
  326. data/lib/open_api_sdk/models/operations/updatedomain_requestbody.rb +0 -45
  327. data/lib/open_api_sdk/models/operations/updatedomain_response.rb +0 -60
  328. data/lib/open_api_sdk/models/operations/updatefolder_accesslevel.rb +0 -18
  329. data/lib/open_api_sdk/models/operations/updatefolder_request.rb +0 -27
  330. data/lib/open_api_sdk/models/operations/updatefolder_requestbody.rb +0 -27
  331. data/lib/open_api_sdk/models/operations/updatefolder_response.rb +0 -60
  332. data/lib/open_api_sdk/models/operations/updatelink_request.rb +0 -27
  333. data/lib/open_api_sdk/models/operations/updatelink_requestbody.rb +0 -139
  334. data/lib/open_api_sdk/models/operations/updatelink_response.rb +0 -60
  335. data/lib/open_api_sdk/models/operations/updatelink_testvariants.rb +0 -27
  336. data/lib/open_api_sdk/models/operations/updatetag_color.rb +0 -23
  337. data/lib/open_api_sdk/models/operations/updatetag_request.rb +0 -27
  338. data/lib/open_api_sdk/models/operations/updatetag_requestbody.rb +0 -32
  339. data/lib/open_api_sdk/models/operations/updatetag_response.rb +0 -60
  340. data/lib/open_api_sdk/models/operations/updateworkspace_request.rb +0 -27
  341. data/lib/open_api_sdk/models/operations/updateworkspace_requestbody.rb +0 -36
  342. data/lib/open_api_sdk/models/operations/updateworkspace_response.rb +0 -60
  343. data/lib/open_api_sdk/models/operations/upsertlink_requestbody.rb +0 -145
  344. data/lib/open_api_sdk/models/operations/upsertlink_response.rb +0 -60
  345. data/lib/open_api_sdk/models/operations/upsertlink_testvariants.rb +0 -27
  346. data/lib/open_api_sdk/models/operations/upsertpartnerlink_linkprops.rb +0 -111
  347. data/lib/open_api_sdk/models/operations/upsertpartnerlink_requestbody.rb +0 -39
  348. data/lib/open_api_sdk/models/operations/upsertpartnerlink_response.rb +0 -60
  349. data/lib/open_api_sdk/models/operations/upsertpartnerlink_testvariants.rb +0 -27
  350. data/lib/open_api_sdk/models/operations.rb +0 -198
  351. data/lib/open_api_sdk/models/shared/accesslevel.rb +0 -18
  352. data/lib/open_api_sdk/models/shared/badrequest.rb +0 -24
  353. data/lib/open_api_sdk/models/shared/code.rb +0 -17
  354. data/lib/open_api_sdk/models/shared/color.rb +0 -23
  355. data/lib/open_api_sdk/models/shared/conflict.rb +0 -24
  356. data/lib/open_api_sdk/models/shared/conflict_code.rb +0 -17
  357. data/lib/open_api_sdk/models/shared/conflict_error.rb +0 -30
  358. data/lib/open_api_sdk/models/shared/continentcode.rb +0 -23
  359. data/lib/open_api_sdk/models/shared/countrycode.rb +0 -266
  360. data/lib/open_api_sdk/models/shared/domains.rb +0 -30
  361. data/lib/open_api_sdk/models/shared/domainschema.rb +0 -63
  362. data/lib/open_api_sdk/models/shared/error.rb +0 -30
  363. data/lib/open_api_sdk/models/shared/folderschema.rb +0 -39
  364. data/lib/open_api_sdk/models/shared/forbidden.rb +0 -24
  365. data/lib/open_api_sdk/models/shared/forbidden_code.rb +0 -17
  366. data/lib/open_api_sdk/models/shared/forbidden_error.rb +0 -30
  367. data/lib/open_api_sdk/models/shared/geo.rb +0 -771
  368. data/lib/open_api_sdk/models/shared/internalservererror.rb +0 -24
  369. data/lib/open_api_sdk/models/shared/internalservererror_code.rb +0 -17
  370. data/lib/open_api_sdk/models/shared/internalservererror_error.rb +0 -30
  371. data/lib/open_api_sdk/models/shared/inviteexpired.rb +0 -24
  372. data/lib/open_api_sdk/models/shared/inviteexpired_code.rb +0 -17
  373. data/lib/open_api_sdk/models/shared/inviteexpired_error.rb +0 -30
  374. data/lib/open_api_sdk/models/shared/linkgeotargeting.rb +0 -771
  375. data/lib/open_api_sdk/models/shared/linkschema.rb +0 -172
  376. data/lib/open_api_sdk/models/shared/notfound.rb +0 -24
  377. data/lib/open_api_sdk/models/shared/notfound_code.rb +0 -17
  378. data/lib/open_api_sdk/models/shared/notfound_error.rb +0 -30
  379. data/lib/open_api_sdk/models/shared/plan.rb +0 -24
  380. data/lib/open_api_sdk/models/shared/ratelimitexceeded.rb +0 -24
  381. data/lib/open_api_sdk/models/shared/ratelimitexceeded_code.rb +0 -17
  382. data/lib/open_api_sdk/models/shared/ratelimitexceeded_error.rb +0 -30
  383. data/lib/open_api_sdk/models/shared/registereddomain.rb +0 -30
  384. data/lib/open_api_sdk/models/shared/role.rb +0 -18
  385. data/lib/open_api_sdk/models/shared/security.rb +0 -24
  386. data/lib/open_api_sdk/models/shared/tagschema.rb +0 -30
  387. data/lib/open_api_sdk/models/shared/testvariants.rb +0 -27
  388. data/lib/open_api_sdk/models/shared/type.rb +0 -18
  389. data/lib/open_api_sdk/models/shared/unauthorized.rb +0 -24
  390. data/lib/open_api_sdk/models/shared/unauthorized_code.rb +0 -17
  391. data/lib/open_api_sdk/models/shared/unauthorized_error.rb +0 -30
  392. data/lib/open_api_sdk/models/shared/unprocessableentity.rb +0 -24
  393. data/lib/open_api_sdk/models/shared/unprocessableentity_code.rb +0 -17
  394. data/lib/open_api_sdk/models/shared/unprocessableentity_error.rb +0 -30
  395. data/lib/open_api_sdk/models/shared/users.rb +0 -27
  396. data/lib/open_api_sdk/models/shared/workspaceschema.rb +0 -123
  397. data/lib/open_api_sdk/models/shared.rb +0 -55
  398. data/lib/open_api_sdk/partners.rb +0 -701
  399. data/lib/open_api_sdk/qr_codes.rb +0 -151
  400. data/lib/open_api_sdk/sdk_hooks/hooks.rb +0 -103
  401. data/lib/open_api_sdk/sdk_hooks/registration.rb +0 -35
  402. data/lib/open_api_sdk/sdk_hooks/types.rb +0 -152
  403. data/lib/open_api_sdk/sdkconfiguration.rb +0 -75
  404. data/lib/open_api_sdk/tags.rb +0 -570
  405. data/lib/open_api_sdk/track.rb +0 -302
  406. data/lib/open_api_sdk/utils/retries.rb +0 -95
  407. data/lib/open_api_sdk/utils/utils.rb +0 -738
  408. data/lib/open_api_sdk/workspaces.rb +0 -301
@@ -1,738 +0,0 @@
1
- # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
-
3
- # typed: true
4
- # frozen_string_literal: true
5
-
6
- require 'date'
7
- require 'sorbet-runtime'
8
- require 'base64'
9
-
10
- module OpenApiSDK
11
- module Utils
12
- extend T::Sig
13
-
14
- sig { params(val: Object, primitives: T::Boolean).returns(Object) }
15
- def self.val_to_string(val, primitives: true)
16
- if val.is_a? T::Enum
17
- val.serialize
18
- elsif val.is_a? DateTime
19
- val.strftime('%Y-%m-%dT%H:%M:%S.%NZ')
20
- elsif primitives
21
- val.to_s
22
- else
23
- val
24
- end
25
- end
26
-
27
- sig { params(headers_params: ::Crystalline::FieldAugmented, gbls: T.nilable(T::Hash[Symbol, T::Hash[Symbol, T::Hash[Symbol, Object]]])).returns(T::Hash[Symbol, String]) }
28
- def self.get_headers(headers_params, gbls = nil)
29
- return {} if headers_params.nil?
30
-
31
- headers = {}
32
- param_fields = headers_params.fields
33
- param_fields.each do |f|
34
- metadata = f.metadata[:header]
35
- next if metadata.nil?
36
-
37
- value = _populate_from_globals(f.name, headers_params&.send(f.name), 'header', gbls)
38
- value = _serialize_header(metadata.fetch(:explode, false), value)
39
- headers[metadata.fetch(:field_name, f.name)] = value if !value.empty?
40
- end
41
- headers
42
- end
43
-
44
- sig { params(explode: T::Boolean, obj: Object).returns(String) }
45
- def self._serialize_header(explode, obj)
46
- return '' if obj.nil?
47
-
48
- if obj.respond_to? :fields
49
- items = []
50
- obj_fields = obj.fields
51
- obj_fields.each do |obj_field|
52
- obj_param_metadata = obj_field.metadata[:header]
53
- next if obj_param_metadata.nil?
54
-
55
- obj_field_name = obj_param_metadata.fetch(:field_name, obj_field.name)
56
- next if obj_field_name == ''
57
-
58
- val = obj.send(obj_field.name)
59
- next if val.nil?
60
-
61
- if explode
62
- items.append("#{obj_field_name}=#{val_to_string(val)}")
63
- else
64
- items.append(obj_field_name)
65
- items.append(val_to_string(val))
66
- end
67
- end
68
-
69
- items.join(',') if !items.empty?
70
- elsif obj.is_a? Hash
71
- items = []
72
- obj.each do |key, value|
73
- next if value.nil?
74
-
75
- if explode
76
- items.append("#{key}=#{val_to_string(value)}")
77
- else
78
- items.append(key)
79
- items.append(val_to_string(value))
80
- end
81
- end
82
-
83
- items.join(',') if !items.empty?
84
- elsif obj.is_a? Array
85
- items = obj.filter { |v| !v.nil? }.map { |v| val_to_string(v) }.join(',')
86
- else
87
- val_to_string(obj)
88
- end
89
- end
90
-
91
- sig do
92
- params(field_name: String, explode: T::Boolean, obj: Object, delimiter: String,
93
- get_field_name_lambda: T.proc.params(obj_field: ::Crystalline::MetadataFields::Field).returns(String))
94
- .returns(T::Hash[Symbol, T::Array[String]])
95
- end
96
- def self._populate_form(field_name, explode, obj, delimiter, &get_field_name_lambda)
97
- params = {}
98
-
99
- return params if obj.nil?
100
-
101
- if obj.respond_to? :fields
102
- items = []
103
- obj_fields = obj.fields
104
- obj_fields.each do |obj_field|
105
- obj_field_name = get_field_name_lambda.call(obj_field)
106
- next if obj_field_name == ''
107
-
108
- val = obj.send(obj_field.name.to_sym)
109
- next if val.nil?
110
-
111
- if explode
112
- params[obj_field_name] = [val_to_string(val)]
113
- else
114
- items.append("#{obj_field_name}#{delimiter}#{val_to_string(val)}")
115
- end
116
- end
117
-
118
- params[field_name] = [items.join(delimiter)] if !items.empty?
119
- elsif obj.is_a? Hash
120
- items = []
121
- obj.each do |key, value|
122
- next if value.nil?
123
-
124
- if explode
125
- params[key] = val_to_string(value)
126
- else
127
- items.append("#{key}#{delimiter}#{val_to_string(value)}")
128
- end
129
- end
130
- params[field_name] = [items.join(delimiter)] if !items.empty?
131
-
132
- elsif obj.is_a? Array
133
- items = []
134
- obj.each do |value|
135
- next if value.nil?
136
-
137
- if explode
138
- params[field_name] = [] if !params.key? field_name
139
-
140
- params[field_name].append(val_to_string(value))
141
- else
142
- items.append(val_to_string(value))
143
- end
144
- end
145
- params[field_name] = items.map(&:to_s).join(delimiter) if !items.empty?
146
-
147
- else
148
- params[field_name] = val_to_string(obj)
149
- end
150
- params
151
- end
152
-
153
- sig do
154
- params(metadata: T::Hash[Symbol, String], field_name: String, obj: Object)
155
- .returns(T::Hash[Symbol, T::Array[String]])
156
- end
157
- def self._get_deep_object_query_params(metadata, field_name, obj)
158
- params = {}
159
-
160
- return params if obj.nil?
161
-
162
- if obj.respond_to? :fields
163
- obj_fields = obj.fields
164
- obj_fields.each do |obj_field|
165
- obj_param_metadata = obj_field.metadata[:query_param]
166
- next if obj_param_metadata.nil?
167
-
168
- val = obj.send(obj_field.name)
169
- next if val.nil?
170
-
171
- key = "#{metadata.fetch(:field_name, field_name)}[#{obj_param_metadata.fetch(:field_name, obj_field.name)}]"
172
- if val.is_a? Array
173
- val.each do |v|
174
- next if v.nil?
175
-
176
- params[key] = [] if !params.include? key
177
-
178
- params[key] << val_to_string(v)
179
- end
180
- else
181
- params[key] = [val_to_string(val)]
182
- end
183
- end
184
- elsif obj.is_a? Hash
185
- obj.each do |key, value|
186
- next if value.nil?
187
-
188
- param_key = "#{metadata.fetch(:field_name, field_name)}[#{key}]"
189
- if value.is_a? Array
190
- value.each do |val|
191
- next if val.nil?
192
-
193
- params[param_key] = [] if !params.include? param_key
194
-
195
- params[param_key].append(val_to_string(val))
196
- end
197
- else
198
- params[param_key] = [val_to_string(value)]
199
- end
200
- end
201
- end
202
- params
203
- end
204
-
205
- sig do
206
- params(metadata: T::Hash[Symbol, String], field_name: String, obj: Object)
207
- .returns(T::Hash[Symbol, T::Array[String]])
208
- end
209
- def self._get_serialized_params(metadata, field_name, obj)
210
- params = {}
211
-
212
- serialization = metadata.fetch(:serialization, '')
213
- params[metadata.fetch(:field_name, field_name)] = obj.to_json if serialization == 'json'
214
-
215
- params
216
- end
217
-
218
- sig do
219
- params(metadata: T::Hash[Symbol, String], field_name: String, obj: Object, delimiter: String)
220
- .returns(T::Hash[Symbol, T::Array[String]])
221
- end
222
- def self._get_delimited_query_params(metadata, field_name, obj, delimiter)
223
- get_query_param_field_name = lambda do |obj_field|
224
- obj_param_metadata = obj_field.metadata[:query_param]
225
-
226
- return '' if obj_param_metadata.nil?
227
-
228
- return obj_param_metadata.fetch(:field_name, obj_field.name)
229
- end
230
-
231
- _populate_form(field_name, metadata.fetch(:explode, true), obj, delimiter, &get_query_param_field_name)
232
- end
233
-
234
- sig { params(clazz: Class, query_params: ::Crystalline::FieldAugmented, gbls: T.nilable(T::Hash[Symbol, T::Hash[Symbol, T::Hash[Symbol, Object]]])).returns(T::Hash[Symbol, T::Array[String]]) }
235
- def self.get_query_params(clazz, query_params, gbls = nil)
236
- params = {}
237
- param_fields = clazz.fields
238
- param_fields.each do |f|
239
- request_metadata = f.metadata[:request]
240
- next if !request_metadata.nil?
241
-
242
- metadata = f.metadata[:query_param]
243
- next if metadata.nil?
244
-
245
- param_name = f.name
246
- value = query_params&.send(param_name.to_sym)
247
- value = _populate_from_globals(param_name, value, 'queryParam', gbls)
248
-
249
- f_name = metadata[:field_name]
250
- serialization = metadata.fetch(:serialization, '')
251
- if serialization != ''
252
- params = params.merge _get_serialized_params(
253
- metadata, f_name, value
254
- )
255
- else
256
- style = metadata.fetch(:style, 'form')
257
- case style
258
- when 'deepObject'
259
- params = params.merge _get_deep_object_query_params(
260
- metadata, f_name, value
261
- )
262
- when 'form'
263
- params = params.merge _get_delimited_query_params(
264
- metadata, f_name, value, ','
265
- )
266
- when 'pipeDelimited'
267
- params = params.merge _get_delimited_query_params(
268
- metadata, f_name, value, '|'
269
- )
270
- else
271
- raise StandardError, 'not yet implemented'
272
- end
273
- end
274
- end
275
- params
276
- end
277
-
278
- sig { params(clazz: Class, server_url: String, path: String, path_params: ::Crystalline::FieldAugmented, gbls: T.nilable(T::Hash[Symbol, T::Hash[Symbol, T::Hash[Symbol, Object]]])).returns(String) }
279
- def self.generate_url(clazz, server_url, path, path_params, gbls = nil)
280
- clazz.fields.each do |f|
281
- param_metadata = f.metadata[:path_param]
282
- next if param_metadata.nil?
283
-
284
- if param_metadata.fetch(:style, 'simple') == 'simple'
285
- param = path_params.send(f.name) if !path_params.nil?
286
- param = _populate_from_globals(f.name, param, 'pathParam', gbls)
287
- end
288
-
289
- f_name = param_metadata.fetch(:field_name, f.name)
290
- serialization = param_metadata.fetch(:serialization, '')
291
- if serialization != ''
292
- serialized_params = _get_serialized_params(param_metadata, f_name, param)
293
- serialized_params.each do |k, v|
294
- path = path.sub("{#{k}}", v)
295
- end
296
- else
297
- if param.is_a? Array
298
- pp_vals = []
299
- param.each do |pp_val|
300
- pp_vals.append(pp_val.to_s)
301
- end
302
- path = path.sub("{#{param_metadata.fetch(:field_name, f.name)}}", pp_vals.join(','))
303
- elsif param.is_a? Hash
304
- pp_vals = []
305
- param.each do |pp_key, pp_val|
306
- value = val_to_string(pp_val)
307
-
308
- if param_metadata.fetch(:explode, false)
309
- pp_vals.append("#{pp_key}=#{value}")
310
- else
311
- pp_vals.append("#{pp_key},#{value}")
312
- end
313
- end
314
- path = path.sub("{#{param_metadata.fetch(:field_name, f.name)}}", pp_vals.join(','))
315
- elsif !(param.is_a?(String) || param.is_a?(Integer) ||
316
- param.is_a?(Float) || param.is_a?(Complex) || param.is_a?(TrueClass) ||
317
- param.is_a?(FalseClass))
318
- pp_vals = []
319
- attrs = param.fields.filter { |field| field.name && param.respond_to?(field.name.to_sym) }.map(&:name)
320
- attrs.each do |attr|
321
- field = param.field(attr)
322
-
323
- param_value_metadata = field.metadata[:path_param]
324
-
325
- next if param_value_metadata.nil?
326
-
327
- parm_name = param_value_metadata.fetch(:field_name, f.name)
328
-
329
- param_field_val = param.send(attr)
330
-
331
- if param_field_val.is_a? T::Enum
332
- param_field_val = param_field_val.serialize
333
- elsif param_field_val.is_a? DateTime
334
- param_field_val = param_field_val.strftime('%Y-%m-%dT%H:%M:%S.%NZ')
335
- end
336
- if !field.nil? && T::Utils::Nilable.is_union_with_nilclass(field.type) && param_field_val.nil?
337
- next
338
- elsif param_metadata.fetch(:explode, false)
339
- pp_vals.append("#{parm_name}=#{param_field_val}")
340
- else
341
- pp_vals.append("#{parm_name},#{param_field_val}")
342
- end
343
- end
344
- path = path.sub("{#{param_metadata.fetch(:field_name, f.name)}}", pp_vals.join(','))
345
- else
346
- path = path.sub("{#{param_metadata.fetch(:field_name, f.name)}}", param.to_s)
347
- end
348
- end
349
- end
350
-
351
- server_url.delete_suffix('/') + path
352
- end
353
-
354
- sig { params(status: Integer).returns(T::Boolean) }
355
- def self.error_status?(status)
356
- status_major = status / 100
357
- return true if status_major == 4
358
- return true if status_major == 5
359
-
360
- false
361
- end
362
-
363
- sig { params(content_type: String, pattern: String).returns(T::Boolean) }
364
- def self.match_content_type(content_type, pattern)
365
- return true if content_type == pattern || ['*', '*/*'].include?(pattern)
366
-
367
- pieces = content_type.split(';')
368
- pieces.each do |piece|
369
- return true if pattern == piece.strip
370
- end
371
-
372
- false
373
- end
374
-
375
- sig { params(req: Faraday::Request, security: Object).void }
376
- def self.configure_request_security(req, security)
377
- return if security.nil?
378
- sec_fields = security.fields
379
- sec_fields.each do |sec_field|
380
- value = security.send(sec_field.name)
381
- next if value.nil?
382
-
383
- metadata = sec_field.metadata[:security]
384
- next if metadata.nil?
385
-
386
- _parse_security_option(req, value) if metadata[:option]
387
-
388
- if metadata[:scheme]
389
- # Special case for basic auth which could be a flattened struct
390
- if metadata[:sub_type] == 'basic' && !value.respond_to?(:fields)
391
- _parse_security_scheme(req, metadata, security)
392
- else
393
- _parse_security_scheme(req, metadata, value)
394
- end
395
- end
396
- end
397
- end
398
-
399
- sig { params(req: Faraday::Request, option: Object).void }
400
- def self._parse_security_option(req, option)
401
- opt_fields = option.fields
402
- opt_fields.each do |opt_field|
403
- metadata = opt_field.metadata[:security]
404
- next if metadata.nil? || !metadata.include?(:scheme)
405
-
406
- _parse_security_scheme(req, metadata, option.send(opt_field.name))
407
- end
408
- end
409
-
410
- sig { params(req: Faraday::Request, scheme_metadata: T::Hash[Symbol, String], scheme: Object).void }
411
- def self._parse_security_scheme(req, scheme_metadata, scheme)
412
- scheme_type = scheme_metadata[:type]
413
- sub_type = scheme_metadata[:sub_type]
414
-
415
- if scheme.respond_to? :fields
416
- if scheme_type == 'http' && sub_type == 'basic'
417
- _parse_basic_auth_scheme(req, scheme)
418
- return
419
- end
420
-
421
- scheme_fields = scheme.fields
422
- scheme_fields.each do |field|
423
- metadata = field.metadata[:security]
424
- next if metadata.nil? || metadata[:field_name].nil?
425
-
426
- value = scheme.send(field.name)
427
- _parse_security_scheme_value(req, scheme_metadata, metadata, value)
428
- end
429
- else
430
- _parse_security_scheme_value(req, scheme_metadata, scheme_metadata, scheme)
431
- end
432
- end
433
-
434
- sig do
435
- params(req: Faraday::Request, scheme_metadata: T::Hash[Symbol, String],
436
- security_metadata: T::Hash[Symbol, String], value: Object).void
437
- end
438
- def self._parse_security_scheme_value(req, scheme_metadata, security_metadata, value)
439
- scheme_type = scheme_metadata[:type]
440
- sub_type = scheme_metadata[:sub_type]
441
-
442
- header_name = security_metadata[:field_name]
443
-
444
- case scheme_type
445
- when 'apiKey'
446
- case sub_type
447
- when 'header'
448
- req.headers[header_name] = value
449
- when 'query'
450
- req.params[header_name] = value
451
- when 'cookie'
452
- req.cookies[header_name] = value
453
- else
454
- raise StandardError, 'not supported'
455
- end
456
- when 'openIdConnect'
457
- req.headers[header_name] = value.downcase.start_with?('bearer ') ? value : "Bearer #{value}"
458
- when 'oauth2'
459
- req.headers[header_name] = value.downcase.start_with?('bearer ') ? value : "Bearer #{value}"
460
- when 'http'
461
- if sub_type == 'bearer'
462
- req.headers[header_name] = value.downcase.start_with?('bearer ') ? value : "Bearer #{value}"
463
- else
464
- raise StandardError, 'not supported'
465
- end
466
- else
467
- raise StandardError, 'not supported'
468
- end
469
- end
470
-
471
- sig { params(req: Faraday::Request, scheme: ::Crystalline::FieldAugmented).void }
472
- def self._parse_basic_auth_scheme(req, scheme)
473
- username, password = ''
474
-
475
- scheme_fields = scheme.fields
476
- scheme_fields.each do |scheme_field|
477
- metadata = scheme_field.metadata[:security]
478
- next if metadata.nil? || !metadata.include?(:field_name)
479
-
480
- field_name = metadata[:field_name]
481
- value = scheme.send(scheme_field.name)
482
-
483
- username = value if field_name == 'username'
484
- password = value if field_name == 'password'
485
- end
486
-
487
- data = "#{username}:#{password}".encode
488
- # Use strict_encode, because encode adds newlines after 60 chars
489
- # https://docs.ruby-lang.org/en/3.0/Base64.html#method-i-encode64
490
- req.headers['Authorization'] = "Basic #{Base64.strict_encode64(data)}"
491
- end
492
-
493
- sig { params(optional: T::Boolean).returns(T.proc.params(s: String).returns(DateTime)) }
494
- def self.datetime_from_iso_format(optional)
495
- lambda do |s|
496
- return nil if optional && s.nil?
497
-
498
- return DateTime.strptime(s, '%Y-%m-%dT%H:%M:%S.%NZ')
499
- end
500
- end
501
-
502
- sig { params(optional: T::Boolean).returns(T.proc.params(s: String).returns(Date)) }
503
- def self.date_from_iso_format(optional)
504
- lambda do |s|
505
- return nil if optional && s.nil?
506
-
507
- return Date.iso8601(s)
508
- end
509
- end
510
-
511
- sig do
512
- params(enum_type: T.class_of(T::Enum), optional: T::Boolean)
513
- .returns(T.proc.params(s: String).returns(T::Enum))
514
- end
515
- def self.enum_from_string(enum_type, optional)
516
- lambda do |s|
517
- return nil if optional && s.nil?
518
-
519
- return enum_type.deserialize(s)
520
- end
521
- end
522
-
523
- sig { params(name: String).returns(T.proc.returns(String)) }
524
- def self.field_name(name)
525
- proc { |_, field_name = name| field_name }
526
- end
527
-
528
- SERIALIZATION_METHOD_TO_CONTENT_TYPE = {
529
- 'json': 'application/json',
530
- 'form': 'application/x-www-form-urlencoded',
531
- 'multipart': 'multipart/form-data',
532
- 'raw': 'application/octet-stream',
533
- 'string': 'text/plain'
534
- }.freeze
535
-
536
- sig do
537
- params(request: Object, request_field_name: Symbol, serialization_method: Symbol)
538
- .returns([String, Object, Object])
539
- end
540
- def self.serialize_request_body(request, request_field_name, serialization_method)
541
- return ['', nil, nil] if request.nil?
542
-
543
- return serialize_content_type(request_field_name, SERIALIZATION_METHOD_TO_CONTENT_TYPE[serialization_method], request) if !request.respond_to?(:fields) || !request.respond_to?(request_field_name)
544
-
545
- request_val = request.send(request_field_name)
546
-
547
- request_fields = request.fields
548
- request_metadata = nil
549
- request_fields.each do |f|
550
- if f.name == request_field_name
551
- request_metadata = f.metadata[:request]
552
- break
553
- end
554
- end
555
- raise StandardError, 'invalid request type' if request_metadata.nil?
556
-
557
- serialize_content_type(
558
- :request, request_metadata.fetch(:media_type, 'application/octet-stream'), request_val
559
- )
560
- end
561
-
562
- sig do
563
- params(field_name: Symbol, media_type: String, request: Object)
564
- .returns([String, Object, T.nilable(T::Array[T::Array[Object]])])
565
- end
566
- def self.serialize_content_type(field_name, media_type, request)
567
- return media_type, ::Crystalline.marshal_json_complex(request), nil if media_type.match('(application|text)\/.*?\+*json.*')
568
- return serialize_multipart_form(media_type, request) if media_type.match('multipart\/.*')
569
- return media_type, serialize_form_data(field_name, request), nil if media_type.match('application\/x-www-form-urlencoded.*')
570
- return media_type, request, nil if request.is_a?(String) || request.is_a?(Array)
571
-
572
- raise StandardError, "invalid request body type #{type(request)} for mediaType {metadata['media_type']}"
573
- end
574
-
575
- sig { params(field: ::Crystalline::MetadataFields::Field, data_class: ::Crystalline::FieldAugmented).returns(Object) }
576
- def self.parse_field(field, data_class)
577
- field_metadata = field.metadata[:metadata_string]
578
- return nil if field_metadata.nil?
579
-
580
- field_value = data_class.send(field.name)
581
- return nil if field_value.nil?
582
-
583
- field_value
584
- end
585
-
586
- sig { params(media_type: String, request: ::Crystalline::FieldAugmented).returns([String, Object, T::Array[T::Array[Object]]]) }
587
- def self.serialize_multipart_form(media_type, request)
588
- form = []
589
- request_fields = request.fields
590
- request_fields.each do |field|
591
- val = request.send(field.name)
592
- next if val.nil?
593
-
594
- field_metadata = field.metadata[:multipart_form]
595
- next if field_metadata.nil?
596
-
597
- if field_metadata[:file] == true
598
- file_fields = val.fields
599
-
600
- file_name = ''
601
- field_name = field_metadata[:field_name]
602
- content = nil
603
-
604
- file_fields.each do |file_field|
605
- file_metadata = file_field.metadata[:multipart_form]
606
- next if file_metadata.nil?
607
-
608
- if file_metadata[:content] == true
609
- content = val.send(file_field.name)
610
- else
611
- file_name = val.send(file_field.name)
612
- end
613
- end
614
- raise StandardError, 'invalid multipart/form-data file' if file_name == '' || content == nil?
615
-
616
- form.append([field_name, [file_name, content]])
617
- elsif field_metadata[:json] == true
618
- to_append = [
619
- field_metadata.fetch(:field_name, field.name), [
620
- nil, ::Crystalline.marshal_json_complex(val), 'application/json'
621
- ]
622
- ]
623
- form.append(to_append)
624
- else
625
- field_name = field_metadata.fetch(
626
- :field_name, field.name
627
- )
628
- if val.is_a? Array
629
- val.each do |value|
630
- next if value.nil?
631
-
632
- form.append(
633
- ["#{field_name}[]", [nil, val_to_string(value)]]
634
- )
635
- end
636
- else
637
- form.append([field_name, [nil, val_to_string(val)]])
638
- end
639
- end
640
- end
641
- [media_type, nil, form]
642
- end
643
-
644
- sig do
645
- params(form: T::Array[T::Array[T.any(String, T::Array[T.nilable(String)])]])
646
- .returns(T::Hash[Symbol, Object])
647
- end
648
- def self.encode_form(form)
649
- payload = {}
650
- form.each do |field_name, field|
651
- if field.length == 2
652
- if field[0].nil?
653
- payload[field_name] = field[1]
654
- else
655
- payload[field_name] = Faraday::Multipart::FilePart.new(field[0], '', field[1])
656
- end
657
- elsif field.length == 3
658
- payload[field_name] = Faraday::Multipart::ParamPart.new(field[1].to_json, field[2])
659
- end
660
- end
661
- payload
662
- end
663
-
664
- sig do
665
- params(field_name: Symbol, data: T.any(::Crystalline::FieldAugmented, T::Hash[Symbol, String]))
666
- .returns(T::Hash[Symbol, Object])
667
- end
668
- def self.serialize_form_data(field_name, data)
669
- get_form_field_name = lambda do |obj_field|
670
- obj_param_metadata = obj_field.metadata[:form]
671
-
672
- return '' if obj_param_metadata.nil?
673
-
674
- return obj_param_metadata.fetch(:field_name, obj_field.name)
675
- end
676
-
677
- form = {}
678
- if data.respond_to? :fields
679
- data.fields.each do |field|
680
- val = data.send(field.name)
681
- next if val.nil?
682
-
683
- metadata = field.metadata[:form]
684
-
685
- next if metadata.nil?
686
-
687
- field_name = metadata.fetch(:field_name, field.name)
688
-
689
- if metadata[:json]
690
- form[field_name] = ::Crystalline.marshal_json_complex(val)
691
- else
692
- if metadata.fetch(:style, 'form') == 'form'
693
- form = form.merge(
694
- _populate_form(
695
- field_name, metadata.fetch(:explode, true), val, ',', &get_form_field_name
696
- )
697
- )
698
- else
699
- raise StandardError, "Invalid form style for field #{field.name}"
700
- end
701
- end
702
- end
703
- elsif data.is_a? Hash
704
- data.each do |key, value|
705
- form[key] = [val_to_string(value)]
706
- end
707
- else
708
- raise StandardError, "Invalid request body type for field #{field_name}"
709
- end
710
-
711
- form
712
- end
713
-
714
- sig { params(url_with_params: String, params: T::Hash[Symbol, String]).returns(String) }
715
- def self.template_url(url_with_params, params)
716
- params.each do |key, value|
717
- if value.respond_to? :serialize
718
- val_str = value.serialize
719
- else
720
- val_str = value
721
- end
722
- url_with_params = url_with_params.gsub("{#{key}}", val_str)
723
- end
724
-
725
- url_with_params
726
- end
727
-
728
- sig { params(param_name: Symbol, value: Object, param_type: String, gbls: T.nilable(T::Hash[Symbol, T::Hash[Symbol, T::Hash[Symbol, Object]]])).returns(Object) }
729
- def self._populate_from_globals(param_name, value, param_type, gbls)
730
- if value.nil? && !gbls.nil?
731
- global_value = gbls.dig(:parameters, param_type.to_sym, param_name.to_sym)
732
- value = global_value if !global_value.nil?
733
- end
734
- value
735
- end
736
-
737
- end
738
- end