dub 0.3.0 → 0.6.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.

Potentially problematic release.


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

Files changed (405) hide show
  1. data/.gitignore +8 -0
  2. data/History.txt +20 -0
  3. data/LICENSE +20 -0
  4. data/README.rdoc +53 -0
  5. data/Rakefile +58 -0
  6. data/dub.gemspec +195 -0
  7. data/lib/dub/argument.rb +273 -0
  8. data/lib/dub/entities_unescape.rb +16 -0
  9. data/lib/dub/function.rb +159 -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 +231 -0
  14. data/lib/dub/lua/class.cpp.erb +79 -0
  15. data/lib/dub/lua/class_gen.rb +86 -0
  16. data/lib/dub/lua/function.cpp.erb +4 -0
  17. data/lib/dub/lua/function_gen.rb +247 -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 +35 -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/parser.rb +46 -0
  26. data/lib/dub/templates/lua_template.erb +21 -0
  27. data/lib/dub/version.rb +3 -0
  28. data/lib/dub.rb +23 -24
  29. data/test/argument_test.rb +547 -0
  30. data/test/fixtures/app/CMakeLists.txt +54 -0
  31. data/test/fixtures/app/Doxyfile +1600 -0
  32. data/test/fixtures/app/bindings/all_lua.cpp +299 -0
  33. data/test/fixtures/app/include/matrix.h +140 -0
  34. data/test/fixtures/app/make_lua_bindings.rb +13 -0
  35. data/test/fixtures/app/vendor/lua/CMakeLists.txt +25 -0
  36. data/test/fixtures/app/vendor/lua/COPYRIGHT +34 -0
  37. data/test/fixtures/app/vendor/lua/HISTORY +183 -0
  38. data/test/fixtures/app/vendor/lua/INSTALL +99 -0
  39. data/test/fixtures/app/vendor/lua/Makefile +183 -0
  40. data/test/fixtures/app/vendor/lua/README +37 -0
  41. data/test/fixtures/app/vendor/lua/lapi.c +1080 -0
  42. data/test/fixtures/app/vendor/lua/lapi.h +16 -0
  43. data/test/fixtures/app/vendor/lua/lauxlib.c +653 -0
  44. data/test/fixtures/app/vendor/lua/lauxlib.h +174 -0
  45. data/test/fixtures/app/vendor/lua/lbaselib.c +643 -0
  46. data/test/fixtures/app/vendor/lua/lcode.c +839 -0
  47. data/test/fixtures/app/vendor/lua/lcode.h +76 -0
  48. data/test/fixtures/app/vendor/lua/ldblib.c +397 -0
  49. data/test/fixtures/app/vendor/lua/ldebug.c +622 -0
  50. data/test/fixtures/app/vendor/lua/ldebug.h +33 -0
  51. data/test/fixtures/app/vendor/lua/ldo.c +516 -0
  52. data/test/fixtures/app/vendor/lua/ldo.h +57 -0
  53. data/test/fixtures/app/vendor/lua/ldump.c +164 -0
  54. data/test/fixtures/app/vendor/lua/lfunc.c +174 -0
  55. data/test/fixtures/app/vendor/lua/lfunc.h +34 -0
  56. data/test/fixtures/app/vendor/lua/lgc.c +711 -0
  57. data/test/fixtures/app/vendor/lua/lgc.h +110 -0
  58. data/test/fixtures/app/vendor/lua/liblua.a +0 -0
  59. data/test/fixtures/app/vendor/lua/linit.c +38 -0
  60. data/test/fixtures/app/vendor/lua/liolib.c +532 -0
  61. data/test/fixtures/app/vendor/lua/llex.c +461 -0
  62. data/test/fixtures/app/vendor/lua/llex.h +81 -0
  63. data/test/fixtures/app/vendor/lua/llimits.h +128 -0
  64. data/test/fixtures/app/vendor/lua/lmathlib.c +263 -0
  65. data/test/fixtures/app/vendor/lua/lmem.c +86 -0
  66. data/test/fixtures/app/vendor/lua/lmem.h +49 -0
  67. data/test/fixtures/app/vendor/lua/loadlib.c +664 -0
  68. data/test/fixtures/app/vendor/lua/lobject.c +214 -0
  69. data/test/fixtures/app/vendor/lua/lobject.h +381 -0
  70. data/test/fixtures/app/vendor/lua/lopcodes.c +102 -0
  71. data/test/fixtures/app/vendor/lua/lopcodes.h +268 -0
  72. data/test/fixtures/app/vendor/lua/loslib.c +244 -0
  73. data/test/fixtures/app/vendor/lua/lparser.c +1337 -0
  74. data/test/fixtures/app/vendor/lua/lparser.h +82 -0
  75. data/test/fixtures/app/vendor/lua/lstate.c +214 -0
  76. data/test/fixtures/app/vendor/lua/lstate.h +168 -0
  77. data/test/fixtures/app/vendor/lua/lstring.c +111 -0
  78. data/test/fixtures/app/vendor/lua/lstring.h +31 -0
  79. data/test/fixtures/app/vendor/lua/lstrlib.c +868 -0
  80. data/test/fixtures/app/vendor/lua/ltable.c +588 -0
  81. data/test/fixtures/app/vendor/lua/ltable.h +40 -0
  82. data/test/fixtures/app/vendor/lua/ltablib.c +278 -0
  83. data/test/fixtures/app/vendor/lua/ltm.c +75 -0
  84. data/test/fixtures/app/vendor/lua/ltm.h +54 -0
  85. data/test/fixtures/app/vendor/lua/lua.c +695 -0
  86. data/test/fixtures/app/vendor/lua/lua.h +385 -0
  87. data/test/fixtures/app/vendor/lua/lua_dub_helper.h +77 -0
  88. data/test/fixtures/app/vendor/lua/luac +0 -0
  89. data/test/fixtures/app/vendor/lua/luac.c +200 -0
  90. data/test/fixtures/app/vendor/lua/luaconf.h +762 -0
  91. data/test/fixtures/app/vendor/lua/lualib.h +53 -0
  92. data/test/fixtures/app/vendor/lua/lundump.c +223 -0
  93. data/test/fixtures/app/vendor/lua/lundump.h +36 -0
  94. data/test/fixtures/app/vendor/lua/lvm.c +765 -0
  95. data/test/fixtures/app/vendor/lua/lvm.h +36 -0
  96. data/test/fixtures/app/vendor/lua/lzio.c +82 -0
  97. data/test/fixtures/app/vendor/lua/lzio.h +67 -0
  98. data/test/fixtures/app/vendor/lua/matrix.h +102 -0
  99. data/test/fixtures/app/vendor/lua/print.c +227 -0
  100. data/test/fixtures/app/vendor/lua/test/README +26 -0
  101. data/test/fixtures/app/vendor/lua/test/bisect.lua +27 -0
  102. data/test/fixtures/app/vendor/lua/test/cf.lua +16 -0
  103. data/test/fixtures/app/vendor/lua/test/echo.lua +5 -0
  104. data/test/fixtures/app/vendor/lua/test/env.lua +7 -0
  105. data/test/fixtures/app/vendor/lua/test/factorial.lua +32 -0
  106. data/test/fixtures/app/vendor/lua/test/fib.lua +40 -0
  107. data/test/fixtures/app/vendor/lua/test/fibfor.lua +13 -0
  108. data/test/fixtures/app/vendor/lua/test/globals.lua +13 -0
  109. data/test/fixtures/app/vendor/lua/test/hello.lua +3 -0
  110. data/test/fixtures/app/vendor/lua/test/life.lua +111 -0
  111. data/test/fixtures/app/vendor/lua/test/luac.lua +7 -0
  112. data/test/fixtures/app/vendor/lua/test/printf.lua +7 -0
  113. data/test/fixtures/app/vendor/lua/test/readonly.lua +12 -0
  114. data/test/fixtures/app/vendor/lua/test/sieve.lua +29 -0
  115. data/test/fixtures/app/vendor/lua/test/sort.lua +66 -0
  116. data/test/fixtures/app/vendor/lua/test/table.lua +12 -0
  117. data/test/fixtures/app/vendor/lua/test/trace-calls.lua +32 -0
  118. data/test/fixtures/app/vendor/lua/test/trace-globals.lua +38 -0
  119. data/test/fixtures/app/vendor/lua/test/xd.lua +14 -0
  120. data/test/fixtures/app/xml/classdub_1_1_matrix.xml +281 -0
  121. data/test/fixtures/app/xml/classdub_1_1_t_mat.xml +233 -0
  122. data/test/fixtures/app/xml/combine.xslt +15 -0
  123. data/test/fixtures/app/xml/compound.xsd +814 -0
  124. data/test/fixtures/app/xml/dir_53661a2bdeb1d55e60581a7e15deb763.xml +12 -0
  125. data/test/fixtures/app/xml/index.xml +44 -0
  126. data/test/fixtures/app/xml/index.xsd +66 -0
  127. data/test/fixtures/app/xml/matrix_8h.xml +157 -0
  128. data/test/fixtures/app/xml/namespacedub.xml +41 -0
  129. data/test/fixtures/classcv_1_1_mat.xml +1996 -0
  130. data/test/fixtures/classcv_1_1_point__.xml +341 -0
  131. data/test/fixtures/classcv_1_1_scalar__.xml +269 -0
  132. data/test/fixtures/classcv_1_1_size__.xml +270 -0
  133. data/test/fixtures/group___magic_type.xml +406 -0
  134. data/test/fixtures/namespacecv.xml +12659 -0
  135. data/test/function_group_test.rb +24 -0
  136. data/test/function_test.rb +379 -0
  137. data/test/group_test.rb +155 -0
  138. data/test/helper.rb +34 -0
  139. data/test/klass_test.rb +372 -0
  140. data/test/lua_function_gen_test.rb +179 -0
  141. data/test/namespace_test.rb +220 -0
  142. data/test/parser_test.rb +36 -0
  143. metadata +202 -460
  144. checksums.yaml +0 -7
  145. data/lib/crystalline/metadata_fields.rb +0 -163
  146. data/lib/crystalline/t.rb +0 -59
  147. data/lib/crystalline/utils.rb +0 -65
  148. data/lib/crystalline.rb +0 -12
  149. data/lib/open_api_sdk/analytics.rb +0 -154
  150. data/lib/open_api_sdk/commissions.rb +0 -298
  151. data/lib/open_api_sdk/customers.rb +0 -709
  152. data/lib/open_api_sdk/domains.rb +0 -839
  153. data/lib/open_api_sdk/dub.rb +0 -99
  154. data/lib/open_api_sdk/embed_tokens.rb +0 -163
  155. data/lib/open_api_sdk/events.rb +0 -154
  156. data/lib/open_api_sdk/folders.rb +0 -570
  157. data/lib/open_api_sdk/links.rb +0 -1377
  158. data/lib/open_api_sdk/models/operations/accesslevel.rb +0 -18
  159. data/lib/open_api_sdk/models/operations/bulkcreatelinks_response.rb +0 -60
  160. data/lib/open_api_sdk/models/operations/bulkcreatelinks_testvariants.rb +0 -27
  161. data/lib/open_api_sdk/models/operations/bulkdeletelinks_request.rb +0 -24
  162. data/lib/open_api_sdk/models/operations/bulkdeletelinks_response.rb +0 -60
  163. data/lib/open_api_sdk/models/operations/bulkdeletelinks_responsebody.rb +0 -24
  164. data/lib/open_api_sdk/models/operations/bulkupdatelinks_requestbody.rb +0 -30
  165. data/lib/open_api_sdk/models/operations/bulkupdatelinks_response.rb +0 -60
  166. data/lib/open_api_sdk/models/operations/bulkupdatelinks_testvariants.rb +0 -27
  167. data/lib/open_api_sdk/models/operations/checkdomainstatus_request.rb +0 -24
  168. data/lib/open_api_sdk/models/operations/checkdomainstatus_response.rb +0 -60
  169. data/lib/open_api_sdk/models/operations/click.rb +0 -24
  170. data/lib/open_api_sdk/models/operations/color.rb +0 -23
  171. data/lib/open_api_sdk/models/operations/country.rb +0 -266
  172. data/lib/open_api_sdk/models/operations/createcustomer_discount.rb +0 -48
  173. data/lib/open_api_sdk/models/operations/createcustomer_link.rb +0 -39
  174. data/lib/open_api_sdk/models/operations/createcustomer_partner.rb +0 -33
  175. data/lib/open_api_sdk/models/operations/createcustomer_requestbody.rb +0 -33
  176. data/lib/open_api_sdk/models/operations/createcustomer_response.rb +0 -60
  177. data/lib/open_api_sdk/models/operations/createcustomer_responsebody.rb +0 -60
  178. data/lib/open_api_sdk/models/operations/createcustomer_type.rb +0 -18
  179. data/lib/open_api_sdk/models/operations/createdomain_requestbody.rb +0 -45
  180. data/lib/open_api_sdk/models/operations/createdomain_response.rb +0 -60
  181. data/lib/open_api_sdk/models/operations/createfolder_requestbody.rb +0 -27
  182. data/lib/open_api_sdk/models/operations/createfolder_response.rb +0 -60
  183. data/lib/open_api_sdk/models/operations/createlink_requestbody.rb +0 -145
  184. data/lib/open_api_sdk/models/operations/createlink_response.rb +0 -60
  185. data/lib/open_api_sdk/models/operations/createpartner_link.rb +0 -48
  186. data/lib/open_api_sdk/models/operations/createpartner_requestbody.rb +0 -45
  187. data/lib/open_api_sdk/models/operations/createpartner_response.rb +0 -60
  188. data/lib/open_api_sdk/models/operations/createpartner_responsebody.rb +0 -104
  189. data/lib/open_api_sdk/models/operations/createpartner_status.rb +0 -23
  190. data/lib/open_api_sdk/models/operations/createpartner_testvariants.rb +0 -27
  191. data/lib/open_api_sdk/models/operations/createpartnerlink_linkprops.rb +0 -111
  192. data/lib/open_api_sdk/models/operations/createpartnerlink_requestbody.rb +0 -39
  193. data/lib/open_api_sdk/models/operations/createpartnerlink_response.rb +0 -60
  194. data/lib/open_api_sdk/models/operations/createpartnerlink_testvariants.rb +0 -27
  195. data/lib/open_api_sdk/models/operations/createreferralsembedtoken_country.rb +0 -266
  196. data/lib/open_api_sdk/models/operations/createreferralsembedtoken_linkprops.rb +0 -111
  197. data/lib/open_api_sdk/models/operations/createreferralsembedtoken_requestbody.rb +0 -30
  198. data/lib/open_api_sdk/models/operations/createreferralsembedtoken_response.rb +0 -60
  199. data/lib/open_api_sdk/models/operations/createreferralsembedtoken_responsebody.rb +0 -27
  200. data/lib/open_api_sdk/models/operations/createreferralsembedtoken_testvariants.rb +0 -27
  201. data/lib/open_api_sdk/models/operations/createtag_requestbody.rb +0 -32
  202. data/lib/open_api_sdk/models/operations/createtag_response.rb +0 -60
  203. data/lib/open_api_sdk/models/operations/customer.rb +0 -33
  204. data/lib/open_api_sdk/models/operations/data.rb +0 -130
  205. data/lib/open_api_sdk/models/operations/deletecustomer_request.rb +0 -24
  206. data/lib/open_api_sdk/models/operations/deletecustomer_response.rb +0 -60
  207. data/lib/open_api_sdk/models/operations/deletecustomer_responsebody.rb +0 -24
  208. data/lib/open_api_sdk/models/operations/deletedomain_request.rb +0 -24
  209. data/lib/open_api_sdk/models/operations/deletedomain_response.rb +0 -60
  210. data/lib/open_api_sdk/models/operations/deletedomain_responsebody.rb +0 -24
  211. data/lib/open_api_sdk/models/operations/deletefolder_request.rb +0 -24
  212. data/lib/open_api_sdk/models/operations/deletefolder_response.rb +0 -60
  213. data/lib/open_api_sdk/models/operations/deletefolder_responsebody.rb +0 -24
  214. data/lib/open_api_sdk/models/operations/deletelink_request.rb +0 -24
  215. data/lib/open_api_sdk/models/operations/deletelink_response.rb +0 -60
  216. data/lib/open_api_sdk/models/operations/deletelink_responsebody.rb +0 -24
  217. data/lib/open_api_sdk/models/operations/deletetag_request.rb +0 -24
  218. data/lib/open_api_sdk/models/operations/deletetag_response.rb +0 -60
  219. data/lib/open_api_sdk/models/operations/deletetag_responsebody.rb +0 -24
  220. data/lib/open_api_sdk/models/operations/discount.rb +0 -48
  221. data/lib/open_api_sdk/models/operations/event.rb +0 -20
  222. data/lib/open_api_sdk/models/operations/getcustomer_discount.rb +0 -48
  223. data/lib/open_api_sdk/models/operations/getcustomer_link.rb +0 -39
  224. data/lib/open_api_sdk/models/operations/getcustomer_partner.rb +0 -33
  225. data/lib/open_api_sdk/models/operations/getcustomer_request.rb +0 -27
  226. data/lib/open_api_sdk/models/operations/getcustomer_response.rb +0 -60
  227. data/lib/open_api_sdk/models/operations/getcustomer_responsebody.rb +0 -60
  228. data/lib/open_api_sdk/models/operations/getcustomer_type.rb +0 -18
  229. data/lib/open_api_sdk/models/operations/getcustomers_link.rb +0 -39
  230. data/lib/open_api_sdk/models/operations/getcustomers_partner.rb +0 -33
  231. data/lib/open_api_sdk/models/operations/getcustomers_queryparam_sortby.rb +0 -18
  232. data/lib/open_api_sdk/models/operations/getcustomers_queryparam_sortorder.rb +0 -18
  233. data/lib/open_api_sdk/models/operations/getcustomers_request.rb +0 -51
  234. data/lib/open_api_sdk/models/operations/getcustomers_response.rb +0 -60
  235. data/lib/open_api_sdk/models/operations/getcustomers_responsebody.rb +0 -60
  236. data/lib/open_api_sdk/models/operations/getcustomers_type.rb +0 -18
  237. data/lib/open_api_sdk/models/operations/getlinkinfo_request.rb +0 -33
  238. data/lib/open_api_sdk/models/operations/getlinkinfo_response.rb +0 -60
  239. data/lib/open_api_sdk/models/operations/getlinks_request.rb +0 -66
  240. data/lib/open_api_sdk/models/operations/getlinks_response.rb +0 -60
  241. data/lib/open_api_sdk/models/operations/getlinkscount_request.rb +0 -54
  242. data/lib/open_api_sdk/models/operations/getlinkscount_response.rb +0 -60
  243. data/lib/open_api_sdk/models/operations/getqrcode_request.rb +0 -48
  244. data/lib/open_api_sdk/models/operations/getqrcode_response.rb +0 -60
  245. data/lib/open_api_sdk/models/operations/gettags_queryparam_sortby.rb +0 -18
  246. data/lib/open_api_sdk/models/operations/gettags_queryparam_sortorder.rb +0 -18
  247. data/lib/open_api_sdk/models/operations/gettags_request.rb +0 -39
  248. data/lib/open_api_sdk/models/operations/gettags_response.rb +0 -60
  249. data/lib/open_api_sdk/models/operations/getworkspace_request.rb +0 -24
  250. data/lib/open_api_sdk/models/operations/getworkspace_response.rb +0 -60
  251. data/lib/open_api_sdk/models/operations/groupby.rb +0 -37
  252. data/lib/open_api_sdk/models/operations/interval.rb +0 -25
  253. data/lib/open_api_sdk/models/operations/level.rb +0 -20
  254. data/lib/open_api_sdk/models/operations/link.rb +0 -48
  255. data/lib/open_api_sdk/models/operations/linkprops.rb +0 -111
  256. data/lib/open_api_sdk/models/operations/listcommissions_queryparam_interval.rb +0 -25
  257. data/lib/open_api_sdk/models/operations/listcommissions_queryparam_sortby.rb +0 -18
  258. data/lib/open_api_sdk/models/operations/listcommissions_queryparam_sortorder.rb +0 -18
  259. data/lib/open_api_sdk/models/operations/listcommissions_request.rb +0 -60
  260. data/lib/open_api_sdk/models/operations/listcommissions_response.rb +0 -60
  261. data/lib/open_api_sdk/models/operations/listcommissions_responsebody.rb +0 -51
  262. data/lib/open_api_sdk/models/operations/listcommissions_status.rb +0 -23
  263. data/lib/open_api_sdk/models/operations/listcommissions_type.rb +0 -20
  264. data/lib/open_api_sdk/models/operations/listdomains_request.rb +0 -33
  265. data/lib/open_api_sdk/models/operations/listdomains_response.rb +0 -60
  266. data/lib/open_api_sdk/models/operations/listevents_request.rb +0 -138
  267. data/lib/open_api_sdk/models/operations/listevents_response.rb +0 -60
  268. data/lib/open_api_sdk/models/operations/listfolders_request.rb +0 -30
  269. data/lib/open_api_sdk/models/operations/listfolders_response.rb +0 -60
  270. data/lib/open_api_sdk/models/operations/mode.rb +0 -18
  271. data/lib/open_api_sdk/models/operations/order.rb +0 -20
  272. data/lib/open_api_sdk/models/operations/partner.rb +0 -45
  273. data/lib/open_api_sdk/models/operations/paymentprocessor.rb +0 -21
  274. data/lib/open_api_sdk/models/operations/queryparam_event.rb +0 -19
  275. data/lib/open_api_sdk/models/operations/queryparam_groupby.rb +0 -19
  276. data/lib/open_api_sdk/models/operations/queryparam_interval.rb +0 -25
  277. data/lib/open_api_sdk/models/operations/queryparam_sortby.rb +0 -17
  278. data/lib/open_api_sdk/models/operations/queryparam_sortorder.rb +0 -18
  279. data/lib/open_api_sdk/models/operations/queryparam_status.rb +0 -23
  280. data/lib/open_api_sdk/models/operations/queryparam_trigger.rb +0 -18
  281. data/lib/open_api_sdk/models/operations/registerdomain_requestbody.rb +0 -24
  282. data/lib/open_api_sdk/models/operations/registerdomain_response.rb +0 -60
  283. data/lib/open_api_sdk/models/operations/registerdomain_responsebody.rb +0 -30
  284. data/lib/open_api_sdk/models/operations/requestbody.rb +0 -145
  285. data/lib/open_api_sdk/models/operations/responsebody.rb +0 -33
  286. data/lib/open_api_sdk/models/operations/retrieveanalytics_request.rb +0 -126
  287. data/lib/open_api_sdk/models/operations/retrieveanalytics_response.rb +0 -60
  288. data/lib/open_api_sdk/models/operations/retrievelinks_request.rb +0 -27
  289. data/lib/open_api_sdk/models/operations/retrievelinks_response.rb +0 -60
  290. data/lib/open_api_sdk/models/operations/retrievepartneranalytics_queryparam_interval.rb +0 -25
  291. data/lib/open_api_sdk/models/operations/retrievepartneranalytics_request.rb +0 -42
  292. data/lib/open_api_sdk/models/operations/retrievepartneranalytics_response.rb +0 -60
  293. data/lib/open_api_sdk/models/operations/sale.rb +0 -36
  294. data/lib/open_api_sdk/models/operations/sort.rb +0 -22
  295. data/lib/open_api_sdk/models/operations/sortby.rb +0 -20
  296. data/lib/open_api_sdk/models/operations/sortorder.rb +0 -18
  297. data/lib/open_api_sdk/models/operations/status.rb +0 -20
  298. data/lib/open_api_sdk/models/operations/testvariants.rb +0 -27
  299. data/lib/open_api_sdk/models/operations/tracklead_requestbody.rb +0 -48
  300. data/lib/open_api_sdk/models/operations/tracklead_response.rb +0 -60
  301. data/lib/open_api_sdk/models/operations/tracklead_responsebody.rb +0 -27
  302. data/lib/open_api_sdk/models/operations/tracksale_customer.rb +0 -36
  303. data/lib/open_api_sdk/models/operations/tracksale_requestbody.rb +0 -45
  304. data/lib/open_api_sdk/models/operations/tracksale_response.rb +0 -60
  305. data/lib/open_api_sdk/models/operations/tracksale_responsebody.rb +0 -30
  306. data/lib/open_api_sdk/models/operations/trigger.rb +0 -18
  307. data/lib/open_api_sdk/models/operations/type.rb +0 -20
  308. data/lib/open_api_sdk/models/operations/updatecommission_request.rb +0 -27
  309. data/lib/open_api_sdk/models/operations/updatecommission_requestbody.rb +0 -33
  310. data/lib/open_api_sdk/models/operations/updatecommission_response.rb +0 -60
  311. data/lib/open_api_sdk/models/operations/updatecommission_responsebody.rb +0 -51
  312. data/lib/open_api_sdk/models/operations/updatecommission_status.rb +0 -23
  313. data/lib/open_api_sdk/models/operations/updatecommission_type.rb +0 -20
  314. data/lib/open_api_sdk/models/operations/updatecustomer_discount.rb +0 -48
  315. data/lib/open_api_sdk/models/operations/updatecustomer_link.rb +0 -39
  316. data/lib/open_api_sdk/models/operations/updatecustomer_partner.rb +0 -33
  317. data/lib/open_api_sdk/models/operations/updatecustomer_request.rb +0 -30
  318. data/lib/open_api_sdk/models/operations/updatecustomer_requestbody.rb +0 -33
  319. data/lib/open_api_sdk/models/operations/updatecustomer_response.rb +0 -60
  320. data/lib/open_api_sdk/models/operations/updatecustomer_responsebody.rb +0 -60
  321. data/lib/open_api_sdk/models/operations/updatecustomer_type.rb +0 -18
  322. data/lib/open_api_sdk/models/operations/updatedomain_request.rb +0 -27
  323. data/lib/open_api_sdk/models/operations/updatedomain_requestbody.rb +0 -45
  324. data/lib/open_api_sdk/models/operations/updatedomain_response.rb +0 -60
  325. data/lib/open_api_sdk/models/operations/updatefolder_accesslevel.rb +0 -18
  326. data/lib/open_api_sdk/models/operations/updatefolder_request.rb +0 -27
  327. data/lib/open_api_sdk/models/operations/updatefolder_requestbody.rb +0 -27
  328. data/lib/open_api_sdk/models/operations/updatefolder_response.rb +0 -60
  329. data/lib/open_api_sdk/models/operations/updatelink_request.rb +0 -27
  330. data/lib/open_api_sdk/models/operations/updatelink_requestbody.rb +0 -139
  331. data/lib/open_api_sdk/models/operations/updatelink_response.rb +0 -60
  332. data/lib/open_api_sdk/models/operations/updatelink_testvariants.rb +0 -27
  333. data/lib/open_api_sdk/models/operations/updatetag_color.rb +0 -23
  334. data/lib/open_api_sdk/models/operations/updatetag_request.rb +0 -27
  335. data/lib/open_api_sdk/models/operations/updatetag_requestbody.rb +0 -32
  336. data/lib/open_api_sdk/models/operations/updatetag_response.rb +0 -60
  337. data/lib/open_api_sdk/models/operations/updateworkspace_request.rb +0 -27
  338. data/lib/open_api_sdk/models/operations/updateworkspace_requestbody.rb +0 -36
  339. data/lib/open_api_sdk/models/operations/updateworkspace_response.rb +0 -60
  340. data/lib/open_api_sdk/models/operations/upsertlink_requestbody.rb +0 -145
  341. data/lib/open_api_sdk/models/operations/upsertlink_response.rb +0 -60
  342. data/lib/open_api_sdk/models/operations/upsertlink_testvariants.rb +0 -27
  343. data/lib/open_api_sdk/models/operations/upsertpartnerlink_linkprops.rb +0 -111
  344. data/lib/open_api_sdk/models/operations/upsertpartnerlink_requestbody.rb +0 -39
  345. data/lib/open_api_sdk/models/operations/upsertpartnerlink_response.rb +0 -60
  346. data/lib/open_api_sdk/models/operations/upsertpartnerlink_testvariants.rb +0 -27
  347. data/lib/open_api_sdk/models/operations.rb +0 -198
  348. data/lib/open_api_sdk/models/shared/accesslevel.rb +0 -18
  349. data/lib/open_api_sdk/models/shared/badrequest.rb +0 -24
  350. data/lib/open_api_sdk/models/shared/code.rb +0 -17
  351. data/lib/open_api_sdk/models/shared/color.rb +0 -23
  352. data/lib/open_api_sdk/models/shared/conflict.rb +0 -24
  353. data/lib/open_api_sdk/models/shared/conflict_code.rb +0 -17
  354. data/lib/open_api_sdk/models/shared/conflict_error.rb +0 -30
  355. data/lib/open_api_sdk/models/shared/continentcode.rb +0 -23
  356. data/lib/open_api_sdk/models/shared/countrycode.rb +0 -266
  357. data/lib/open_api_sdk/models/shared/domains.rb +0 -30
  358. data/lib/open_api_sdk/models/shared/domainschema.rb +0 -63
  359. data/lib/open_api_sdk/models/shared/error.rb +0 -30
  360. data/lib/open_api_sdk/models/shared/folderschema.rb +0 -39
  361. data/lib/open_api_sdk/models/shared/forbidden.rb +0 -24
  362. data/lib/open_api_sdk/models/shared/forbidden_code.rb +0 -17
  363. data/lib/open_api_sdk/models/shared/forbidden_error.rb +0 -30
  364. data/lib/open_api_sdk/models/shared/geo.rb +0 -771
  365. data/lib/open_api_sdk/models/shared/internalservererror.rb +0 -24
  366. data/lib/open_api_sdk/models/shared/internalservererror_code.rb +0 -17
  367. data/lib/open_api_sdk/models/shared/internalservererror_error.rb +0 -30
  368. data/lib/open_api_sdk/models/shared/inviteexpired.rb +0 -24
  369. data/lib/open_api_sdk/models/shared/inviteexpired_code.rb +0 -17
  370. data/lib/open_api_sdk/models/shared/inviteexpired_error.rb +0 -30
  371. data/lib/open_api_sdk/models/shared/linkgeotargeting.rb +0 -771
  372. data/lib/open_api_sdk/models/shared/linkschema.rb +0 -172
  373. data/lib/open_api_sdk/models/shared/notfound.rb +0 -24
  374. data/lib/open_api_sdk/models/shared/notfound_code.rb +0 -17
  375. data/lib/open_api_sdk/models/shared/notfound_error.rb +0 -30
  376. data/lib/open_api_sdk/models/shared/plan.rb +0 -24
  377. data/lib/open_api_sdk/models/shared/ratelimitexceeded.rb +0 -24
  378. data/lib/open_api_sdk/models/shared/ratelimitexceeded_code.rb +0 -17
  379. data/lib/open_api_sdk/models/shared/ratelimitexceeded_error.rb +0 -30
  380. data/lib/open_api_sdk/models/shared/registereddomain.rb +0 -30
  381. data/lib/open_api_sdk/models/shared/role.rb +0 -18
  382. data/lib/open_api_sdk/models/shared/security.rb +0 -24
  383. data/lib/open_api_sdk/models/shared/tagschema.rb +0 -30
  384. data/lib/open_api_sdk/models/shared/testvariants.rb +0 -27
  385. data/lib/open_api_sdk/models/shared/type.rb +0 -18
  386. data/lib/open_api_sdk/models/shared/unauthorized.rb +0 -24
  387. data/lib/open_api_sdk/models/shared/unauthorized_code.rb +0 -17
  388. data/lib/open_api_sdk/models/shared/unauthorized_error.rb +0 -30
  389. data/lib/open_api_sdk/models/shared/unprocessableentity.rb +0 -24
  390. data/lib/open_api_sdk/models/shared/unprocessableentity_code.rb +0 -17
  391. data/lib/open_api_sdk/models/shared/unprocessableentity_error.rb +0 -30
  392. data/lib/open_api_sdk/models/shared/users.rb +0 -27
  393. data/lib/open_api_sdk/models/shared/workspaceschema.rb +0 -123
  394. data/lib/open_api_sdk/models/shared.rb +0 -55
  395. data/lib/open_api_sdk/partners.rb +0 -701
  396. data/lib/open_api_sdk/qr_codes.rb +0 -151
  397. data/lib/open_api_sdk/sdk_hooks/hooks.rb +0 -103
  398. data/lib/open_api_sdk/sdk_hooks/registration.rb +0 -35
  399. data/lib/open_api_sdk/sdk_hooks/types.rb +0 -152
  400. data/lib/open_api_sdk/sdkconfiguration.rb +0 -75
  401. data/lib/open_api_sdk/tags.rb +0 -570
  402. data/lib/open_api_sdk/track.rb +0 -302
  403. data/lib/open_api_sdk/utils/retries.rb +0 -95
  404. data/lib/open_api_sdk/utils/utils.rb +0 -738
  405. data/lib/open_api_sdk/workspaces.rb +0 -301
