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
data/.gitignore ADDED
@@ -0,0 +1,8 @@
1
+ .DS_Store
2
+ *.o
3
+ *.a
4
+ *.so
5
+ build
6
+ test/fixtures/app/vendor/lua/lua
7
+ *.gem
8
+ test/fixtures/app/html
data/History.txt ADDED
@@ -0,0 +1,20 @@
1
+ == 0.6.0 2010-03-11
2
+
3
+ * 4 enhancements
4
+ * added support for custom tostring methods for classes
5
+ * fixed parsing of templated return types
6
+ * static class methods are now registered in the namespace as Klass_method
7
+ * removing functions and methods with class pointer arguments (could use lists later on)
8
+ * better parsing of complex types (including nested template arguments)
9
+
10
+ == 0.5.1 2010-03-05
11
+
12
+ * 2 minor enhancements
13
+ * if an argument is fully specified, should not append namespace
14
+ * better handling of boolean values
15
+
16
+ == 0.5.0 2010-03-03
17
+
18
+ * 1 major enhancement
19
+ * initial release and tested with OpenCV bindings for Lua
20
+
data/LICENSE ADDED
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2010 by Gaspard Bucher - Buma (http://teti.ch).
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.rdoc ADDED
@@ -0,0 +1,53 @@
1
+ = Dub (Doxygen based Ubiquitous Binder)
2
+
3
+ This is a tool to ease the creation of scripting language bindings for a C++ library.
4
+ It is currently developed to crete the OpenCV bindings for Lua in Rubyk (http://rubyk.org).
5
+
6
+ The generator uses the xml output from Doxygen to avoid parsing C++ code by itself.
7
+
8
+ = Features
9
+
10
+ Currently, the parser supports:
11
+
12
+ * class methods
13
+ * overloaded class constructors
14
+ * overloaded class methods
15
+ * class instantiation from templates through typedefs
16
+ * class alias through typedefs
17
+ * automatic resolution of template parameters
18
+ * automatic handling of default values
19
+ * class enums
20
+ * namespace enums
21
+ * group constant defines
22
+ * well tested
23
+
24
+ If you are not good at reading lists, here is an example of the kind of tricks Dub plays with types:
25
+
26
+ template<class T>
27
+ class Point_ {
28
+ ...
29
+ };
30
+
31
+ template<class T>
32
+ class Size_ {
33
+ Size_(const Point_<T>);
34
+ };
35
+ typedef Size_<int> Size2i;
36
+ typedef Size2i Size;
37
+
38
+ typedef Point_<int> Point2i;
39
+ typedef Point2i Point;
40
+
41
+
42
+ All these typedefs and templates will generate two class bindings with some aliases:
43
+
44
+ * <tt>Size</tt>, aliased as <tt>Size2i</tt>
45
+ * <tt>Point</tt>, aliased as <tt>Point2i</tt>
46
+
47
+ And what's really good is that in the definition for the <tt>Size</tt> constructor, <tt>Point_<T></tt> is
48
+ recognized as <tt>Point</tt> !
49
+
50
+ === Lua Generator
51
+
52
+ Since this generator uses C++ code and memory allocation, you *MUST* compile Lua as C++ code
53
+ to avoid memory leaks (error handling should use exceptions instead of longjmp).
data/Rakefile ADDED
@@ -0,0 +1,58 @@
1
+ require 'rubygems'
2
+ require 'rake'
3
+
4
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), 'lib'))
5
+ require 'dub/version'
6
+
7
+ begin
8
+ require 'jeweler'
9
+ Jeweler::Tasks.new do |gem|
10
+ gem.name = "dub"
11
+ gem.version = Dub::VERSION
12
+ gem.summary = %Q{A tool to ease the creation of scripting language bindings for a C++ library.}
13
+ gem.description = %Q{This is a tool to ease the creation of scripting language bindings for a C++ library.
14
+ It is currently developed to crete the OpenCV bindings for Lua in Rubyk (http://rubyk.org). The generator uses the xml output from Doxygen to avoid parsing C++ code by itself.}
15
+ gem.email = "gaspard@teti.ch"
16
+ gem.homepage = "http://github.com/ruby/dub"
17
+ gem.authors = ["Gaspard Bucher"]
18
+ gem.add_development_dependency "shoulda", ">= 0"
19
+ # gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
20
+ end
21
+ Jeweler::GemcutterTasks.new
22
+ rescue LoadError
23
+ puts "Jeweler (or a dependency) not available. Install it with: gem install jeweler"
24
+ end
25
+
26
+ require 'rake/testtask'
27
+ Rake::TestTask.new(:test) do |test|
28
+ test.libs << 'lib' << 'test'
29
+ test.pattern = 'test/**/*_test.rb'
30
+ test.verbose = true
31
+ end
32
+
33
+ begin
34
+ require 'rcov/rcovtask'
35
+ Rcov::RcovTask.new do |test|
36
+ test.libs << 'test'
37
+ test.pattern = 'test/**/*_test.rb'
38
+ test.verbose = true
39
+ end
40
+ rescue LoadError
41
+ task :rcov do
42
+ abort "RCov is not available. In order to run rcov, you must: sudo gem install spicycode-rcov"
43
+ end
44
+ end
45
+
46
+ task :test => :check_dependencies
47
+
48
+ task :default => :test
49
+
50
+ require 'rake/rdoctask'
51
+ Rake::RDocTask.new do |rdoc|
52
+ version = File.exist?('VERSION') ? File.read('VERSION') : ""
53
+
54
+ rdoc.rdoc_dir = 'rdoc'
55
+ rdoc.title = "Dub #{version}"
56
+ rdoc.rdoc_files.include('README*')
57
+ rdoc.rdoc_files.include('lib/**/*.rb')
58
+ end
data/dub.gemspec ADDED
@@ -0,0 +1,195 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = %q{dub}
8
+ s.version = "0.6.0"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["Gaspard Bucher"]
12
+ s.date = %q{2010-03-11}
13
+ s.description = %q{This is a tool to ease the creation of scripting language bindings for a C++ library.
14
+ It is currently developed to crete the OpenCV bindings for Lua in Rubyk (http://rubyk.org). The generator uses the xml output from Doxygen to avoid parsing C++ code by itself.}
15
+ s.email = %q{gaspard@teti.ch}
16
+ s.extra_rdoc_files = [
17
+ "LICENSE",
18
+ "README.rdoc"
19
+ ]
20
+ s.files = [
21
+ ".gitignore",
22
+ "History.txt",
23
+ "LICENSE",
24
+ "README.rdoc",
25
+ "Rakefile",
26
+ "dub.gemspec",
27
+ "lib/dub.rb",
28
+ "lib/dub/argument.rb",
29
+ "lib/dub/entities_unescape.rb",
30
+ "lib/dub/function.rb",
31
+ "lib/dub/function_group.rb",
32
+ "lib/dub/generator.rb",
33
+ "lib/dub/group.rb",
34
+ "lib/dub/klass.rb",
35
+ "lib/dub/lua.rb",
36
+ "lib/dub/lua/class.cpp.erb",
37
+ "lib/dub/lua/class_gen.rb",
38
+ "lib/dub/lua/function.cpp.erb",
39
+ "lib/dub/lua/function_gen.rb",
40
+ "lib/dub/lua/group.cpp.erb",
41
+ "lib/dub/lua/lua_cpp_helper.h",
42
+ "lib/dub/lua/namespace.cpp.erb",
43
+ "lib/dub/lua/namespace_gen.rb",
44
+ "lib/dub/member_extraction.rb",
45
+ "lib/dub/namespace.rb",
46
+ "lib/dub/parser.rb",
47
+ "lib/dub/templates/lua_template.erb",
48
+ "lib/dub/version.rb",
49
+ "test/argument_test.rb",
50
+ "test/fixtures/app/CMakeLists.txt",
51
+ "test/fixtures/app/Doxyfile",
52
+ "test/fixtures/app/bindings/all_lua.cpp",
53
+ "test/fixtures/app/include/matrix.h",
54
+ "test/fixtures/app/make_lua_bindings.rb",
55
+ "test/fixtures/app/vendor/lua/CMakeLists.txt",
56
+ "test/fixtures/app/vendor/lua/COPYRIGHT",
57
+ "test/fixtures/app/vendor/lua/HISTORY",
58
+ "test/fixtures/app/vendor/lua/INSTALL",
59
+ "test/fixtures/app/vendor/lua/Makefile",
60
+ "test/fixtures/app/vendor/lua/README",
61
+ "test/fixtures/app/vendor/lua/lapi.c",
62
+ "test/fixtures/app/vendor/lua/lapi.h",
63
+ "test/fixtures/app/vendor/lua/lauxlib.c",
64
+ "test/fixtures/app/vendor/lua/lauxlib.h",
65
+ "test/fixtures/app/vendor/lua/lbaselib.c",
66
+ "test/fixtures/app/vendor/lua/lcode.c",
67
+ "test/fixtures/app/vendor/lua/lcode.h",
68
+ "test/fixtures/app/vendor/lua/ldblib.c",
69
+ "test/fixtures/app/vendor/lua/ldebug.c",
70
+ "test/fixtures/app/vendor/lua/ldebug.h",
71
+ "test/fixtures/app/vendor/lua/ldo.c",
72
+ "test/fixtures/app/vendor/lua/ldo.h",
73
+ "test/fixtures/app/vendor/lua/ldump.c",
74
+ "test/fixtures/app/vendor/lua/lfunc.c",
75
+ "test/fixtures/app/vendor/lua/lfunc.h",
76
+ "test/fixtures/app/vendor/lua/lgc.c",
77
+ "test/fixtures/app/vendor/lua/lgc.h",
78
+ "test/fixtures/app/vendor/lua/liblua.a",
79
+ "test/fixtures/app/vendor/lua/linit.c",
80
+ "test/fixtures/app/vendor/lua/liolib.c",
81
+ "test/fixtures/app/vendor/lua/llex.c",
82
+ "test/fixtures/app/vendor/lua/llex.h",
83
+ "test/fixtures/app/vendor/lua/llimits.h",
84
+ "test/fixtures/app/vendor/lua/lmathlib.c",
85
+ "test/fixtures/app/vendor/lua/lmem.c",
86
+ "test/fixtures/app/vendor/lua/lmem.h",
87
+ "test/fixtures/app/vendor/lua/loadlib.c",
88
+ "test/fixtures/app/vendor/lua/lobject.c",
89
+ "test/fixtures/app/vendor/lua/lobject.h",
90
+ "test/fixtures/app/vendor/lua/lopcodes.c",
91
+ "test/fixtures/app/vendor/lua/lopcodes.h",
92
+ "test/fixtures/app/vendor/lua/loslib.c",
93
+ "test/fixtures/app/vendor/lua/lparser.c",
94
+ "test/fixtures/app/vendor/lua/lparser.h",
95
+ "test/fixtures/app/vendor/lua/lstate.c",
96
+ "test/fixtures/app/vendor/lua/lstate.h",
97
+ "test/fixtures/app/vendor/lua/lstring.c",
98
+ "test/fixtures/app/vendor/lua/lstring.h",
99
+ "test/fixtures/app/vendor/lua/lstrlib.c",
100
+ "test/fixtures/app/vendor/lua/ltable.c",
101
+ "test/fixtures/app/vendor/lua/ltable.h",
102
+ "test/fixtures/app/vendor/lua/ltablib.c",
103
+ "test/fixtures/app/vendor/lua/ltm.c",
104
+ "test/fixtures/app/vendor/lua/ltm.h",
105
+ "test/fixtures/app/vendor/lua/lua.c",
106
+ "test/fixtures/app/vendor/lua/lua.h",
107
+ "test/fixtures/app/vendor/lua/lua_dub_helper.h",
108
+ "test/fixtures/app/vendor/lua/luac",
109
+ "test/fixtures/app/vendor/lua/luac.c",
110
+ "test/fixtures/app/vendor/lua/luaconf.h",
111
+ "test/fixtures/app/vendor/lua/lualib.h",
112
+ "test/fixtures/app/vendor/lua/lundump.c",
113
+ "test/fixtures/app/vendor/lua/lundump.h",
114
+ "test/fixtures/app/vendor/lua/lvm.c",
115
+ "test/fixtures/app/vendor/lua/lvm.h",
116
+ "test/fixtures/app/vendor/lua/lzio.c",
117
+ "test/fixtures/app/vendor/lua/lzio.h",
118
+ "test/fixtures/app/vendor/lua/matrix.h",
119
+ "test/fixtures/app/vendor/lua/print.c",
120
+ "test/fixtures/app/vendor/lua/test/README",
121
+ "test/fixtures/app/vendor/lua/test/bisect.lua",
122
+ "test/fixtures/app/vendor/lua/test/cf.lua",
123
+ "test/fixtures/app/vendor/lua/test/echo.lua",
124
+ "test/fixtures/app/vendor/lua/test/env.lua",
125
+ "test/fixtures/app/vendor/lua/test/factorial.lua",
126
+ "test/fixtures/app/vendor/lua/test/fib.lua",
127
+ "test/fixtures/app/vendor/lua/test/fibfor.lua",
128
+ "test/fixtures/app/vendor/lua/test/globals.lua",
129
+ "test/fixtures/app/vendor/lua/test/hello.lua",
130
+ "test/fixtures/app/vendor/lua/test/life.lua",
131
+ "test/fixtures/app/vendor/lua/test/luac.lua",
132
+ "test/fixtures/app/vendor/lua/test/printf.lua",
133
+ "test/fixtures/app/vendor/lua/test/readonly.lua",
134
+ "test/fixtures/app/vendor/lua/test/sieve.lua",
135
+ "test/fixtures/app/vendor/lua/test/sort.lua",
136
+ "test/fixtures/app/vendor/lua/test/table.lua",
137
+ "test/fixtures/app/vendor/lua/test/trace-calls.lua",
138
+ "test/fixtures/app/vendor/lua/test/trace-globals.lua",
139
+ "test/fixtures/app/vendor/lua/test/xd.lua",
140
+ "test/fixtures/app/xml/classdub_1_1_matrix.xml",
141
+ "test/fixtures/app/xml/classdub_1_1_t_mat.xml",
142
+ "test/fixtures/app/xml/combine.xslt",
143
+ "test/fixtures/app/xml/compound.xsd",
144
+ "test/fixtures/app/xml/dir_53661a2bdeb1d55e60581a7e15deb763.xml",
145
+ "test/fixtures/app/xml/index.xml",
146
+ "test/fixtures/app/xml/index.xsd",
147
+ "test/fixtures/app/xml/matrix_8h.xml",
148
+ "test/fixtures/app/xml/namespacedub.xml",
149
+ "test/fixtures/classcv_1_1_mat.xml",
150
+ "test/fixtures/classcv_1_1_point__.xml",
151
+ "test/fixtures/classcv_1_1_scalar__.xml",
152
+ "test/fixtures/classcv_1_1_size__.xml",
153
+ "test/fixtures/group___magic_type.xml",
154
+ "test/fixtures/namespacecv.xml",
155
+ "test/function_group_test.rb",
156
+ "test/function_test.rb",
157
+ "test/group_test.rb",
158
+ "test/helper.rb",
159
+ "test/klass_test.rb",
160
+ "test/lua_function_gen_test.rb",
161
+ "test/namespace_test.rb",
162
+ "test/parser_test.rb"
163
+ ]
164
+ s.homepage = %q{http://github.com/ruby/dub}
165
+ s.rdoc_options = ["--charset=UTF-8"]
166
+ s.require_paths = ["lib"]
167
+ s.rubygems_version = %q{1.3.5}
168
+ s.summary = %q{A tool to ease the creation of scripting language bindings for a C++ library.}
169
+ s.test_files = [
170
+ "test/argument_test.rb",
171
+ "test/fixtures/app/make_lua_bindings.rb",
172
+ "test/function_group_test.rb",
173
+ "test/function_test.rb",
174
+ "test/group_test.rb",
175
+ "test/helper.rb",
176
+ "test/klass_test.rb",
177
+ "test/lua_function_gen_test.rb",
178
+ "test/namespace_test.rb",
179
+ "test/parser_test.rb"
180
+ ]
181
+
182
+ if s.respond_to? :specification_version then
183
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
184
+ s.specification_version = 3
185
+
186
+ if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
187
+ s.add_development_dependency(%q<shoulda>, [">= 0"])
188
+ else
189
+ s.add_dependency(%q<shoulda>, [">= 0"])
190
+ end
191
+ else
192
+ s.add_dependency(%q<shoulda>, [">= 0"])
193
+ end
194
+ end
195
+
@@ -0,0 +1,273 @@
1
+ require 'dub/entities_unescape'
2
+
3
+ module Dub
4
+ class Argument
5
+ include Dub::EntitiesUnescape
6
+ attr_reader :name, :default, :function, :xml
7
+ attr_accessor :type, :is_list, :is_list_count
8
+ TYPE_REGEXP = %r{^\s*(\w+\s+|)(const\s+|)([\w\:]+|\.\.\.)(\s*<(.+)>|)(\s*\*+|\s*&|)$}
9
+ NUMBER_TYPES = [
10
+ 'float',
11
+ 'double',
12
+ 'size_t',
13
+ 'unsigned int',
14
+ 'uint',
15
+ 'int',
16
+ 'size_t',
17
+ 'time_t',
18
+ 'unsigned int',
19
+ 'uint',
20
+ 'bool',
21
+ 'uchar',
22
+ 'void',
23
+ 'int64'
24
+ ]
25
+
26
+ STRING_TYPES = [
27
+ 'char',
28
+ ]
29
+
30
+ NATIVE_C_TYPES = NUMBER_TYPES + STRING_TYPES
31
+
32
+ class << self
33
+
34
+ # This is used to resolve overloaded functions
35
+ def type_group(arg)
36
+ # exact same type
37
+ if NATIVE_C_TYPES.include?(arg.type)
38
+ if NUMBER_TYPES.include?(arg.type)
39
+ # number synonym
40
+ arg.is_pointer? ? :number_ptr : :number
41
+ else
42
+ # string synonym
43
+ raise "Not implemented yet"
44
+ # :string
45
+ end
46
+ else
47
+ # custom class / type
48
+ arg.id_name
49
+ end
50
+ end
51
+
52
+ # group is a list of functions, index = argument index
53
+ def decision_tree(group)
54
+ hash = {}
55
+ group.each do |function|
56
+ insert_by_type(hash, function)
57
+ end
58
+ hash
59
+ end
60
+
61
+ # Insert a function into the hash, using the argument at the given
62
+ # index to filter
63
+ def insert_by_type(hash, function, index = 0)
64
+ arg = function.arguments[index]
65
+ type = arg ? type_group(arg) : nil
66
+ slot = hash[type]
67
+ if slot.nil?
68
+ hash[type] = function
69
+ elsif slot.kind_of?(Hash)
70
+ insert_by_type(slot, function, index + 1)
71
+ elsif type.nil?
72
+ # ignore
73
+
74
+ # TODO: log level
75
+ # puts "Cannot filter functions #{function.source}"
76
+ else
77
+ h = {}
78
+ insert_by_type(h, slot, index + 1)
79
+ insert_by_type(h, function, index + 1)
80
+ hash[type] = h
81
+ end
82
+ end
83
+ end
84
+
85
+ def initialize(function, xml, arg_pos = nil)
86
+ @function, @xml, @argument_position = function, xml, arg_pos
87
+ parse_xml
88
+ end
89
+
90
+ def signature
91
+ "#{is_const? ? 'const ' : ''}#{type}#{is_ref? ? '&' : ''}"
92
+ end
93
+
94
+ def full_type
95
+ if type =~ /::/
96
+ type
97
+ else
98
+ container = function.parent
99
+ if container.kind_of?(Klass)
100
+ container = container.parent
101
+ end
102
+ container ? "#{container.name}::#{type}" : type
103
+ end
104
+ end
105
+
106
+ def id_name
107
+ full_type.gsub('::', '.')
108
+ end
109
+
110
+ alias inspect signature
111
+
112
+ def is_ref?
113
+ @ref
114
+ end
115
+
116
+ def is_pointer?
117
+ !@pointer.nil?
118
+ end
119
+
120
+ def is_const?
121
+ @const
122
+ end
123
+
124
+ def has_default?
125
+ !@default.nil?
126
+ end
127
+
128
+ def is_return_value?
129
+ @is_return_value
130
+ end
131
+
132
+ def is_native?
133
+ NATIVE_C_TYPES.include?(type)
134
+ end
135
+
136
+ def type
137
+ resolve_type if @template_params
138
+ @type
139
+ end
140
+
141
+ def vararg?
142
+ @type == '...'
143
+ end
144
+
145
+ def complex?
146
+ @is_complex
147
+ end
148
+
149
+ def is_list?
150
+ @is_list
151
+ end
152
+
153
+ def is_list_count?
154
+ @is_list_count
155
+ end
156
+
157
+ def create_type
158
+ resolve_type if @template_params
159
+ (is_const? ? 'const ' : '') +
160
+ if (is_return_value? && !is_pointer?) || (is_native? && !is_pointer?)
161
+ "#{type} "
162
+ else
163
+ "#{type} *"
164
+ end
165
+ end
166
+
167
+ # this is for the cases where we have signatures like
168
+ # HuMoments(double moments[7])
169
+ def array_suffix
170
+ @array_suffix
171
+ end
172
+
173
+ def in_call_type
174
+ (is_native? || is_pointer?) ? name : "*#{name}"
175
+ end
176
+
177
+ private
178
+ def parse_xml
179
+ if type = (@xml/'type').first
180
+ # param
181
+ set_type(type)
182
+
183
+ @name = unescape((@xml/'declname').innerHTML)
184
+ if @name == ''
185
+ @name = "arg#{@argument_position}"
186
+ elsif @name == @function.name
187
+ @name = "arg_#{@name}"
188
+ end
189
+
190
+ if ref = (@xml/'defval/ref').first
191
+ ref.swap(ref.innerHTML)
192
+ end
193
+ @default = (@xml/'defval') ? unescape((@xml/'defval').innerHTML) : nil
194
+ @default = nil if @default == ''
195
+ expand_default_type if @default
196
+ else
197
+ # return value
198
+ @is_return_value = true
199
+ set_type(@xml/'')
200
+ end
201
+
202
+ if array = (@xml/'array').first
203
+ @array_suffix = array.innerHTML
204
+ end
205
+ end
206
+
207
+ def set_type(type)
208
+ # <type>const <ref refid="classcv_1_1_point__" kindref="compound">Point_</ref>&lt; int &gt; &amp;</type>
209
+ if ref = (type/'ref').first
210
+ @refid = ref[:refid]
211
+ ref.swap(ref.innerHTML)
212
+ end
213
+
214
+ type = type.innerHTML
215
+ type = unescape(type).strip
216
+
217
+ if type =~ TYPE_REGEXP
218
+ res = $~.to_a
219
+
220
+ if res[1].strip == 'const'
221
+ res[2] = res[1]
222
+ res[1] = ""
223
+ end
224
+
225
+ @const = res[2].strip == 'const'
226
+ @type = res[3]
227
+
228
+ if res[6] == ''
229
+ @pointer = nil
230
+ @res = nil
231
+ elsif res[6] =~ /^\s*(\*+)\s*$/
232
+ @pointer = $1
233
+ else
234
+ @ref = res[6].strip
235
+ end
236
+
237
+ @template_params = res[5] ? res[5].split(',').map(&:strip) : nil
238
+ else
239
+ # ERROR
240
+ end
241
+ end
242
+
243
+ # Replace something like AUTO_STEP by cv::Mat::AUTO_STEP
244
+ def expand_default_type
245
+ container = @function.parent
246
+ if container && container.enums.include?(@default)
247
+ @default = "#{container.full_type}::#{@default}"
248
+ elsif container = container.parent && container.enums.include?(@default)
249
+ @default = "#{container.full_type}::#{@default}"
250
+ end
251
+ end
252
+
253
+ def resolve_type
254
+ params = @template_params
255
+ @template_params = nil
256
+ if container = @function.parent
257
+ if container.kind_of?(Klass)
258
+ container = container.parent
259
+ end
260
+ if container && tclass = container.template_class(@type)
261
+ if instanciation = tclass.instanciations[params]
262
+ @type = instanciation.name
263
+ return
264
+ end
265
+ end
266
+ end
267
+
268
+ @type = "#{@type}< #{params.join(', ')} >"
269
+ Dub.logger.warn "Could not resolve templated type #{@type}"
270
+ @is_complex = true
271
+ end
272
+ end
273
+ end # Namespace
@@ -0,0 +1,16 @@
1
+ module Dub
2
+ module EntitiesUnescape
3
+ ENTITIES = {
4
+ '&amp;' => '&',
5
+ '&lt;' => '<',
6
+ '&gt;' => '>'
7
+ }
8
+
9
+ def unescape(str)
10
+ ENTITIES.each do |k,v|
11
+ str.gsub!(k, v)
12
+ end
13
+ str
14
+ end
15
+ end
16
+ end