rufus-lua-win 5.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (459) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +17 -0
  3. data/Gemfile +4 -0
  4. data/LICENSE.txt +22 -0
  5. data/README.md +69 -0
  6. data/Rakefile +1 -0
  7. data/lib/rufus/lua/win.rb +18 -0
  8. data/lib/rufus/lua/win/version.rb +7 -0
  9. data/rufus-lua-win.gemspec +23 -0
  10. data/vendor/lua/bin/liblua.dll +0 -0
  11. data/vendor/lua/lib/lua/LuaXml.lua +119 -0
  12. data/vendor/lua/lib/lua/alien.lua +250 -0
  13. data/vendor/lua/lib/lua/alien/core.dll +0 -0
  14. data/vendor/lua/lib/lua/alien/struct.dll +0 -0
  15. data/vendor/lua/lib/lua/base.lua +536 -0
  16. data/vendor/lua/lib/lua/bin.lua +20 -0
  17. data/vendor/lua/lib/lua/bit.dll +0 -0
  18. data/vendor/lua/lib/lua/cdlua.dll +0 -0
  19. data/vendor/lua/lib/lua/cdluacontextplus.dll +0 -0
  20. data/vendor/lua/lib/lua/cdluagl.dll +0 -0
  21. data/vendor/lua/lib/lua/cdluaim.dll +0 -0
  22. data/vendor/lua/lib/lua/cdluapdf.dll +0 -0
  23. data/vendor/lua/lib/lua/copas.lua +543 -0
  24. data/vendor/lua/lib/lua/coxpcall.lua +57 -0
  25. data/vendor/lua/lib/lua/date.lua +745 -0
  26. data/vendor/lua/lib/lua/debug_ext.lua +84 -0
  27. data/vendor/lua/lib/lua/debug_init.lua +2 -0
  28. data/vendor/lua/lib/lua/des56.dll +0 -0
  29. data/vendor/lua/lib/lua/dist/config.lua +109 -0
  30. data/vendor/lua/lib/lua/dist/constraints.lua +271 -0
  31. data/vendor/lua/lib/lua/dist/depends.lua +601 -0
  32. data/vendor/lua/lib/lua/dist/git.lua +307 -0
  33. data/vendor/lua/lib/lua/dist/init.lua +278 -0
  34. data/vendor/lua/lib/lua/dist/manifest.lua +225 -0
  35. data/vendor/lua/lib/lua/dist/package.lua +583 -0
  36. data/vendor/lua/lib/lua/dist/sys.lua +367 -0
  37. data/vendor/lua/lib/lua/dist/utils.lua +130 -0
  38. data/vendor/lua/lib/lua/ex.dll +0 -0
  39. data/vendor/lua/lib/lua/fstable.lua +116 -0
  40. data/vendor/lua/lib/lua/getopt.lua +273 -0
  41. data/vendor/lua/lib/lua/git.lua +5 -0
  42. data/vendor/lua/lib/lua/git/core.dll +0 -0
  43. data/vendor/lua/lib/lua/git/objects.lua +121 -0
  44. data/vendor/lua/lib/lua/git/pack.lua +316 -0
  45. data/vendor/lua/lib/lua/git/protocol.lua +188 -0
  46. data/vendor/lua/lib/lua/git/repo.lua +283 -0
  47. data/vendor/lua/lib/lua/git/util.lua +233 -0
  48. data/vendor/lua/lib/lua/gzio.dll +0 -0
  49. data/vendor/lua/lib/lua/gzip.lua +81 -0
  50. data/vendor/lua/lib/lua/iconv.dll +0 -0
  51. data/vendor/lua/lib/lua/imlua.dll +0 -0
  52. data/vendor/lua/lib/lua/imlua_fftw.dll +0 -0
  53. data/vendor/lua/lib/lua/imlua_jp2.dll +0 -0
  54. data/vendor/lua/lib/lua/imlua_process.dll +0 -0
  55. data/vendor/lua/lib/lua/imlua_process_omp.dll +0 -0
  56. data/vendor/lua/lib/lua/io_ext.lua +115 -0
  57. data/vendor/lua/lib/lua/iuplua.dll +0 -0
  58. data/vendor/lua/lib/lua/iuplua_mglplot.dll +0 -0
  59. data/vendor/lua/lib/lua/iuplua_pplot.dll +0 -0
  60. data/vendor/lua/lib/lua/iupluacd.dll +0 -0
  61. data/vendor/lua/lib/lua/iupluacontrols.dll +0 -0
  62. data/vendor/lua/lib/lua/iupluagl.dll +0 -0
  63. data/vendor/lua/lib/lua/iupluaim.dll +0 -0
  64. data/vendor/lua/lib/lua/iupluaimglib.dll +0 -0
  65. data/vendor/lua/lib/lua/iupluatuio.dll +0 -0
  66. data/vendor/lua/lib/lua/lanes-keeper.lua +302 -0
  67. data/vendor/lua/lib/lua/lanes.lua +591 -0
  68. data/vendor/lua/lib/lua/lanes/core.dll +0 -0
  69. data/vendor/lua/lib/lua/lcs.lua +55 -0
  70. data/vendor/lua/lib/lua/lemock.lua +659 -0
  71. data/vendor/lua/lib/lua/lfs.dll +0 -0
  72. data/vendor/lua/lib/lua/list.lua +375 -0
  73. data/vendor/lua/lib/lua/logging.lua +189 -0
  74. data/vendor/lua/lib/lua/logging/console.lua +22 -0
  75. data/vendor/lua/lib/lua/logging/email.lua +44 -0
  76. data/vendor/lua/lib/lua/logging/file.lua +55 -0
  77. data/vendor/lua/lib/lua/logging/rolling_file.lua +81 -0
  78. data/vendor/lua/lib/lua/logging/socket.lua +35 -0
  79. data/vendor/lua/lib/lua/logging/sql.lua +64 -0
  80. data/vendor/lua/lib/lua/loop/base.lua +68 -0
  81. data/vendor/lua/lib/lua/loop/cached.lua +312 -0
  82. data/vendor/lua/lib/lua/loop/collection/MapWithArrayOfKeys.lua +64 -0
  83. data/vendor/lua/lib/lua/loop/collection/ObjectCache.lua +39 -0
  84. data/vendor/lua/lib/lua/loop/collection/OrderedSet.lua +164 -0
  85. data/vendor/lua/lib/lua/loop/collection/PriorityQueue.lua +86 -0
  86. data/vendor/lua/lib/lua/loop/collection/UnorderedArray.lua +32 -0
  87. data/vendor/lua/lib/lua/loop/collection/UnorderedArraySet.lua +56 -0
  88. data/vendor/lua/lib/lua/loop/compiler/Arguments.lua +108 -0
  89. data/vendor/lua/lib/lua/loop/compiler/Conditional.lua +50 -0
  90. data/vendor/lua/lib/lua/loop/compiler/Expression.lua +215 -0
  91. data/vendor/lua/lib/lua/loop/component/base.lua +221 -0
  92. data/vendor/lua/lib/lua/loop/component/contained.lua +71 -0
  93. data/vendor/lua/lib/lua/loop/component/dynamic.lua +223 -0
  94. data/vendor/lua/lib/lua/loop/component/intercepted.lua +354 -0
  95. data/vendor/lua/lib/lua/loop/component/wrapped.lua +195 -0
  96. data/vendor/lua/lib/lua/loop/debug/Inspector.lua +521 -0
  97. data/vendor/lua/lib/lua/loop/debug/Matcher.lua +192 -0
  98. data/vendor/lua/lib/lua/loop/debug/Verbose.lua +266 -0
  99. data/vendor/lua/lib/lua/loop/debug/Viewer.lua +200 -0
  100. data/vendor/lua/lib/lua/loop/multiple.lua +105 -0
  101. data/vendor/lua/lib/lua/loop/object/Exception.lua +57 -0
  102. data/vendor/lua/lib/lua/loop/object/Publisher.lua +43 -0
  103. data/vendor/lua/lib/lua/loop/object/Wrapper.lua +39 -0
  104. data/vendor/lua/lib/lua/loop/scoped.lua +585 -0
  105. data/vendor/lua/lib/lua/loop/serial/FileStream.lua +48 -0
  106. data/vendor/lua/lib/lua/loop/serial/Serializer.lua +291 -0
  107. data/vendor/lua/lib/lua/loop/serial/SocketStream.lua +51 -0
  108. data/vendor/lua/lib/lua/loop/serial/StringStream.lua +47 -0
  109. data/vendor/lua/lib/lua/loop/simple.lua +75 -0
  110. data/vendor/lua/lib/lua/loop/table.lua +71 -0
  111. data/vendor/lua/lib/lua/loop/thread/CoSocket.lua +416 -0
  112. data/vendor/lua/lib/lua/loop/thread/IOScheduler.lua +170 -0
  113. data/vendor/lua/lib/lua/loop/thread/Scheduler.lua +327 -0
  114. data/vendor/lua/lib/lua/loop/thread/SocketScheduler.lua +88 -0
  115. data/vendor/lua/lib/lua/loop/thread/Timer.lua +54 -0
  116. data/vendor/lua/lib/lua/lpeg.dll +0 -0
  117. data/vendor/lua/lib/lua/ltn12.lua +292 -0
  118. data/vendor/lua/lib/lua/luaXML_lib.dll +0 -0
  119. data/vendor/lua/lib/lua/luacurl.dll +0 -0
  120. data/vendor/lua/lib/lua/luadoc/config.lua +34 -0
  121. data/vendor/lua/lib/lua/luadoc/doclet/debug.lua +46 -0
  122. data/vendor/lua/lib/lua/luadoc/doclet/formatter.lua +84 -0
  123. data/vendor/lua/lib/lua/luadoc/doclet/html.lua +289 -0
  124. data/vendor/lua/lib/lua/luadoc/doclet/html/file.lp +113 -0
  125. data/vendor/lua/lib/lua/luadoc/doclet/html/function.lp +64 -0
  126. data/vendor/lua/lib/lua/luadoc/doclet/html/index.lp +70 -0
  127. data/vendor/lua/lib/lua/luadoc/doclet/html/luadoc.css +286 -0
  128. data/vendor/lua/lib/lua/luadoc/doclet/html/menu.lp +55 -0
  129. data/vendor/lua/lib/lua/luadoc/doclet/html/module.lp +109 -0
  130. data/vendor/lua/lib/lua/luadoc/doclet/html/table.lp +15 -0
  131. data/vendor/lua/lib/lua/luadoc/doclet/raw.lua +12 -0
  132. data/vendor/lua/lib/lua/luadoc/init.lua +58 -0
  133. data/vendor/lua/lib/lua/luadoc/lp.lua +130 -0
  134. data/vendor/lua/lib/lua/luadoc/taglet/standard.lua +495 -0
  135. data/vendor/lua/lib/lua/luadoc/taglet/standard/tags.lua +171 -0
  136. data/vendor/lua/lib/lua/luadoc/util.lua +233 -0
  137. data/vendor/lua/lib/lua/luagl.dll +0 -0
  138. data/vendor/lua/lib/lua/luaglu.dll +0 -0
  139. data/vendor/lua/lib/lua/luaidl.lua +113 -0
  140. data/vendor/lua/lib/lua/luaidl/lex.lua +793 -0
  141. data/vendor/lua/lib/lua/luaidl/pre.lua +149 -0
  142. data/vendor/lua/lib/lua/luaidl/sin.lua +3631 -0
  143. data/vendor/lua/lib/lua/luarocks/add.lua +108 -0
  144. data/vendor/lua/lib/lua/luarocks/admin_remove.lua +87 -0
  145. data/vendor/lua/lib/lua/luarocks/build.lua +330 -0
  146. data/vendor/lua/lib/lua/luarocks/build/builtin.lua +253 -0
  147. data/vendor/lua/lib/lua/luarocks/build/cmake.lua +54 -0
  148. data/vendor/lua/lib/lua/luarocks/build/command.lua +32 -0
  149. data/vendor/lua/lib/lua/luarocks/build/make.lua +92 -0
  150. data/vendor/lua/lib/lua/luarocks/cache.lua +85 -0
  151. data/vendor/lua/lib/lua/luarocks/cfg.lua +449 -0
  152. data/vendor/lua/lib/lua/luarocks/command_line.lua +163 -0
  153. data/vendor/lua/lib/lua/luarocks/deps.lua +654 -0
  154. data/vendor/lua/lib/lua/luarocks/dir.lua +69 -0
  155. data/vendor/lua/lib/lua/luarocks/download.lua +90 -0
  156. data/vendor/lua/lib/lua/luarocks/fetch.lua +321 -0
  157. data/vendor/lua/lib/lua/luarocks/fetch/cvs.lua +44 -0
  158. data/vendor/lua/lib/lua/luarocks/fetch/git.lua +81 -0
  159. data/vendor/lua/lib/lua/luarocks/fetch/git_file.lua +17 -0
  160. data/vendor/lua/lib/lua/luarocks/fetch/hg.lua +54 -0
  161. data/vendor/lua/lib/lua/luarocks/fetch/sscm.lua +42 -0
  162. data/vendor/lua/lib/lua/luarocks/fetch/svn.lua +53 -0
  163. data/vendor/lua/lib/lua/luarocks/fs.lua +40 -0
  164. data/vendor/lua/lib/lua/luarocks/fs/lua.lua +676 -0
  165. data/vendor/lua/lib/lua/luarocks/fs/unix.lua +88 -0
  166. data/vendor/lua/lib/lua/luarocks/fs/unix/tools.lua +325 -0
  167. data/vendor/lua/lib/lua/luarocks/fs/win32.lua +107 -0
  168. data/vendor/lua/lib/lua/luarocks/fs/win32/tools.lua +334 -0
  169. data/vendor/lua/lib/lua/luarocks/help.lua +101 -0
  170. data/vendor/lua/lib/lua/luarocks/index.lua +172 -0
  171. data/vendor/lua/lib/lua/luarocks/install.lua +151 -0
  172. data/vendor/lua/lib/lua/luarocks/list.lua +35 -0
  173. data/vendor/lua/lib/lua/luarocks/loader.lua +228 -0
  174. data/vendor/lua/lib/lua/luarocks/make.lua +71 -0
  175. data/vendor/lua/lib/lua/luarocks/make_manifest.lua +34 -0
  176. data/vendor/lua/lib/lua/luarocks/manif.lua +360 -0
  177. data/vendor/lua/lib/lua/luarocks/manif_core.lua +75 -0
  178. data/vendor/lua/lib/lua/luarocks/new_version.lua +141 -0
  179. data/vendor/lua/lib/lua/luarocks/pack.lua +205 -0
  180. data/vendor/lua/lib/lua/luarocks/path.lua +315 -0
  181. data/vendor/lua/lib/lua/luarocks/persist.lua +173 -0
  182. data/vendor/lua/lib/lua/luarocks/refresh_cache.lua +30 -0
  183. data/vendor/lua/lib/lua/luarocks/remove.lua +135 -0
  184. data/vendor/lua/lib/lua/luarocks/rep.lua +313 -0
  185. data/vendor/lua/lib/lua/luarocks/require.lua +6 -0
  186. data/vendor/lua/lib/lua/luarocks/search.lua +399 -0
  187. data/vendor/lua/lib/lua/luarocks/show.lua +138 -0
  188. data/vendor/lua/lib/lua/luarocks/site_config.lua +23 -0
  189. data/vendor/lua/lib/lua/luarocks/tools/patch.lua +712 -0
  190. data/vendor/lua/lib/lua/luarocks/tools/tar.lua +144 -0
  191. data/vendor/lua/lib/lua/luarocks/tools/zip.lua +245 -0
  192. data/vendor/lua/lib/lua/luarocks/type_check.lua +267 -0
  193. data/vendor/lua/lib/lua/luarocks/unpack.lua +151 -0
  194. data/vendor/lua/lib/lua/luarocks/util.lua +420 -0
  195. data/vendor/lua/lib/lua/luarocks/validate.lua +164 -0
  196. data/vendor/lua/lib/lua/luars232.dll +0 -0
  197. data/vendor/lua/lib/lua/luasql/mysql.dll +0 -0
  198. data/vendor/lua/lib/lua/luasql/postgres.dll +0 -0
  199. data/vendor/lua/lib/lua/luasql/sqlite3.dll +0 -0
  200. data/vendor/lua/lib/lua/luaunit.lua +601 -0
  201. data/vendor/lua/lib/lua/lxp.dll +0 -0
  202. data/vendor/lua/lib/lua/lxp/lom.lua +60 -0
  203. data/vendor/lua/lib/lua/math_ext.lua +27 -0
  204. data/vendor/lua/lib/lua/mbox.lua +53 -0
  205. data/vendor/lua/lib/lua/md5.lua +19 -0
  206. data/vendor/lua/lib/lua/md5/core.dll +0 -0
  207. data/vendor/lua/lib/lua/metalua.lua +0 -0
  208. data/vendor/lua/lib/lua/metalua/ast_to_string.mlua +553 -0
  209. data/vendor/lua/lib/lua/metalua/base.lua +104 -0
  210. data/vendor/lua/lib/lua/metalua/bytecode.lua +0 -0
  211. data/vendor/lua/lib/lua/metalua/clopts.mlua +204 -0
  212. data/vendor/lua/lib/lua/metalua/compiler.lua +3 -0
  213. data/vendor/lua/lib/lua/metalua/dollar.mlua +24 -0
  214. data/vendor/lua/lib/lua/metalua/extension/H-runtime.mlua +216 -0
  215. data/vendor/lua/lib/lua/metalua/extension/H.mlua +22 -0
  216. data/vendor/lua/lib/lua/metalua/extension/anaphoric.mlua +54 -0
  217. data/vendor/lua/lib/lua/metalua/extension/clist.mlua +149 -0
  218. data/vendor/lua/lib/lua/metalua/extension/continue.mlua +53 -0
  219. data/vendor/lua/lib/lua/metalua/extension/localin.mlua +2 -0
  220. data/vendor/lua/lib/lua/metalua/extension/log.mlua +39 -0
  221. data/vendor/lua/lib/lua/metalua/extension/match.mlua +374 -0
  222. data/vendor/lua/lib/lua/metalua/extension/ternary.mlua +10 -0
  223. data/vendor/lua/lib/lua/metalua/extension/trycatch.mlua +189 -0
  224. data/vendor/lua/lib/lua/metalua/extension/types-runtime.mlua +159 -0
  225. data/vendor/lua/lib/lua/metalua/extension/types.mlua +352 -0
  226. data/vendor/lua/lib/lua/metalua/extension/withdo.mlua +30 -0
  227. data/vendor/lua/lib/lua/metalua/extension/xglobal-runtime.lua +41 -0
  228. data/vendor/lua/lib/lua/metalua/extension/xglobal.mlua +20 -0
  229. data/vendor/lua/lib/lua/metalua/extension/xloop.mlua +100 -0
  230. data/vendor/lua/lib/lua/metalua/extension/xmatch.mlua +216 -0
  231. data/vendor/lua/lib/lua/metalua/metaloop.mlua +76 -0
  232. data/vendor/lua/lib/lua/metalua/mlc.lua +0 -0
  233. data/vendor/lua/lib/lua/metalua/mlc_xcall.lua +119 -0
  234. data/vendor/lua/lib/lua/metalua/mlp.lua +0 -0
  235. data/vendor/lua/lib/lua/metalua/package2.lua +101 -0
  236. data/vendor/lua/lib/lua/metalua/runtime.lua +3 -0
  237. data/vendor/lua/lib/lua/metalua/string2.lua +44 -0
  238. data/vendor/lua/lib/lua/metalua/table2.lua +372 -0
  239. data/vendor/lua/lib/lua/metalua/walk.mlua +304 -0
  240. data/vendor/lua/lib/lua/metalua/walk/bindings.mlua +41 -0
  241. data/vendor/lua/lib/lua/metalua/walk/id.mlua +186 -0
  242. data/vendor/lua/lib/lua/metalua/walk/scope.lua +54 -0
  243. data/vendor/lua/lib/lua/mime.lua +87 -0
  244. data/vendor/lua/lib/lua/mime/core.dll +0 -0
  245. data/vendor/lua/lib/lua/mobdebug.lua +1484 -0
  246. data/vendor/lua/lib/lua/modules.lua +16 -0
  247. data/vendor/lua/lib/lua/object.lua +56 -0
  248. data/vendor/lua/lib/lua/oil/Exception.lua +26 -0
  249. data/vendor/lua/lib/lua/oil/arch.lua +27 -0
  250. data/vendor/lua/lib/lua/oil/arch/basic/client.lua +29 -0
  251. data/vendor/lua/lib/lua/oil/arch/basic/common.lua +13 -0
  252. data/vendor/lua/lib/lua/oil/arch/basic/server.lua +27 -0
  253. data/vendor/lua/lib/lua/oil/arch/cooperative/common.lua +10 -0
  254. data/vendor/lua/lib/lua/oil/arch/cooperative/server.lua +16 -0
  255. data/vendor/lua/lib/lua/oil/arch/corba/client.lua +39 -0
  256. data/vendor/lua/lib/lua/oil/arch/corba/common.lua +58 -0
  257. data/vendor/lua/lib/lua/oil/arch/corba/intercepted/client.lua +9 -0
  258. data/vendor/lua/lib/lua/oil/arch/corba/intercepted/server.lua +9 -0
  259. data/vendor/lua/lib/lua/oil/arch/corba/server.lua +35 -0
  260. data/vendor/lua/lib/lua/oil/arch/ludo/byref.lua +18 -0
  261. data/vendor/lua/lib/lua/oil/arch/ludo/client.lua +19 -0
  262. data/vendor/lua/lib/lua/oil/arch/ludo/common.lua +18 -0
  263. data/vendor/lua/lib/lua/oil/arch/ludo/server.lua +19 -0
  264. data/vendor/lua/lib/lua/oil/arch/typed/client.lua +27 -0
  265. data/vendor/lua/lib/lua/oil/arch/typed/common.lua +9 -0
  266. data/vendor/lua/lib/lua/oil/arch/typed/server.lua +18 -0
  267. data/vendor/lua/lib/lua/oil/assert.lua +87 -0
  268. data/vendor/lua/lib/lua/oil/builder.lua +45 -0
  269. data/vendor/lua/lib/lua/oil/builder/basic/client.lua +31 -0
  270. data/vendor/lua/lib/lua/oil/builder/basic/common.lua +11 -0
  271. data/vendor/lua/lib/lua/oil/builder/basic/server.lua +13 -0
  272. data/vendor/lua/lib/lua/oil/builder/cooperative/common.lua +11 -0
  273. data/vendor/lua/lib/lua/oil/builder/cooperative/server.lua +11 -0
  274. data/vendor/lua/lib/lua/oil/builder/corba/client.lua +13 -0
  275. data/vendor/lua/lib/lua/oil/builder/corba/common.lua +24 -0
  276. data/vendor/lua/lib/lua/oil/builder/corba/gencode.lua +13 -0
  277. data/vendor/lua/lib/lua/oil/builder/corba/intercepted/client.lua +11 -0
  278. data/vendor/lua/lib/lua/oil/builder/corba/intercepted/server.lua +11 -0
  279. data/vendor/lua/lib/lua/oil/builder/corba/server.lua +13 -0
  280. data/vendor/lua/lib/lua/oil/builder/lua/client.lua +11 -0
  281. data/vendor/lua/lib/lua/oil/builder/lua/server.lua +12 -0
  282. data/vendor/lua/lib/lua/oil/builder/ludo/byref.lua +13 -0
  283. data/vendor/lua/lib/lua/oil/builder/ludo/client.lua +13 -0
  284. data/vendor/lua/lib/lua/oil/builder/ludo/common.lua +14 -0
  285. data/vendor/lua/lib/lua/oil/builder/ludo/server.lua +13 -0
  286. data/vendor/lua/lib/lua/oil/builder/typed/client.lua +16 -0
  287. data/vendor/lua/lib/lua/oil/builder/typed/server.lua +12 -0
  288. data/vendor/lua/lib/lua/oil/compat.lua +846 -0
  289. data/vendor/lua/lib/lua/oil/component.lua +1 -0
  290. data/vendor/lua/lib/lua/oil/corba/giop.lua +301 -0
  291. data/vendor/lua/lib/lua/oil/corba/giop/Codec.lua +1568 -0
  292. data/vendor/lua/lib/lua/oil/corba/giop/CodecGen.lua +589 -0
  293. data/vendor/lua/lib/lua/oil/corba/giop/Exception.lua +25 -0
  294. data/vendor/lua/lib/lua/oil/corba/giop/Indexer.lua +63 -0
  295. data/vendor/lua/lib/lua/oil/corba/giop/Listener.lua +343 -0
  296. data/vendor/lua/lib/lua/oil/corba/giop/Messenger.lua +228 -0
  297. data/vendor/lua/lib/lua/oil/corba/giop/Referrer.lua +180 -0
  298. data/vendor/lua/lib/lua/oil/corba/giop/Requester.lua +462 -0
  299. data/vendor/lua/lib/lua/oil/corba/idl.lua +597 -0
  300. data/vendor/lua/lib/lua/oil/corba/idl/Compiler.lua +133 -0
  301. data/vendor/lua/lib/lua/oil/corba/idl/Importer.lua +235 -0
  302. data/vendor/lua/lib/lua/oil/corba/idl/Indexer.lua +95 -0
  303. data/vendor/lua/lib/lua/oil/corba/idl/Registry.lua +1821 -0
  304. data/vendor/lua/lib/lua/oil/corba/idl/ir.lua +847 -0
  305. data/vendor/lua/lib/lua/oil/corba/idl/sysex.lua +21 -0
  306. data/vendor/lua/lib/lua/oil/corba/iiop/Profiler.lua +200 -0
  307. data/vendor/lua/lib/lua/oil/corba/intercepted/Listener.lua +158 -0
  308. data/vendor/lua/lib/lua/oil/corba/intercepted/Requester.lua +181 -0
  309. data/vendor/lua/lib/lua/oil/corba/services/event.lua +126 -0
  310. data/vendor/lua/lib/lua/oil/corba/services/event/ConsumerAdmin.lua +50 -0
  311. data/vendor/lua/lib/lua/oil/corba/services/event/EventFactory.lua +15 -0
  312. data/vendor/lua/lib/lua/oil/corba/services/event/EventQueue.lua +37 -0
  313. data/vendor/lua/lib/lua/oil/corba/services/event/ProxyPushConsumer.lua +75 -0
  314. data/vendor/lua/lib/lua/oil/corba/services/event/ProxyPushSupplier.lua +62 -0
  315. data/vendor/lua/lib/lua/oil/corba/services/event/SingleDeferredDispatcher.lua +60 -0
  316. data/vendor/lua/lib/lua/oil/corba/services/event/SingleSynchronousDispatcher.lua +39 -0
  317. data/vendor/lua/lib/lua/oil/corba/services/event/SupplierAdmin.lua +50 -0
  318. data/vendor/lua/lib/lua/oil/corba/services/naming.lua +436 -0
  319. data/vendor/lua/lib/lua/oil/kernel/base/Acceptor.lua +268 -0
  320. data/vendor/lua/lib/lua/oil/kernel/base/Channels.lua +121 -0
  321. data/vendor/lua/lib/lua/oil/kernel/base/Connector.lua +147 -0
  322. data/vendor/lua/lib/lua/oil/kernel/base/Dispatcher.lua +99 -0
  323. data/vendor/lua/lib/lua/oil/kernel/base/Proxies.lua +86 -0
  324. data/vendor/lua/lib/lua/oil/kernel/base/Proxies/asynchronous.lua +56 -0
  325. data/vendor/lua/lib/lua/oil/kernel/base/Proxies/protected.lua +17 -0
  326. data/vendor/lua/lib/lua/oil/kernel/base/Proxies/synchronous.lua +17 -0
  327. data/vendor/lua/lib/lua/oil/kernel/base/Proxies/utils.lua +29 -0
  328. data/vendor/lua/lib/lua/oil/kernel/base/Receiver.lua +110 -0
  329. data/vendor/lua/lib/lua/oil/kernel/base/Servants.lua +207 -0
  330. data/vendor/lua/lib/lua/oil/kernel/base/Sockets.lua +44 -0
  331. data/vendor/lua/lib/lua/oil/kernel/cooperative/Receiver.lua +139 -0
  332. data/vendor/lua/lib/lua/oil/kernel/intercepted/Listener.lua +47 -0
  333. data/vendor/lua/lib/lua/oil/kernel/intercepted/Requester.lua +58 -0
  334. data/vendor/lua/lib/lua/oil/kernel/lua/Dispatcher.lua +76 -0
  335. data/vendor/lua/lib/lua/oil/kernel/lua/Proxies.lua +69 -0
  336. data/vendor/lua/lib/lua/oil/kernel/typed/Dispatcher.lua +91 -0
  337. data/vendor/lua/lib/lua/oil/kernel/typed/Proxies.lua +153 -0
  338. data/vendor/lua/lib/lua/oil/kernel/typed/Servants.lua +137 -0
  339. data/vendor/lua/lib/lua/oil/ludo/Codec.lua +66 -0
  340. data/vendor/lua/lib/lua/oil/ludo/CodecByRef.lua +103 -0
  341. data/vendor/lua/lib/lua/oil/ludo/Listener.lua +151 -0
  342. data/vendor/lua/lib/lua/oil/ludo/Referrer.lua +72 -0
  343. data/vendor/lua/lib/lua/oil/ludo/Requester.lua +107 -0
  344. data/vendor/lua/lib/lua/oil/oo.lua +1 -0
  345. data/vendor/lua/lib/lua/oil/port.lua +1 -0
  346. data/vendor/lua/lib/lua/oil/properties.lua +57 -0
  347. data/vendor/lua/lib/lua/oil/verbose.lua +133 -0
  348. data/vendor/lua/lib/lua/package_ext.lua +15 -0
  349. data/vendor/lua/lib/lua/parser.lua +268 -0
  350. data/vendor/lua/lib/lua/pl/Date.lua +555 -0
  351. data/vendor/lua/lib/lua/pl/List.lua +613 -0
  352. data/vendor/lua/lib/lua/pl/Map.lua +113 -0
  353. data/vendor/lua/lib/lua/pl/MultiMap.lua +62 -0
  354. data/vendor/lua/lib/lua/pl/OrderedMap.lua +151 -0
  355. data/vendor/lua/lib/lua/pl/Set.lua +153 -0
  356. data/vendor/lua/lib/lua/pl/app.lua +165 -0
  357. data/vendor/lua/lib/lua/pl/array2d.lua +501 -0
  358. data/vendor/lua/lib/lua/pl/class.lua +180 -0
  359. data/vendor/lua/lib/lua/pl/comprehension.lua +286 -0
  360. data/vendor/lua/lib/lua/pl/config.lua +176 -0
  361. data/vendor/lua/lib/lua/pl/data.lua +606 -0
  362. data/vendor/lua/lib/lua/pl/dir.lua +475 -0
  363. data/vendor/lua/lib/lua/pl/file.lua +70 -0
  364. data/vendor/lua/lib/lua/pl/func.lua +376 -0
  365. data/vendor/lua/lib/lua/pl/init.lua +68 -0
  366. data/vendor/lua/lib/lua/pl/input.lua +173 -0
  367. data/vendor/lua/lib/lua/pl/lapp.lua +407 -0
  368. data/vendor/lua/lib/lua/pl/lexer.lua +456 -0
  369. data/vendor/lua/lib/lua/pl/luabalanced.lua +264 -0
  370. data/vendor/lua/lib/lua/pl/operator.lua +201 -0
  371. data/vendor/lua/lib/lua/pl/path.lua +398 -0
  372. data/vendor/lua/lib/lua/pl/permute.lua +63 -0
  373. data/vendor/lua/lib/lua/pl/platf/luajava.lua +101 -0
  374. data/vendor/lua/lib/lua/pl/pretty.lua +285 -0
  375. data/vendor/lua/lib/lua/pl/seq.lua +551 -0
  376. data/vendor/lua/lib/lua/pl/sip.lua +344 -0
  377. data/vendor/lua/lib/lua/pl/strict.lua +70 -0
  378. data/vendor/lua/lib/lua/pl/stringio.lua +158 -0
  379. data/vendor/lua/lib/lua/pl/stringx.lua +440 -0
  380. data/vendor/lua/lib/lua/pl/tablex.lua +817 -0
  381. data/vendor/lua/lib/lua/pl/template.lua +103 -0
  382. data/vendor/lua/lib/lua/pl/test.lua +135 -0
  383. data/vendor/lua/lib/lua/pl/text.lua +243 -0
  384. data/vendor/lua/lib/lua/pl/utils.lua +550 -0
  385. data/vendor/lua/lib/lua/pl/xml.lua +689 -0
  386. data/vendor/lua/lib/lua/profiler.dll +0 -0
  387. data/vendor/lua/lib/lua/re.lua +248 -0
  388. data/vendor/lua/lib/lua/rex_onig.dll +0 -0
  389. data/vendor/lua/lib/lua/rex_pcre.dll +0 -0
  390. data/vendor/lua/lib/lua/rex_posix.dll +0 -0
  391. data/vendor/lua/lib/lua/rings.dll +0 -0
  392. data/vendor/lua/lib/lua/serialize.lua +193 -0
  393. data/vendor/lua/lib/lua/set.lua +149 -0
  394. data/vendor/lua/lib/lua/socket.lua +133 -0
  395. data/vendor/lua/lib/lua/socket/core.dll +0 -0
  396. data/vendor/lua/lib/lua/socket/ftp.lua +281 -0
  397. data/vendor/lua/lib/lua/socket/http.lua +350 -0
  398. data/vendor/lua/lib/lua/socket/smtp.lua +251 -0
  399. data/vendor/lua/lib/lua/socket/tp.lua +123 -0
  400. data/vendor/lua/lib/lua/socket/url.lua +297 -0
  401. data/vendor/lua/lib/lua/ssl.dll +0 -0
  402. data/vendor/lua/lib/lua/ssl.lua +93 -0
  403. data/vendor/lua/lib/lua/ssl/https.lua +138 -0
  404. data/vendor/lua/lib/lua/stable.lua +28 -0
  405. data/vendor/lua/lib/lua/std.lua +16 -0
  406. data/vendor/lua/lib/lua/strbuf.lua +32 -0
  407. data/vendor/lua/lib/lua/strict.lua +45 -0
  408. data/vendor/lua/lib/lua/string_ext.lua +274 -0
  409. data/vendor/lua/lib/lua/table_ext.lua +117 -0
  410. data/vendor/lua/lib/lua/tar.lua +262 -0
  411. data/vendor/lua/lib/lua/task.dll +0 -0
  412. data/vendor/lua/lib/lua/tree.lua +81 -0
  413. data/vendor/lua/lib/lua/unicode.dll +0 -0
  414. data/vendor/lua/lib/lua/verbose_require.lua +11 -0
  415. data/vendor/lua/lib/lua/vstruct.lua +86 -0
  416. data/vendor/lua/lib/lua/vstruct/ast.lua +192 -0
  417. data/vendor/lua/lib/lua/vstruct/ast/Bitpack.lua +33 -0
  418. data/vendor/lua/lib/lua/vstruct/ast/Generator.lua +174 -0
  419. data/vendor/lua/lib/lua/vstruct/ast/IO.lua +45 -0
  420. data/vendor/lua/lib/lua/vstruct/ast/List.lua +56 -0
  421. data/vendor/lua/lib/lua/vstruct/ast/Name.lua +20 -0
  422. data/vendor/lua/lib/lua/vstruct/ast/Repeat.lua +23 -0
  423. data/vendor/lua/lib/lua/vstruct/ast/Root.lua +19 -0
  424. data/vendor/lua/lib/lua/vstruct/ast/Table.lua +65 -0
  425. data/vendor/lua/lib/lua/vstruct/cursor.lua +81 -0
  426. data/vendor/lua/lib/lua/vstruct/io.lua +45 -0
  427. data/vendor/lua/lib/lua/vstruct/io/a.lua +24 -0
  428. data/vendor/lua/lib/lua/vstruct/io/b.lua +28 -0
  429. data/vendor/lua/lib/lua/vstruct/io/bigendian.lua +21 -0
  430. data/vendor/lua/lib/lua/vstruct/io/c.lua +25 -0
  431. data/vendor/lua/lib/lua/vstruct/io/defaults.lua +24 -0
  432. data/vendor/lua/lib/lua/vstruct/io/endianness.lua +41 -0
  433. data/vendor/lua/lib/lua/vstruct/io/f.lua +129 -0
  434. data/vendor/lua/lib/lua/vstruct/io/hostendian.lua +21 -0
  435. data/vendor/lua/lib/lua/vstruct/io/i.lua +42 -0
  436. data/vendor/lua/lib/lua/vstruct/io/littleendian.lua +21 -0
  437. data/vendor/lua/lib/lua/vstruct/io/m.lua +62 -0
  438. data/vendor/lua/lib/lua/vstruct/io/p.lua +23 -0
  439. data/vendor/lua/lib/lua/vstruct/io/s.lua +27 -0
  440. data/vendor/lua/lib/lua/vstruct/io/seekb.lua +18 -0
  441. data/vendor/lua/lib/lua/vstruct/io/seekf.lua +18 -0
  442. data/vendor/lua/lib/lua/vstruct/io/seekto.lua +18 -0
  443. data/vendor/lua/lib/lua/vstruct/io/u.lua +54 -0
  444. data/vendor/lua/lib/lua/vstruct/io/x.lua +34 -0
  445. data/vendor/lua/lib/lua/vstruct/io/z.lua +63 -0
  446. data/vendor/lua/lib/lua/vstruct/lexer.lua +100 -0
  447. data/vendor/lua/lib/lua/vstruct/pack.lua +142 -0
  448. data/vendor/lua/lib/lua/vstruct/test.lua +47 -0
  449. data/vendor/lua/lib/lua/vstruct/test/basic.lua +73 -0
  450. data/vendor/lua/lib/lua/vstruct/test/common.lua +100 -0
  451. data/vendor/lua/lib/lua/vstruct/test/fp-bigendian.lua +56 -0
  452. data/vendor/lua/lib/lua/vstruct/test/fp-littleendian.lua +56 -0
  453. data/vendor/lua/lib/lua/vstruct/test/struct-test-gen.lua +1230 -0
  454. data/vendor/lua/lib/lua/vstruct/unpack.lua +126 -0
  455. data/vendor/lua/lib/lua/wx.dll +0 -0
  456. data/vendor/lua/lib/lua/xml.lua +75 -0
  457. data/vendor/lua/lib/lua/zip.dll +0 -0
  458. data/vendor/lua/lib/lua/zlib.dll +0 -0
  459. metadata +529 -0