@@ -0,0 +1,24 @@
1
+ require 'helper'
2
+ require 'dub/lua'
3
+
4
+ class FunctionGroupTest < Test::Unit::TestCase
5
+
6
+ context 'A FunctionGroup' do
7
+ should 'keep its members sorted by overloaded_index' do
8
+ @group = namespacecv_xml[:cv][:divide]
9
+ assert_equal [1, 2, 3, 4], @group.map {|f| f.overloaded_index}
10
+ end
11
+
12
+ should 'not use top__ in chooser if all methods have same arg count' do
13
+ @method = namespacecv_xml[:cv][:Mat][:diag]
14
+ Dub::Lua.bind(@method)
15
+ assert_no_match %r{top__}, Dub::Lua.function_generator.chooser_body(@method)
16
+ end
17
+
18
+ should 'use top__ in chooser if some methods have different arg count' do
19
+ @method = namespacecv_xml[:cv][:Mat][:Mat]
20
+ Dub::Lua.bind(@method)
21
+ assert_match %r{top__}, Dub::Lua.function_generator.chooser_body(@method)
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,379 @@
1
+ require 'helper'
2
+ require 'dub/lua'
3
+
4
+ class FunctionTest < Test::Unit::TestCase
5
+
6
+ context 'A Function' do
7
+ setup do
8
+ # namespacecv_xml = Dub.parse(fixture('namespacecv.xml'))
9
+ @function = namespacecv_xml[:cv][:resize]
10
+ end
11
+
12
+ should 'return a list of Arguments with arguments' do
13
+ assert_kind_of Array, @function.arguments
14
+ assert_kind_of Dub::Argument, @function.arguments.first
15
+ end
16
+
17
+ should 'return name with name' do
18
+ assert_equal 'resize', @function.name
19
+ end
20
+
21
+ should 'have namespace prefix' do
22
+ assert_equal 'cv', @function.prefix
23
+ end
24
+
25
+ should 'display original_signature' do
26
+ assert_equal 'CV_EXPORTS void cv::resize(const Mat &src, Mat &dst, Size dsize, double fx=0, double fy=0, int interpolation=INTER_LINEAR)', @function.original_signature
27
+ end
28
+
29
+ should 'return file and line on source' do
30
+ assert_equal 'include/opencv/cv.hpp:343', @function.source
31
+ end
32
+
33
+ should 'know if it has default arguments' do
34
+ assert @function.has_default_arguments?
35
+ end
36
+
37
+ context 'without default arguments' do
38
+ setup do
39
+ @function = namespacecv_xml[:cv][:getRotationMatrix2D]
40
+ end
41
+
42
+ should 'know if it has default arguments' do
43
+ assert !@function.has_default_arguments?
44
+ end
45
+ end
46
+
47
+ context 'without a return value' do
48
+ should 'know the type of a returned value' do
49
+ assert_equal nil, @function.return_value
50
+ end
51
+ end
52
+
53
+ context 'with a return value' do
54
+ setup do
55
+ @function = namespacecv_xml[:cv][:getRotationMatrix2D]
56
+ end
57
+
58
+ should 'return an Argument on return_value' do
59
+ assert_kind_of Dub::Argument, @function.return_value
60
+ end
61
+
62
+ should 'know the type of a returned value' do
63
+ assert_equal 'Mat', @function.return_value.type
64
+ end
65
+
66
+ should 'not use a pointer for create_type' do
67
+ assert_equal 'Mat ', @function.return_value.create_type
68
+ end
69
+ end
70
+
71
+ context 'with a pointer to native type return value' do
72
+ setup do
73
+ @function = namespacecv_xml[:cv][:Mat][:ptr].first
74
+ end
75
+
76
+ should 'know the type of the returned value' do
77
+ assert_equal 'uchar *', @function.return_value.create_type
78
+ end
79
+
80
+ should 'know that the type is a native pointer' do
81
+ assert @function.return_value.is_pointer?
82
+ end
83
+ end
84
+
85
+ context 'with a reference return value' do
86
+ setup do
87
+ @function = namespacecv_xml[:cv][:Mat][:adjustROI]
88
+ end
89
+
90
+ should 'strip ref in the create type' do
91
+ assert_equal 'Mat ', @function.return_value.create_type
92
+ end
93
+
94
+ should 'know that the type is a not native pointer' do
95
+ assert !@function.return_value.is_pointer?
96
+ end
97
+ end
98
+
99
+ context 'with a void pointer return value' do
100
+ setup do
101
+ @function = namespacecv_xml[:cv][:fastMalloc]
102
+ #Dub::Lua.bind(@function)
103
+ end
104
+
105
+ should 'strip ref in the create type' do
106
+ assert_equal 'void *', @function.return_value.create_type
107
+ end
108
+
109
+ should 'be ignored by generator' do
110
+ assert Dub::Lua.namespace_generator.ignore_member?(@function)
111
+ end
112
+ end
113
+
114
+ context 'with a class return value' do
115
+ setup do
116
+ @function = namespacecv_xml[:cv][:Mat][:row]
117
+ end
118
+
119
+ should 'return new objects in constructors' do
120
+ Dub::Lua.bind(@function)
121
+ assert_match %r{lua_pushclass<Mat>.*"cv.Mat"}, @function.to_s
122
+ end
123
+ end
124
+ end
125
+
126
+ context 'A vararg method' do
127
+ setup do
128
+ @function = namespacecv_xml[:cv][:format]
129
+ end
130
+
131
+ should 'know it is a vararg' do
132
+ assert @function.vararg?
133
+ end
134
+
135
+ should 'be ignored by generator' do
136
+ assert Dub::Lua.namespace_generator.ignore_member?(@function)
137
+ end
138
+ end
139
+
140
+ context 'A constructor with void pointer argument' do
141
+ setup do
142
+ @function = namespacecv_xml[:cv][:Mat].constructor[6]
143
+ end
144
+
145
+ should 'be ignored by generator' do
146
+ assert Dub::Lua.class_generator.ignore_member?(@function)
147
+ end
148
+
149
+ should 'not have array arguments' do
150
+ assert !namespacecv_xml[:cv][:Mat].constructor[2].has_array_arguments?
151
+ end
152
+
153
+ should 'not be listed in group members if bound' do
154
+ klass = namespacecv_xml[:cv][:Mat]
155
+ Dub::Lua.bind(klass)
156
+ assert !klass.constructor.members.include?(@function)
157
+ end
158
+
159
+ should 'be removed from group list on to_s' do
160
+ klass = namespacecv_xml[:cv][:Mat]
161
+ Dub::Lua.bind(klass)
162
+ assert_no_match %r{void\s*\*_data,\s*size_t}, klass.constructor.to_s
163
+ end
164
+ end
165
+
166
+ context 'A function with void pointer argument' do
167
+ setup do
168
+ @function = namespacecv_xml[:cv][:fastFree]
169
+ end
170
+
171
+ should 'be ignored by generator' do
172
+ assert Dub::Lua.namespace_generator.ignore_member?(@function)
173
+ end
174
+
175
+ should 'be removed from members list' do
176
+ Dub::Lua.bind(namespacecv_xml[:cv])
177
+ assert !namespacecv_xml[:cv].members.include?(@function)
178
+ end
179
+ end
180
+
181
+ context 'A function with list arguments' do
182
+ setup do
183
+ @namespace = namespacecv_xml[:cv]
184
+ Dub::Lua.bind(@namespace)
185
+ @group = @namespace[:calcHist]
186
+ @function = @group[1]
187
+ end
188
+
189
+ # should 'mark argument as list on arg_is_list' do
190
+ # @function.arg_is_list(0, 1)
191
+ # assert @function.arguments[0].is_list?
192
+ # assert !@function.arguments[0].is_list_count?
193
+ # assert @function.arguments[1].is_list_count?
194
+ # end
195
+
196
+ should 'respond true to has_class_pointer_arguments' do
197
+ assert @function.has_class_pointer_arguments?
198
+ end
199
+
200
+ should 'be removed from group list' do
201
+ assert_nil @group.members
202
+ end
203
+
204
+ should 'remove group from member declaration' do
205
+ assert_no_match %r{cv_calcHist}, @namespace.gen.functions_registration(@namespace)
206
+ end
207
+
208
+ should 'not be instanciated' do
209
+ assert_equal '', @group.to_s
210
+ end
211
+ end
212
+
213
+ context 'A method without arguments' do
214
+ setup do
215
+ @function = namespacecv_xml[:cv][:getCPUTickCount]
216
+ end
217
+
218
+ should 'parse return value' do
219
+ assert_equal 'int64', @function.return_value.type
220
+ end
221
+
222
+ should 'produce a one liner to call function' do
223
+ Dub::Lua.bind(@function)
224
+ assert_match %r{int64\s*retval__\s*=\s*getCPUTickCount\(\);}, @function.to_s
225
+ end
226
+ end
227
+
228
+ context 'A method' do
229
+ setup do
230
+ # namespacecv_xml = Dub.parse(fixture('app/xml/namespacedub.xml'))
231
+ @method = namespacedub_xml[:dub][:Matrix][:size]
232
+ end
233
+
234
+ should 'know that it belongs to a class' do
235
+ assert @method.member_method?
236
+ end
237
+
238
+ should 'know if it is a constructor' do
239
+ assert !@method.constructor?
240
+ end
241
+
242
+ should 'return klass on klass' do
243
+ assert_kind_of Dub::Klass, @method.klass
244
+ end
245
+ end
246
+
247
+ context 'A constructor' do
248
+ setup do
249
+ @method = namespacedub_xml[:dub][:Matrix][:Matrix].first
250
+ end
251
+
252
+ should 'know that it belongs to a class' do
253
+ assert @method.member_method?
254
+ end
255
+
256
+ should 'know if it is a constructor' do
257
+ assert @method.constructor?
258
+ end
259
+
260
+ should 'return class name on return_value create_type' do
261
+ assert_equal 'Matrix', @method.return_value.type
262
+ end
263
+
264
+ should 'return class name pointer on return_value create_type' do
265
+ assert_equal 'Matrix *', @method.return_value.create_type
266
+ end
267
+
268
+ context 'from a typedef bound to a generator' do
269
+ setup do
270
+ @method = namespacecv_xml[:cv][:Size].constructor.first
271
+ Dub::Lua.bind(@method)
272
+ end
273
+
274
+ should 'know that it is a constructor' do
275
+ assert @method.constructor?
276
+ end
277
+
278
+ should 'push new userdata on new' do
279
+ assert_match %r{lua_pushclass<Size>.*"cv.Size".*return 1}m, @method.generator.return_value(@method)
280
+ end
281
+ end
282
+ end
283
+
284
+ context 'A static method in a class' do
285
+ setup do
286
+ @method = namespacedub_xml[:dub][:Matrix][:MakeMatrix]
287
+ end
288
+
289
+ should 'know it is static' do
290
+ assert @method.static?
291
+ end
292
+
293
+ should 'append class in call_name' do
294
+ assert_equal 'Matrix::MakeMatrix', @method.call_name
295
+ end
296
+
297
+ should 'parse return type' do
298
+ assert_equal 'Matrix', @method.return_value.type
299
+ end
300
+
301
+ context 'bound to a generator' do
302
+ setup do
303
+ Dub::Lua.bind(@method)
304
+ end
305
+
306
+ should 'not try to find self' do
307
+ assert_no_match %r{self__}, @method.to_s
308
+ end
309
+
310
+ should 'insert the function into the namespace' do
311
+ @class = namespacedub_xml[:dub][:Matrix]
312
+ Dub::Lua.bind(@class)
313
+ result = @class.to_s
314
+ member_methods_registration = result[/Matrix_member_methods([^;]*);/,1]
315
+ namespace_methods_registration = result[/Matrix_namespace_methods([^;]*);/,1]
316
+ assert_no_match %r{Matrix_MakeMatrix}, member_methods_registration
317
+ assert_match %r{Matrix_MakeMatrix.*Matrix_MakeMatrix}, namespace_methods_registration
318
+ end
319
+
320
+ should 'use class name in call' do
321
+ assert_match %r{Matrix::MakeMatrix\(}, @method.gen.call_string(@method)
322
+ end
323
+ end
324
+ end
325
+
326
+ # This is something like template<typename T2> foo() inside a templated class
327
+ context 'A template method' do
328
+ setup do
329
+ @class = namespacecv_xml[:cv][:Scalar]
330
+ @method = @class.template_method(:convertTo)
331
+ end
332
+
333
+ should 'know it is a template' do
334
+ assert @method.template?
335
+ end
336
+
337
+ context 'bound to a generator' do
338
+ setup do
339
+ Dub::Lua.bind(@class)
340
+ end
341
+
342
+ should 'be ignored in class members' do
343
+ assert !@class.members.include?(@method)
344
+ end
345
+ end
346
+ end
347
+
348
+ context 'A method in a class defined from a template' do
349
+ setup do
350
+ @class = namespacecv_xml[:cv][:Scalar]
351
+ @method = @class[:all]
352
+ end
353
+
354
+ should 'resolve its arguments' do
355
+ assert_equal 'double', @method.arguments[0].type
356
+ assert_equal 'Scalar', @method.return_value.type
357
+ end
358
+
359
+ should 'not be seen as a template' do
360
+ assert !@method.template?
361
+ end
362
+
363
+ should 'not be seen as having complex types' do
364
+ assert !@method.has_complex_arguments?
365
+ end
366
+
367
+ context 'bound to a generator' do
368
+ setup do
369
+ Dub::Lua.bind(@class)
370
+ end
371
+
372
+ should 'not be ignored in class members' do
373
+ assert @class.members.include?(@method)
374
+ end
375
+ end
376
+ end
377
+
378
+
379
+ end
@@ -0,0 +1,155 @@
1
+ require 'helper'
2
+ require 'dub/lua'
3
+
4
+ class GroupTest < Test::Unit::TestCase
5
+ context 'A Namespace' do
6
+ setup do
7
+ # namespacecv_xml = Dub.parse(fixture('namespacecv.xml'))
8
+ @namespace = namespacecv_xml[:cv]
9
+ end
10
+
11
+ should 'find a function with functions method' do
12
+ assert_kind_of Dub::Function, @namespace.function(:resize)
13
+ end
14
+
15
+ should 'find a function with array index' do
16
+ assert_kind_of Dub::Function, @namespace[:resize]
17
+ end
18
+
19
+ should 'respond to name' do
20
+ assert_equal 'cv', @namespace.name
21
+ end
22
+
23
+ should 'respond to lib_name' do
24
+ # nested namespace could be cv_more
25
+ assert_equal 'cv', @namespace.lib_name
26
+ end
27
+
28
+ should 'respond to id_name' do
29
+ # nested namespace could be cv.more
30
+ assert_equal 'cv', @namespace.id_name
31
+ end
32
+
33
+ should 'return header name on header' do
34
+ assert_equal 'cv.hpp', @namespace.header
35
+ end
36
+
37
+ should 'return defined header if changed' do
38
+ namespace = Dub.parse(fixture('namespacecv.xml'))[:cv]
39
+ namespace.header = 'opencv/cv.h'
40
+ assert_equal 'opencv/cv.h', namespace.header
41
+ end
42
+
43
+ context 'when bound' do
44
+ setup do
45
+ @generator = Dub::Lua.namespace_generator
46
+ end
47
+
48
+ should 'contain generator' do
49
+ res = Dub::Lua.bind(@namespace)
50
+ assert_equal res, @namespace
51
+ assert_equal @generator, @namespace.gen
52
+ end
53
+
54
+ end
55
+
56
+ context 'with overloaded functions' do
57
+ setup do
58
+ @function = namespacecv_xml[:cv][:divide]
59
+ end
60
+
61
+ should 'find a Dub::FunctionGroup' do
62
+ assert_kind_of Dub::FunctionGroup, @function
63
+ end
64
+
65
+ should 'find a group of functions' do
66
+ assert_kind_of Dub::Function, @function[0]
67
+ assert_kind_of Dub::Function, @function[1]
68
+ end
69
+
70
+ should 'group functions by name' do
71
+ assert_equal 'divide', @function[0].name
72
+ assert_equal 'divide', @function[1].name
73
+ end
74
+
75
+ should 'assign an overloaded_index to grouped functions' do
76
+ assert_equal 1, @function[0].overloaded_index
77
+ assert_equal 2, @function[1].overloaded_index
78
+ end
79
+ end
80
+ end
81
+
82
+ context 'A namespace with class definitions' do
83
+ setup do
84
+ @namespace = namespacedub_xml[:dub]
85
+ end
86
+
87
+ should 'find classes by array index' do
88
+ assert_kind_of Dub::Klass, @namespace[:Matrix]
89
+ end
90
+
91
+ should 'find classes with klass' do
92
+ assert_kind_of Dub::Klass, @namespace.klass('Matrix')
93
+ end
94
+
95
+ should 'return a list of classes with classes' do
96
+ assert_kind_of Array, @namespace.classes
97
+ assert_kind_of Dub::Klass, @namespace.classes.first
98
+ end
99
+ end
100
+
101
+ context 'A namespace with template class definitions' do
102
+ setup do
103
+ @namespace = namespacedub_xml[:dub]
104
+ end
105
+
106
+ should 'ignore template classes in class list' do
107
+ assert !@namespace.classes.map{|m| m.name}.include?("TMat")
108
+ end
109
+
110
+ should 'return template class with template_class' do
111
+ assert_kind_of Dub::Klass, @namespace.template_class('TMat')
112
+ end
113
+
114
+ should 'build a full classes for template typedefs' do
115
+ assert_kind_of Dub::Klass, @namespace.klass(:FloatMat)
116
+ end
117
+
118
+ context 'bound to a generator' do
119
+ setup do
120
+ Dub::Lua.bind(@namespace)
121
+ end
122
+
123
+ should 'generate a valid class' do
124
+ # TODO: rerun all tests for lua class generation
125
+ assert_match %r{luaL_register\(L,\s*"dub".*FMatrix}, @namespace[:FloatMat].to_s
126
+ end
127
+ end
128
+ end
129
+
130
+ context 'A namespace with enums' do
131
+ setup do
132
+ @namespace = namespacecv_xml[:cv]
133
+ end
134
+
135
+ should 'respond true to has_enums' do
136
+ assert @namespace.has_constants?
137
+ end
138
+
139
+ should 'produce namespaced declarations' do
140
+ assert_match %r{\{"INTER_LINEAR"\s*,\s*cv::INTER_LINEAR\}}, Dub::Lua.namespace_generator.constants_registration(@namespace)
141
+ end
142
+
143
+ context 'bound to a generator' do
144
+ setup do
145
+ Dub::Lua.bind(@namespace)
146
+ end
147
+
148
+ should 'produce enums registration' do
149
+ result = @namespace.to_s
150
+ assert_match %r{\{"INTER_LINEAR"\s*,\s*cv::INTER_LINEAR\}}, result
151
+ assert_match %r{register_constants\(L,\s*"cv",\s*cv_namespace_constants\)}, result
152
+ end
153
+ end
154
+ end
155
+ end
data/test/helper.rb ADDED
@@ -0,0 +1,34 @@
1
+ require 'rubygems'
2
+ require 'test/unit'
3
+ require 'shoulda'
4
+
5
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
6
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
7
+ require 'dub'
8
+
9
+ class Test::Unit::TestCase
10
+
11
+ def self.fixture(path)
12
+ File.join(File.dirname(__FILE__), 'fixtures', path)
13
+ end
14
+
15
+ @@namespacecv_xml = nil
16
+
17
+ Dub.logger.level = Logger::FATAL
18
+
19
+ def fixture(path)
20
+ self.class.fixture(path)
21
+ end
22
+
23
+ def namespacecv_xml
24
+ @@namespacecv_xml ||= Dub.parse(fixture('namespacecv.xml'))
25
+ end
26
+
27
+ def namespacedub_xml
28
+ @@namespacedub_xml ||= Dub.parse(fixture('app/xml/namespacedub.xml'))
29
+ end
30
+
31
+ def groupmagic_xml
32
+ @@groupmagic_xml ||= Dub.parse(fixture('group___magic_type.xml'))
33
+ end
34
+ end