@@ -0,0 +1,375 @@
1
+ --- Tables as lists.
2
+ module ("list", package.seeall)
3
+
4
+ require "base"
5
+ require "table_ext"
6
+
7
+
8
+ --- An iterator over the elements of a list.
9
+ -- @param l list to iterate over
10
+ -- @return iterator function which returns successive elements of the list
11
+ -- @return the list <code>l</code> as above
12
+ -- @return <code>true</code>
13
+ function elems (l)
14
+ local n = 0
15
+ return function (l)
16
+ n = n + 1
17
+ if n <= #l then
18
+ return l[n]
19
+ end
20
+ end,
21
+ l, true
22
+ end
23
+
24
+ --- An iterator over the elements of a list, in reverse.
25
+ -- @param l list to iterate over
26
+ -- @return iterator function which returns precessive elements of the list
27
+ -- @return the list <code>l</code> as above
28
+ -- @return <code>true</code>
29
+ function relems (l)
30
+ local n = #l + 1
31
+ return function (l)
32
+ n = n - 1
33
+ if n > 0 then
34
+ return l[n]
35
+ end
36
+ end,
37
+ l, true
38
+ end
39
+
40
+ --- Map a function over a list.
41
+ -- @param f function
42
+ -- @param l list
43
+ -- @return result list <code>{f (l[1]), ..., f (l[#l])}</code>
44
+ function map (f, l)
45
+ return _G.map (f, elems, l)
46
+ end
47
+
48
+ --- Map a function over a list of lists.
49
+ -- @param f function
50
+ -- @param ls list of lists
51
+ -- @return result list <code>{f (unpack (ls[1]))), ..., f (unpack (ls[#ls]))}</code>
52
+ function mapWith (f, l)
53
+ return _G.map (compose (f, unpack), elems, l)
54
+ end
55
+
56
+ --- Filter a list according to a predicate.
57
+ -- @param p predicate (function of one argument returning a boolean)
58
+ -- @param l list of lists
59
+ -- @return result list containing elements <code>e</code> of
60
+ -- <code>l</code> for which <code>p (e)</code> is true
61
+ function filter (p, l)
62
+ return _G.filter (p, elems, l)
63
+ end
64
+
65
+ --- Return a slice of a list.
66
+ -- (Negative list indices count from the end of the list.)
67
+ -- @param l list
68
+ -- @param from start of slice (default: 1)
69
+ -- @param to end of slice (default: <code>#l</code>)
70
+ -- @return <code>{l[from], ..., l[to]}</code>
71
+ function slice (l, from, to)
72
+ local m = {}
73
+ local len = #l
74
+ from = from or 1
75
+ to = to or len
76
+ if from < 0 then
77
+ from = from + len + 1
78
+ end
79
+ if to < 0 then
80
+ to = to + len + 1
81
+ end
82
+ for i = from, to do
83
+ table.insert (m, l[i])
84
+ end
85
+ return m
86
+ end
87
+
88
+ --- Return a list with its first element removed.
89
+ -- @param l list
90
+ -- @return <code>{l[2], ..., l[#l]}</code>
91
+ function tail (l)
92
+ return slice (l, 2)
93
+ end
94
+
95
+ --- Fold a binary function through a list left associatively.
96
+ -- @param f function
97
+ -- @param e element to place in left-most position
98
+ -- @param l list
99
+ -- @return result
100
+ function foldl (f, e, l)
101
+ return _G.fold (f, e, elems, l)
102
+ end
103
+
104
+ --- Fold a binary function through a list right associatively.
105
+ -- @param f function
106
+ -- @param e element to place in right-most position
107
+ -- @param l list
108
+ -- @return result
109
+ function foldr (f, e, l)
110
+ return _G.fold (function (x, y) return f (y, x) end,
111
+ e, relems, l)
112
+ end
113
+
114
+ --- Prepend an item to a list.
115
+ -- @param l list
116
+ -- @param x item
117
+ -- @return <code>{x, unpack (l)}</code>
118
+ function cons (l, x)
119
+ return {x, unpack (l)}
120
+ end
121
+
122
+ --- Append an item to a list.
123
+ -- @param l list
124
+ -- @param x item
125
+ -- @return <code>{l[1], ..., l[#l], x}</code>
126
+ function append (l, x)
127
+ local r = {unpack (l)}
128
+ table.insert (r, x)
129
+ return r
130
+ end
131
+
132
+ --- Concatenate lists.
133
+ -- @param ... lists
134
+ -- @return <code>{l<sub>1</sub>[1], ...,
135
+ -- l<sub>1</sub>[#l<sub>1</sub>], ..., l<sub>n</sub>[1], ...,
136
+ -- l<sub>n</sub>[#l<sub>n</sub>]}</code>
137
+ function concat (...)
138
+ local r = {}
139
+ for l in elems ({...}) do
140
+ for v in elems (l) do
141
+ table.insert (r, v)
142
+ end
143
+ end
144
+ return r
145
+ end
146
+
147
+ --- Repeat a list.
148
+ -- @param l list
149
+ -- @param n number of times to repeat
150
+ -- @return <code>n</code> copies of <code>l</code> appended together
151
+ function rep (l, n)
152
+ local r = {}
153
+ for i = 1, n do
154
+ r = list.concat (r, l)
155
+ end
156
+ return r
157
+ end
158
+
159
+ --- Reverse a list.
160
+ -- @param l list
161
+ -- @return list <code>{l[#l], ..., l[1]}</code>
162
+ function reverse (l)
163
+ local m = {}
164
+ for i = #l, 1, -1 do
165
+ table.insert (m, l[i])
166
+ end
167
+ return m
168
+ end
169
+
170
+ --- Transpose a list of lists.
171
+ -- This function in Lua is equivalent to zip and unzip in more
172
+ -- strongly typed languages.
173
+ -- @param ls <code>{{l<sub>1,1</sub>, ..., l<sub>1,c</sub>}, ...,
174
+ -- {l<sub>r,1<sub>, ..., l<sub>r,c</sub>}}</code>
175
+ -- @return <code>{{l<sub>1,1</sub>, ..., l<sub>r,1</sub>}, ...,
176
+ -- {l<sub>1,c</sub>, ..., l<sub>r,c</sub>}}</code>
177
+ function transpose (ls)
178
+ local ms, len = {}, #ls
179
+ for i = 1, math.max (unpack (map (function (l) return #l end, ls))) do
180
+ ms[i] = {}
181
+ for j = 1, len do
182
+ ms[i][j] = ls[j][i]
183
+ end
184
+ end
185
+ return ms
186
+ end
187
+
188
+ --- Zip lists together with a function.
189
+ -- @param f function
190
+ -- @param ls list of lists
191
+ -- @return <code>{f (ls[1][1], ..., ls[#ls][1]), ..., f (ls[1][N], ..., ls[#ls][N])</code>
192
+ -- where <code>N = max {map (function (l) return #l end, ls)}</code>
193
+ function zipWith (f, ls)
194
+ return mapWith (f, transpose (ls))
195
+ end
196
+
197
+ --- Project a list of fields from a list of tables.
198
+ -- @param f field to project
199
+ -- @param l list of tables
200
+ -- @return list of <code>f</code> fields
201
+ function project (f, l)
202
+ return map (function (t) return t[f] end, l)
203
+ end
204
+
205
+ --- Turn a table into a list of pairs.
206
+ -- <br>FIXME: Find a better name.
207
+ -- @param t table <code>{i<sub>1</sub>=v<sub>1</sub>, ...,
208
+ -- i<sub>n</sub>=v<sub>n</sub>}</code>
209
+ -- @return list <code>{{i<sub>1</sub>, v<sub>1</sub>}, ...,
210
+ -- {i<sub>n</sub>, v<sub>n</sub>}}</code>
211
+ function enpair (t)
212
+ local ls = {}
213
+ for i, v in pairs (t) do
214
+ table.insert (ls, {i, v})
215
+ end
216
+ return ls
217
+ end
218
+
219
+ --- Turn a list of pairs into a table.
220
+ -- <br>FIXME: Find a better name.
221
+ -- @param ls list <code>{{i<sub>1</sub>, v<sub>1</sub>}, ...,
222
+ -- {i<sub>n</sub>, v<sub>n</sub>}}</code>
223
+ -- @return table <code>{i<sub>1</sub>=v<sub>1</sub>, ...,
224
+ -- i<sub>n</sub>=v<sub>n</sub>}</code>
225
+ function depair (ls)
226
+ local t = {}
227
+ for v in elems (ls) do
228
+ t[v[1]] = v[2]
229
+ end
230
+ return t
231
+ end
232
+
233
+ --- Flatten a list.
234
+ -- @param l list to flatten
235
+ -- @return flattened list
236
+ function flatten (l)
237
+ local m = {}
238
+ for v in ileaves (l) do
239
+ table.insert (m, v)
240
+ end
241
+ return m
242
+ end
243
+
244
+ --- Shape a list according to a list of dimensions.
245
+ --
246
+ -- Dimensions are given outermost first and items from the original
247
+ -- list are distributed breadth first; there may be one 0 indicating
248
+ -- an indefinite number. Hence, <code>{0}</code> is a flat list,
249
+ -- <code>{1}</code> is a singleton, <code>{2, 0}</code> is a list of
250
+ -- two lists, and <code>{0, 2}</code> is a list of pairs.
251
+ -- <br>
252
+ -- Algorithm: turn shape into all positive numbers, calculating
253
+ -- the zero if necessary and making sure there is at most one;
254
+ -- recursively walk the shape, adding empty tables until the bottom
255
+ -- level is reached at which point add table items instead, using a
256
+ -- counter to walk the flattened original list.
257
+ -- <br>
258
+ -- @param s <code>{d<sub>1</sub>, ..., d<sub>n</sub>}</code>
259
+ -- @param l list to reshape
260
+ -- @return reshaped list
261
+ -- FIXME: Use ileaves instead of flatten (needs a while instead of a
262
+ -- for in fill function)
263
+ function shape (s, l)
264
+ l = flatten (l)
265
+ -- Check the shape and calculate the size of the zero, if any
266
+ local size = 1
267
+ local zero
268
+ for i, v in ipairs (s) do
269
+ if v == 0 then
270
+ if zero then -- bad shape: two zeros
271
+ return nil
272
+ else
273
+ zero = i
274
+ end
275
+ else
276
+ size = size * v
277
+ end
278
+ end
279
+ if zero then
280
+ s[zero] = math.ceil (#l / size)
281
+ end
282
+ local function fill (i, d)
283
+ if d > #s then
284
+ return l[i], i + 1
285
+ else
286
+ local t = {}
287
+ for j = 1, s[d] do
288
+ local e
289
+ e, i = fill (i, d + 1)
290
+ table.insert (t, e)
291
+ end
292
+ return t, i
293
+ end
294
+ end
295
+ return (fill (1, 1))
296
+ end
297
+
298
+ --- Make an index of a list of tables on a given field
299
+ -- @param f field
300
+ -- @param l list of tables <code>{t<sub>1</sub>, ...,
301
+ -- t<sub>n</sub>}</code>
302
+ -- @return index <code>{t<sub>1</sub>[f]=1, ...,
303
+ -- t<sub>n</sub>[f]=n}</code>
304
+ function indexKey (f, l)
305
+ local m = {}
306
+ for i, v in ipairs (l) do
307
+ local k = v[f]
308
+ if k then
309
+ m[k] = i
310
+ end
311
+ end
312
+ return m
313
+ end
314
+
315
+ --- Copy a list of tables, indexed on a given field
316
+ -- @param f field whose value should be used as index
317
+ -- @param l list of tables <code>{i<sub>1</sub>=t<sub>1</sub>, ...,
318
+ -- i<sub>n</sub>=t<sub>n</sub>}</code>
319
+ -- @return index <code>{t<sub>1</sub>[f]=t<sub>1</sub>, ...,
320
+ -- t<sub>n</sub>[f]=t<sub>n</sub>}</code>
321
+ function indexValue (f, l)
322
+ local m = {}
323
+ for i, v in ipairs (l) do
324
+ local k = v[f]
325
+ if k then
326
+ m[k] = v
327
+ end
328
+ end
329
+ return m
330
+ end
331
+ permuteOn = indexValue
332
+
333
+ --- Compare two lists element by element left-to-right
334
+ -- @param l first list
335
+ -- @param m second list
336
+ -- @return -1 if <code>l</code> is less than <code>m</code>, 0 if they
337
+ -- are the same, and 1 if <code>l</code> is greater than <code>m</code>
338
+ function compare (l, m)
339
+ for i = 1, math.min (#l, #m) do
340
+ if l[i] < m[i] then
341
+ return -1
342
+ elseif l[i] > m[i] then
343
+ return 1
344
+ end
345
+ end
346
+ if #l < #m then
347
+ return -1
348
+ elseif #l > #m then
349
+ return 1
350
+ end
351
+ return 0
352
+ end
353
+
354
+ -- Metamethods for lists
355
+ metatable = {
356
+ -- list .. table = list.concat
357
+ __concat = list.concat,
358
+ -- list == list retains its referential meaning
359
+ -- list < list = list.compare returns < 0
360
+ __lt = function (l, m) return compare (l, m) < 0 end,
361
+ -- list <= list = list.compare returns <= 0
362
+ __le = function (l, m) return compare (l, m) <= 0 end,
363
+ __append = list.append,
364
+ }
365
+
366
+ --- List constructor.
367
+ -- Needed in order to use metamethods.
368
+ -- @param t list (as a table)
369
+ -- @return list (with list metamethods)
370
+ function new (l)
371
+ return setmetatable (l, metatable)
372
+ end
373
+
374
+ -- Function forms of operators
375
+ _G.op[".."] = list.concat
@@ -0,0 +1,189 @@
1
+ -------------------------------------------------------------------------------
2
+ -- includes a new tostring function that handles tables recursively
3
+ --
4
+ -- @author Danilo Tuler (tuler@ideais.com.br)
5
+ -- @author Andre Carregal (info@keplerproject.org)
6
+ -- @author Thiago Costa Ponte (thiago@ideais.com.br)
7
+ --
8
+ -- @copyright 2004-2011 Kepler Project
9
+ -------------------------------------------------------------------------------
10
+
11
+ local type, table, string, _tostring, tonumber = type, table, string, tostring, tonumber
12
+ local select = select
13
+ local error = error
14
+ local format = string.format
15
+
16
+ module("logging")
17
+
18
+ -- Meta information
19
+ _COPYRIGHT = "Copyright (C) 2004-2011 Kepler Project"
20
+ _DESCRIPTION = "A simple API to use logging features in Lua"
21
+ _VERSION = "LuaLogging 1.1.4"
22
+
23
+ -- The DEBUG Level designates fine-grained instring.formational events that are most
24
+ -- useful to debug an application
25
+ DEBUG = "DEBUG"
26
+
27
+ -- The INFO level designates instring.formational messages that highlight the
28
+ -- progress of the application at coarse-grained level
29
+ INFO = "INFO"
30
+
31
+ -- The WARN level designates potentially harmful situations
32
+ WARN = "WARN"
33
+
34
+ -- The ERROR level designates error events that might still allow the
35
+ -- application to continue running
36
+ ERROR = "ERROR"
37
+
38
+ -- The FATAL level designates very severe error events that will presumably
39
+ -- lead the application to abort
40
+ FATAL = "FATAL"
41
+
42
+ local LEVEL = {"DEBUG", "INFO", "WARN", "ERROR", "FATAL"}
43
+ local MAX_LEVELS = #LEVEL
44
+ -- make level names to order
45
+ for i=1,MAX_LEVELS do
46
+ LEVEL[LEVEL[i]] = i
47
+ end
48
+
49
+ -- private log function, with support for formating a complex log message.
50
+ local function LOG_MSG(self, level, fmt, ...)
51
+ local f_type = type(fmt)
52
+ if f_type == 'string' then
53
+ if select('#', ...) > 0 then
54
+ return self:append(level, format(fmt, ...))
55
+ else
56
+ -- only a single string, no formating needed.
57
+ return self:append(level, fmt)
58
+ end
59
+ elseif f_type == 'function' then
60
+ -- fmt should be a callable function which returns the message to log
61
+ return self:append(level, fmt(...))
62
+ end
63
+ -- fmt is not a string and not a function, just call tostring() on it.
64
+ return self:append(level, tostring(fmt))
65
+ end
66
+
67
+ -- create the proxy functions for each log level.
68
+ local LEVEL_FUNCS = {}
69
+ for i=1,MAX_LEVELS do
70
+ local level = LEVEL[i]
71
+ LEVEL_FUNCS[i] = function(self, ...)
72
+ -- no level checking needed here, this function will only be called if it's level is active.
73
+ return LOG_MSG(self, level, ...)
74
+ end
75
+ end
76
+
77
+ -- do nothing function for disabled levels.
78
+ local function disable_level() end
79
+
80
+ -- improved assertion funciton.
81
+ local function assert(exp, ...)
82
+ -- if exp is true, we are finished so don't do any processing of the parameters
83
+ if exp then return exp, ... end
84
+ -- assertion failed, raise error
85
+ error(format(...), 2)
86
+ end
87
+
88
+ -------------------------------------------------------------------------------
89
+ -- Creates a new logger object
90
+ -- @param append Function used by the logger to append a message with a
91
+ -- log-level to the log stream.
92
+ -- @return Table representing the new logger object.
93
+ -------------------------------------------------------------------------------
94
+ function new(append)
95
+
96
+ if type(append) ~= "function" then
97
+ return nil, "Appender must be a function."
98
+ end
99
+
100
+ local logger = {}
101
+ logger.append = append
102
+
103
+ logger.setLevel = function (self, level)
104
+ local order = LEVEL[level]
105
+ assert(order, "undefined level `%s'", _tostring(level))
106
+ self.level = level
107
+ self.level_order = order
108
+ -- enable/disable levels
109
+ for i=1,MAX_LEVELS do
110
+ local name = LEVEL[i]:lower()
111
+ if i >= order then
112
+ self[name] = LEVEL_FUNCS[i]
113
+ else
114
+ self[name] = disable_level
115
+ end
116
+ end
117
+ end
118
+
119
+ -- generic log function.
120
+ logger.log = function (self, level, ...)
121
+ local order = LEVEL[level]
122
+ assert(order, "undefined level `%s'", _tostring(level))
123
+ if order < self.level_order then
124
+ return
125
+ end
126
+ return LOG_MSG(self, level, ...)
127
+ end
128
+
129
+ -- initialize log level.
130
+ logger:setLevel(DEBUG)
131
+ return logger
132
+ end
133
+
134
+
135
+ -------------------------------------------------------------------------------
136
+ -- Prepares the log message
137
+ -------------------------------------------------------------------------------
138
+ function prepareLogMsg(pattern, dt, level, message)
139
+
140
+ local logMsg = pattern or "%date %level %message\n"
141
+ message = string.gsub(message, "%%", "%%%%")
142
+ logMsg = string.gsub(logMsg, "%%date", dt)
143
+ logMsg = string.gsub(logMsg, "%%level", level)
144
+ logMsg = string.gsub(logMsg, "%%message", message)
145
+ return logMsg
146
+ end
147
+
148
+
149
+ -------------------------------------------------------------------------------
150
+ -- Converts a Lua value to a string
151
+ --
152
+ -- Converts Table fields in alphabetical order
153
+ -------------------------------------------------------------------------------
154
+ function tostring(value)
155
+ local str = ''
156
+
157
+ if (type(value) ~= 'table') then
158
+ if (type(value) == 'string') then
159
+ str = string.format("%q", value)
160
+ else
161
+ str = _tostring(value)
162
+ end
163
+ else
164
+ local auxTable = {}
165
+ table.foreach(value, function(i, v)
166
+ if (tonumber(i) ~= i) then
167
+ table.insert(auxTable, i)
168
+ else
169
+ table.insert(auxTable, tostring(i))
170
+ end
171
+ end)
172
+ table.sort(auxTable)
173
+
174
+ str = str..'{'
175
+ local separator = ""
176
+ local entry = ""
177
+ table.foreachi (auxTable, function (i, fieldName)
178
+ if ((tonumber(fieldName)) and (tonumber(fieldName) > 0)) then
179
+ entry = tostring(value[tonumber(fieldName)])
180
+ else
181
+ entry = fieldName.." = "..tostring(value[fieldName])
182
+ end
183
+ str = str..separator..entry
184
+ separator = ", "
185
+ end)
186
+ str = str..'}'
187
+ end
188
+ return str
189
+ end