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.
- checksums.yaml +7 -0
- data/.gitignore +17 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +22 -0
- data/README.md +69 -0
- data/Rakefile +1 -0
- data/lib/rufus/lua/win.rb +18 -0
- data/lib/rufus/lua/win/version.rb +7 -0
- data/rufus-lua-win.gemspec +23 -0
- data/vendor/lua/bin/liblua.dll +0 -0
- data/vendor/lua/lib/lua/LuaXml.lua +119 -0
- data/vendor/lua/lib/lua/alien.lua +250 -0
- data/vendor/lua/lib/lua/alien/core.dll +0 -0
- data/vendor/lua/lib/lua/alien/struct.dll +0 -0
- data/vendor/lua/lib/lua/base.lua +536 -0
- data/vendor/lua/lib/lua/bin.lua +20 -0
- data/vendor/lua/lib/lua/bit.dll +0 -0
- data/vendor/lua/lib/lua/cdlua.dll +0 -0
- data/vendor/lua/lib/lua/cdluacontextplus.dll +0 -0
- data/vendor/lua/lib/lua/cdluagl.dll +0 -0
- data/vendor/lua/lib/lua/cdluaim.dll +0 -0
- data/vendor/lua/lib/lua/cdluapdf.dll +0 -0
- data/vendor/lua/lib/lua/copas.lua +543 -0
- data/vendor/lua/lib/lua/coxpcall.lua +57 -0
- data/vendor/lua/lib/lua/date.lua +745 -0
- data/vendor/lua/lib/lua/debug_ext.lua +84 -0
- data/vendor/lua/lib/lua/debug_init.lua +2 -0
- data/vendor/lua/lib/lua/des56.dll +0 -0
- data/vendor/lua/lib/lua/dist/config.lua +109 -0
- data/vendor/lua/lib/lua/dist/constraints.lua +271 -0
- data/vendor/lua/lib/lua/dist/depends.lua +601 -0
- data/vendor/lua/lib/lua/dist/git.lua +307 -0
- data/vendor/lua/lib/lua/dist/init.lua +278 -0
- data/vendor/lua/lib/lua/dist/manifest.lua +225 -0
- data/vendor/lua/lib/lua/dist/package.lua +583 -0
- data/vendor/lua/lib/lua/dist/sys.lua +367 -0
- data/vendor/lua/lib/lua/dist/utils.lua +130 -0
- data/vendor/lua/lib/lua/ex.dll +0 -0
- data/vendor/lua/lib/lua/fstable.lua +116 -0
- data/vendor/lua/lib/lua/getopt.lua +273 -0
- data/vendor/lua/lib/lua/git.lua +5 -0
- data/vendor/lua/lib/lua/git/core.dll +0 -0
- data/vendor/lua/lib/lua/git/objects.lua +121 -0
- data/vendor/lua/lib/lua/git/pack.lua +316 -0
- data/vendor/lua/lib/lua/git/protocol.lua +188 -0
- data/vendor/lua/lib/lua/git/repo.lua +283 -0
- data/vendor/lua/lib/lua/git/util.lua +233 -0
- data/vendor/lua/lib/lua/gzio.dll +0 -0
- data/vendor/lua/lib/lua/gzip.lua +81 -0
- data/vendor/lua/lib/lua/iconv.dll +0 -0
- data/vendor/lua/lib/lua/imlua.dll +0 -0
- data/vendor/lua/lib/lua/imlua_fftw.dll +0 -0
- data/vendor/lua/lib/lua/imlua_jp2.dll +0 -0
- data/vendor/lua/lib/lua/imlua_process.dll +0 -0
- data/vendor/lua/lib/lua/imlua_process_omp.dll +0 -0
- data/vendor/lua/lib/lua/io_ext.lua +115 -0
- data/vendor/lua/lib/lua/iuplua.dll +0 -0
- data/vendor/lua/lib/lua/iuplua_mglplot.dll +0 -0
- data/vendor/lua/lib/lua/iuplua_pplot.dll +0 -0
- data/vendor/lua/lib/lua/iupluacd.dll +0 -0
- data/vendor/lua/lib/lua/iupluacontrols.dll +0 -0
- data/vendor/lua/lib/lua/iupluagl.dll +0 -0
- data/vendor/lua/lib/lua/iupluaim.dll +0 -0
- data/vendor/lua/lib/lua/iupluaimglib.dll +0 -0
- data/vendor/lua/lib/lua/iupluatuio.dll +0 -0
- data/vendor/lua/lib/lua/lanes-keeper.lua +302 -0
- data/vendor/lua/lib/lua/lanes.lua +591 -0
- data/vendor/lua/lib/lua/lanes/core.dll +0 -0
- data/vendor/lua/lib/lua/lcs.lua +55 -0
- data/vendor/lua/lib/lua/lemock.lua +659 -0
- data/vendor/lua/lib/lua/lfs.dll +0 -0
- data/vendor/lua/lib/lua/list.lua +375 -0
- data/vendor/lua/lib/lua/logging.lua +189 -0
- data/vendor/lua/lib/lua/logging/console.lua +22 -0
- data/vendor/lua/lib/lua/logging/email.lua +44 -0
- data/vendor/lua/lib/lua/logging/file.lua +55 -0
- data/vendor/lua/lib/lua/logging/rolling_file.lua +81 -0
- data/vendor/lua/lib/lua/logging/socket.lua +35 -0
- data/vendor/lua/lib/lua/logging/sql.lua +64 -0
- data/vendor/lua/lib/lua/loop/base.lua +68 -0
- data/vendor/lua/lib/lua/loop/cached.lua +312 -0
- data/vendor/lua/lib/lua/loop/collection/MapWithArrayOfKeys.lua +64 -0
- data/vendor/lua/lib/lua/loop/collection/ObjectCache.lua +39 -0
- data/vendor/lua/lib/lua/loop/collection/OrderedSet.lua +164 -0
- data/vendor/lua/lib/lua/loop/collection/PriorityQueue.lua +86 -0
- data/vendor/lua/lib/lua/loop/collection/UnorderedArray.lua +32 -0
- data/vendor/lua/lib/lua/loop/collection/UnorderedArraySet.lua +56 -0
- data/vendor/lua/lib/lua/loop/compiler/Arguments.lua +108 -0
- data/vendor/lua/lib/lua/loop/compiler/Conditional.lua +50 -0
- data/vendor/lua/lib/lua/loop/compiler/Expression.lua +215 -0
- data/vendor/lua/lib/lua/loop/component/base.lua +221 -0
- data/vendor/lua/lib/lua/loop/component/contained.lua +71 -0
- data/vendor/lua/lib/lua/loop/component/dynamic.lua +223 -0
- data/vendor/lua/lib/lua/loop/component/intercepted.lua +354 -0
- data/vendor/lua/lib/lua/loop/component/wrapped.lua +195 -0
- data/vendor/lua/lib/lua/loop/debug/Inspector.lua +521 -0
- data/vendor/lua/lib/lua/loop/debug/Matcher.lua +192 -0
- data/vendor/lua/lib/lua/loop/debug/Verbose.lua +266 -0
- data/vendor/lua/lib/lua/loop/debug/Viewer.lua +200 -0
- data/vendor/lua/lib/lua/loop/multiple.lua +105 -0
- data/vendor/lua/lib/lua/loop/object/Exception.lua +57 -0
- data/vendor/lua/lib/lua/loop/object/Publisher.lua +43 -0
- data/vendor/lua/lib/lua/loop/object/Wrapper.lua +39 -0
- data/vendor/lua/lib/lua/loop/scoped.lua +585 -0
- data/vendor/lua/lib/lua/loop/serial/FileStream.lua +48 -0
- data/vendor/lua/lib/lua/loop/serial/Serializer.lua +291 -0
- data/vendor/lua/lib/lua/loop/serial/SocketStream.lua +51 -0
- data/vendor/lua/lib/lua/loop/serial/StringStream.lua +47 -0
- data/vendor/lua/lib/lua/loop/simple.lua +75 -0
- data/vendor/lua/lib/lua/loop/table.lua +71 -0
- data/vendor/lua/lib/lua/loop/thread/CoSocket.lua +416 -0
- data/vendor/lua/lib/lua/loop/thread/IOScheduler.lua +170 -0
- data/vendor/lua/lib/lua/loop/thread/Scheduler.lua +327 -0
- data/vendor/lua/lib/lua/loop/thread/SocketScheduler.lua +88 -0
- data/vendor/lua/lib/lua/loop/thread/Timer.lua +54 -0
- data/vendor/lua/lib/lua/lpeg.dll +0 -0
- data/vendor/lua/lib/lua/ltn12.lua +292 -0
- data/vendor/lua/lib/lua/luaXML_lib.dll +0 -0
- data/vendor/lua/lib/lua/luacurl.dll +0 -0
- data/vendor/lua/lib/lua/luadoc/config.lua +34 -0
- data/vendor/lua/lib/lua/luadoc/doclet/debug.lua +46 -0
- data/vendor/lua/lib/lua/luadoc/doclet/formatter.lua +84 -0
- data/vendor/lua/lib/lua/luadoc/doclet/html.lua +289 -0
- data/vendor/lua/lib/lua/luadoc/doclet/html/file.lp +113 -0
- data/vendor/lua/lib/lua/luadoc/doclet/html/function.lp +64 -0
- data/vendor/lua/lib/lua/luadoc/doclet/html/index.lp +70 -0
- data/vendor/lua/lib/lua/luadoc/doclet/html/luadoc.css +286 -0
- data/vendor/lua/lib/lua/luadoc/doclet/html/menu.lp +55 -0
- data/vendor/lua/lib/lua/luadoc/doclet/html/module.lp +109 -0
- data/vendor/lua/lib/lua/luadoc/doclet/html/table.lp +15 -0
- data/vendor/lua/lib/lua/luadoc/doclet/raw.lua +12 -0
- data/vendor/lua/lib/lua/luadoc/init.lua +58 -0
- data/vendor/lua/lib/lua/luadoc/lp.lua +130 -0
- data/vendor/lua/lib/lua/luadoc/taglet/standard.lua +495 -0
- data/vendor/lua/lib/lua/luadoc/taglet/standard/tags.lua +171 -0
- data/vendor/lua/lib/lua/luadoc/util.lua +233 -0
- data/vendor/lua/lib/lua/luagl.dll +0 -0
- data/vendor/lua/lib/lua/luaglu.dll +0 -0
- data/vendor/lua/lib/lua/luaidl.lua +113 -0
- data/vendor/lua/lib/lua/luaidl/lex.lua +793 -0
- data/vendor/lua/lib/lua/luaidl/pre.lua +149 -0
- data/vendor/lua/lib/lua/luaidl/sin.lua +3631 -0
- data/vendor/lua/lib/lua/luarocks/add.lua +108 -0
- data/vendor/lua/lib/lua/luarocks/admin_remove.lua +87 -0
- data/vendor/lua/lib/lua/luarocks/build.lua +330 -0
- data/vendor/lua/lib/lua/luarocks/build/builtin.lua +253 -0
- data/vendor/lua/lib/lua/luarocks/build/cmake.lua +54 -0
- data/vendor/lua/lib/lua/luarocks/build/command.lua +32 -0
- data/vendor/lua/lib/lua/luarocks/build/make.lua +92 -0
- data/vendor/lua/lib/lua/luarocks/cache.lua +85 -0
- data/vendor/lua/lib/lua/luarocks/cfg.lua +449 -0
- data/vendor/lua/lib/lua/luarocks/command_line.lua +163 -0
- data/vendor/lua/lib/lua/luarocks/deps.lua +654 -0
- data/vendor/lua/lib/lua/luarocks/dir.lua +69 -0
- data/vendor/lua/lib/lua/luarocks/download.lua +90 -0
- data/vendor/lua/lib/lua/luarocks/fetch.lua +321 -0
- data/vendor/lua/lib/lua/luarocks/fetch/cvs.lua +44 -0
- data/vendor/lua/lib/lua/luarocks/fetch/git.lua +81 -0
- data/vendor/lua/lib/lua/luarocks/fetch/git_file.lua +17 -0
- data/vendor/lua/lib/lua/luarocks/fetch/hg.lua +54 -0
- data/vendor/lua/lib/lua/luarocks/fetch/sscm.lua +42 -0
- data/vendor/lua/lib/lua/luarocks/fetch/svn.lua +53 -0
- data/vendor/lua/lib/lua/luarocks/fs.lua +40 -0
- data/vendor/lua/lib/lua/luarocks/fs/lua.lua +676 -0
- data/vendor/lua/lib/lua/luarocks/fs/unix.lua +88 -0
- data/vendor/lua/lib/lua/luarocks/fs/unix/tools.lua +325 -0
- data/vendor/lua/lib/lua/luarocks/fs/win32.lua +107 -0
- data/vendor/lua/lib/lua/luarocks/fs/win32/tools.lua +334 -0
- data/vendor/lua/lib/lua/luarocks/help.lua +101 -0
- data/vendor/lua/lib/lua/luarocks/index.lua +172 -0
- data/vendor/lua/lib/lua/luarocks/install.lua +151 -0
- data/vendor/lua/lib/lua/luarocks/list.lua +35 -0
- data/vendor/lua/lib/lua/luarocks/loader.lua +228 -0
- data/vendor/lua/lib/lua/luarocks/make.lua +71 -0
- data/vendor/lua/lib/lua/luarocks/make_manifest.lua +34 -0
- data/vendor/lua/lib/lua/luarocks/manif.lua +360 -0
- data/vendor/lua/lib/lua/luarocks/manif_core.lua +75 -0
- data/vendor/lua/lib/lua/luarocks/new_version.lua +141 -0
- data/vendor/lua/lib/lua/luarocks/pack.lua +205 -0
- data/vendor/lua/lib/lua/luarocks/path.lua +315 -0
- data/vendor/lua/lib/lua/luarocks/persist.lua +173 -0
- data/vendor/lua/lib/lua/luarocks/refresh_cache.lua +30 -0
- data/vendor/lua/lib/lua/luarocks/remove.lua +135 -0
- data/vendor/lua/lib/lua/luarocks/rep.lua +313 -0
- data/vendor/lua/lib/lua/luarocks/require.lua +6 -0
- data/vendor/lua/lib/lua/luarocks/search.lua +399 -0
- data/vendor/lua/lib/lua/luarocks/show.lua +138 -0
- data/vendor/lua/lib/lua/luarocks/site_config.lua +23 -0
- data/vendor/lua/lib/lua/luarocks/tools/patch.lua +712 -0
- data/vendor/lua/lib/lua/luarocks/tools/tar.lua +144 -0
- data/vendor/lua/lib/lua/luarocks/tools/zip.lua +245 -0
- data/vendor/lua/lib/lua/luarocks/type_check.lua +267 -0
- data/vendor/lua/lib/lua/luarocks/unpack.lua +151 -0
- data/vendor/lua/lib/lua/luarocks/util.lua +420 -0
- data/vendor/lua/lib/lua/luarocks/validate.lua +164 -0
- data/vendor/lua/lib/lua/luars232.dll +0 -0
- data/vendor/lua/lib/lua/luasql/mysql.dll +0 -0
- data/vendor/lua/lib/lua/luasql/postgres.dll +0 -0
- data/vendor/lua/lib/lua/luasql/sqlite3.dll +0 -0
- data/vendor/lua/lib/lua/luaunit.lua +601 -0
- data/vendor/lua/lib/lua/lxp.dll +0 -0
- data/vendor/lua/lib/lua/lxp/lom.lua +60 -0
- data/vendor/lua/lib/lua/math_ext.lua +27 -0
- data/vendor/lua/lib/lua/mbox.lua +53 -0
- data/vendor/lua/lib/lua/md5.lua +19 -0
- data/vendor/lua/lib/lua/md5/core.dll +0 -0
- data/vendor/lua/lib/lua/metalua.lua +0 -0
- data/vendor/lua/lib/lua/metalua/ast_to_string.mlua +553 -0
- data/vendor/lua/lib/lua/metalua/base.lua +104 -0
- data/vendor/lua/lib/lua/metalua/bytecode.lua +0 -0
- data/vendor/lua/lib/lua/metalua/clopts.mlua +204 -0
- data/vendor/lua/lib/lua/metalua/compiler.lua +3 -0
- data/vendor/lua/lib/lua/metalua/dollar.mlua +24 -0
- data/vendor/lua/lib/lua/metalua/extension/H-runtime.mlua +216 -0
- data/vendor/lua/lib/lua/metalua/extension/H.mlua +22 -0
- data/vendor/lua/lib/lua/metalua/extension/anaphoric.mlua +54 -0
- data/vendor/lua/lib/lua/metalua/extension/clist.mlua +149 -0
- data/vendor/lua/lib/lua/metalua/extension/continue.mlua +53 -0
- data/vendor/lua/lib/lua/metalua/extension/localin.mlua +2 -0
- data/vendor/lua/lib/lua/metalua/extension/log.mlua +39 -0
- data/vendor/lua/lib/lua/metalua/extension/match.mlua +374 -0
- data/vendor/lua/lib/lua/metalua/extension/ternary.mlua +10 -0
- data/vendor/lua/lib/lua/metalua/extension/trycatch.mlua +189 -0
- data/vendor/lua/lib/lua/metalua/extension/types-runtime.mlua +159 -0
- data/vendor/lua/lib/lua/metalua/extension/types.mlua +352 -0
- data/vendor/lua/lib/lua/metalua/extension/withdo.mlua +30 -0
- data/vendor/lua/lib/lua/metalua/extension/xglobal-runtime.lua +41 -0
- data/vendor/lua/lib/lua/metalua/extension/xglobal.mlua +20 -0
- data/vendor/lua/lib/lua/metalua/extension/xloop.mlua +100 -0
- data/vendor/lua/lib/lua/metalua/extension/xmatch.mlua +216 -0
- data/vendor/lua/lib/lua/metalua/metaloop.mlua +76 -0
- data/vendor/lua/lib/lua/metalua/mlc.lua +0 -0
- data/vendor/lua/lib/lua/metalua/mlc_xcall.lua +119 -0
- data/vendor/lua/lib/lua/metalua/mlp.lua +0 -0
- data/vendor/lua/lib/lua/metalua/package2.lua +101 -0
- data/vendor/lua/lib/lua/metalua/runtime.lua +3 -0
- data/vendor/lua/lib/lua/metalua/string2.lua +44 -0
- data/vendor/lua/lib/lua/metalua/table2.lua +372 -0
- data/vendor/lua/lib/lua/metalua/walk.mlua +304 -0
- data/vendor/lua/lib/lua/metalua/walk/bindings.mlua +41 -0
- data/vendor/lua/lib/lua/metalua/walk/id.mlua +186 -0
- data/vendor/lua/lib/lua/metalua/walk/scope.lua +54 -0
- data/vendor/lua/lib/lua/mime.lua +87 -0
- data/vendor/lua/lib/lua/mime/core.dll +0 -0
- data/vendor/lua/lib/lua/mobdebug.lua +1484 -0
- data/vendor/lua/lib/lua/modules.lua +16 -0
- data/vendor/lua/lib/lua/object.lua +56 -0
- data/vendor/lua/lib/lua/oil/Exception.lua +26 -0
- data/vendor/lua/lib/lua/oil/arch.lua +27 -0
- data/vendor/lua/lib/lua/oil/arch/basic/client.lua +29 -0
- data/vendor/lua/lib/lua/oil/arch/basic/common.lua +13 -0
- data/vendor/lua/lib/lua/oil/arch/basic/server.lua +27 -0
- data/vendor/lua/lib/lua/oil/arch/cooperative/common.lua +10 -0
- data/vendor/lua/lib/lua/oil/arch/cooperative/server.lua +16 -0
- data/vendor/lua/lib/lua/oil/arch/corba/client.lua +39 -0
- data/vendor/lua/lib/lua/oil/arch/corba/common.lua +58 -0
- data/vendor/lua/lib/lua/oil/arch/corba/intercepted/client.lua +9 -0
- data/vendor/lua/lib/lua/oil/arch/corba/intercepted/server.lua +9 -0
- data/vendor/lua/lib/lua/oil/arch/corba/server.lua +35 -0
- data/vendor/lua/lib/lua/oil/arch/ludo/byref.lua +18 -0
- data/vendor/lua/lib/lua/oil/arch/ludo/client.lua +19 -0
- data/vendor/lua/lib/lua/oil/arch/ludo/common.lua +18 -0
- data/vendor/lua/lib/lua/oil/arch/ludo/server.lua +19 -0
- data/vendor/lua/lib/lua/oil/arch/typed/client.lua +27 -0
- data/vendor/lua/lib/lua/oil/arch/typed/common.lua +9 -0
- data/vendor/lua/lib/lua/oil/arch/typed/server.lua +18 -0
- data/vendor/lua/lib/lua/oil/assert.lua +87 -0
- data/vendor/lua/lib/lua/oil/builder.lua +45 -0
- data/vendor/lua/lib/lua/oil/builder/basic/client.lua +31 -0
- data/vendor/lua/lib/lua/oil/builder/basic/common.lua +11 -0
- data/vendor/lua/lib/lua/oil/builder/basic/server.lua +13 -0
- data/vendor/lua/lib/lua/oil/builder/cooperative/common.lua +11 -0
- data/vendor/lua/lib/lua/oil/builder/cooperative/server.lua +11 -0
- data/vendor/lua/lib/lua/oil/builder/corba/client.lua +13 -0
- data/vendor/lua/lib/lua/oil/builder/corba/common.lua +24 -0
- data/vendor/lua/lib/lua/oil/builder/corba/gencode.lua +13 -0
- data/vendor/lua/lib/lua/oil/builder/corba/intercepted/client.lua +11 -0
- data/vendor/lua/lib/lua/oil/builder/corba/intercepted/server.lua +11 -0
- data/vendor/lua/lib/lua/oil/builder/corba/server.lua +13 -0
- data/vendor/lua/lib/lua/oil/builder/lua/client.lua +11 -0
- data/vendor/lua/lib/lua/oil/builder/lua/server.lua +12 -0
- data/vendor/lua/lib/lua/oil/builder/ludo/byref.lua +13 -0
- data/vendor/lua/lib/lua/oil/builder/ludo/client.lua +13 -0
- data/vendor/lua/lib/lua/oil/builder/ludo/common.lua +14 -0
- data/vendor/lua/lib/lua/oil/builder/ludo/server.lua +13 -0
- data/vendor/lua/lib/lua/oil/builder/typed/client.lua +16 -0
- data/vendor/lua/lib/lua/oil/builder/typed/server.lua +12 -0
- data/vendor/lua/lib/lua/oil/compat.lua +846 -0
- data/vendor/lua/lib/lua/oil/component.lua +1 -0
- data/vendor/lua/lib/lua/oil/corba/giop.lua +301 -0
- data/vendor/lua/lib/lua/oil/corba/giop/Codec.lua +1568 -0
- data/vendor/lua/lib/lua/oil/corba/giop/CodecGen.lua +589 -0
- data/vendor/lua/lib/lua/oil/corba/giop/Exception.lua +25 -0
- data/vendor/lua/lib/lua/oil/corba/giop/Indexer.lua +63 -0
- data/vendor/lua/lib/lua/oil/corba/giop/Listener.lua +343 -0
- data/vendor/lua/lib/lua/oil/corba/giop/Messenger.lua +228 -0
- data/vendor/lua/lib/lua/oil/corba/giop/Referrer.lua +180 -0
- data/vendor/lua/lib/lua/oil/corba/giop/Requester.lua +462 -0
- data/vendor/lua/lib/lua/oil/corba/idl.lua +597 -0
- data/vendor/lua/lib/lua/oil/corba/idl/Compiler.lua +133 -0
- data/vendor/lua/lib/lua/oil/corba/idl/Importer.lua +235 -0
- data/vendor/lua/lib/lua/oil/corba/idl/Indexer.lua +95 -0
- data/vendor/lua/lib/lua/oil/corba/idl/Registry.lua +1821 -0
- data/vendor/lua/lib/lua/oil/corba/idl/ir.lua +847 -0
- data/vendor/lua/lib/lua/oil/corba/idl/sysex.lua +21 -0
- data/vendor/lua/lib/lua/oil/corba/iiop/Profiler.lua +200 -0
- data/vendor/lua/lib/lua/oil/corba/intercepted/Listener.lua +158 -0
- data/vendor/lua/lib/lua/oil/corba/intercepted/Requester.lua +181 -0
- data/vendor/lua/lib/lua/oil/corba/services/event.lua +126 -0
- data/vendor/lua/lib/lua/oil/corba/services/event/ConsumerAdmin.lua +50 -0
- data/vendor/lua/lib/lua/oil/corba/services/event/EventFactory.lua +15 -0
- data/vendor/lua/lib/lua/oil/corba/services/event/EventQueue.lua +37 -0
- data/vendor/lua/lib/lua/oil/corba/services/event/ProxyPushConsumer.lua +75 -0
- data/vendor/lua/lib/lua/oil/corba/services/event/ProxyPushSupplier.lua +62 -0
- data/vendor/lua/lib/lua/oil/corba/services/event/SingleDeferredDispatcher.lua +60 -0
- data/vendor/lua/lib/lua/oil/corba/services/event/SingleSynchronousDispatcher.lua +39 -0
- data/vendor/lua/lib/lua/oil/corba/services/event/SupplierAdmin.lua +50 -0
- data/vendor/lua/lib/lua/oil/corba/services/naming.lua +436 -0
- data/vendor/lua/lib/lua/oil/kernel/base/Acceptor.lua +268 -0
- data/vendor/lua/lib/lua/oil/kernel/base/Channels.lua +121 -0
- data/vendor/lua/lib/lua/oil/kernel/base/Connector.lua +147 -0
- data/vendor/lua/lib/lua/oil/kernel/base/Dispatcher.lua +99 -0
- data/vendor/lua/lib/lua/oil/kernel/base/Proxies.lua +86 -0
- data/vendor/lua/lib/lua/oil/kernel/base/Proxies/asynchronous.lua +56 -0
- data/vendor/lua/lib/lua/oil/kernel/base/Proxies/protected.lua +17 -0
- data/vendor/lua/lib/lua/oil/kernel/base/Proxies/synchronous.lua +17 -0
- data/vendor/lua/lib/lua/oil/kernel/base/Proxies/utils.lua +29 -0
- data/vendor/lua/lib/lua/oil/kernel/base/Receiver.lua +110 -0
- data/vendor/lua/lib/lua/oil/kernel/base/Servants.lua +207 -0
- data/vendor/lua/lib/lua/oil/kernel/base/Sockets.lua +44 -0
- data/vendor/lua/lib/lua/oil/kernel/cooperative/Receiver.lua +139 -0
- data/vendor/lua/lib/lua/oil/kernel/intercepted/Listener.lua +47 -0
- data/vendor/lua/lib/lua/oil/kernel/intercepted/Requester.lua +58 -0
- data/vendor/lua/lib/lua/oil/kernel/lua/Dispatcher.lua +76 -0
- data/vendor/lua/lib/lua/oil/kernel/lua/Proxies.lua +69 -0
- data/vendor/lua/lib/lua/oil/kernel/typed/Dispatcher.lua +91 -0
- data/vendor/lua/lib/lua/oil/kernel/typed/Proxies.lua +153 -0
- data/vendor/lua/lib/lua/oil/kernel/typed/Servants.lua +137 -0
- data/vendor/lua/lib/lua/oil/ludo/Codec.lua +66 -0
- data/vendor/lua/lib/lua/oil/ludo/CodecByRef.lua +103 -0
- data/vendor/lua/lib/lua/oil/ludo/Listener.lua +151 -0
- data/vendor/lua/lib/lua/oil/ludo/Referrer.lua +72 -0
- data/vendor/lua/lib/lua/oil/ludo/Requester.lua +107 -0
- data/vendor/lua/lib/lua/oil/oo.lua +1 -0
- data/vendor/lua/lib/lua/oil/port.lua +1 -0
- data/vendor/lua/lib/lua/oil/properties.lua +57 -0
- data/vendor/lua/lib/lua/oil/verbose.lua +133 -0
- data/vendor/lua/lib/lua/package_ext.lua +15 -0
- data/vendor/lua/lib/lua/parser.lua +268 -0
- data/vendor/lua/lib/lua/pl/Date.lua +555 -0
- data/vendor/lua/lib/lua/pl/List.lua +613 -0
- data/vendor/lua/lib/lua/pl/Map.lua +113 -0
- data/vendor/lua/lib/lua/pl/MultiMap.lua +62 -0
- data/vendor/lua/lib/lua/pl/OrderedMap.lua +151 -0
- data/vendor/lua/lib/lua/pl/Set.lua +153 -0
- data/vendor/lua/lib/lua/pl/app.lua +165 -0
- data/vendor/lua/lib/lua/pl/array2d.lua +501 -0
- data/vendor/lua/lib/lua/pl/class.lua +180 -0
- data/vendor/lua/lib/lua/pl/comprehension.lua +286 -0
- data/vendor/lua/lib/lua/pl/config.lua +176 -0
- data/vendor/lua/lib/lua/pl/data.lua +606 -0
- data/vendor/lua/lib/lua/pl/dir.lua +475 -0
- data/vendor/lua/lib/lua/pl/file.lua +70 -0
- data/vendor/lua/lib/lua/pl/func.lua +376 -0
- data/vendor/lua/lib/lua/pl/init.lua +68 -0
- data/vendor/lua/lib/lua/pl/input.lua +173 -0
- data/vendor/lua/lib/lua/pl/lapp.lua +407 -0
- data/vendor/lua/lib/lua/pl/lexer.lua +456 -0
- data/vendor/lua/lib/lua/pl/luabalanced.lua +264 -0
- data/vendor/lua/lib/lua/pl/operator.lua +201 -0
- data/vendor/lua/lib/lua/pl/path.lua +398 -0
- data/vendor/lua/lib/lua/pl/permute.lua +63 -0
- data/vendor/lua/lib/lua/pl/platf/luajava.lua +101 -0
- data/vendor/lua/lib/lua/pl/pretty.lua +285 -0
- data/vendor/lua/lib/lua/pl/seq.lua +551 -0
- data/vendor/lua/lib/lua/pl/sip.lua +344 -0
- data/vendor/lua/lib/lua/pl/strict.lua +70 -0
- data/vendor/lua/lib/lua/pl/stringio.lua +158 -0
- data/vendor/lua/lib/lua/pl/stringx.lua +440 -0
- data/vendor/lua/lib/lua/pl/tablex.lua +817 -0
- data/vendor/lua/lib/lua/pl/template.lua +103 -0
- data/vendor/lua/lib/lua/pl/test.lua +135 -0
- data/vendor/lua/lib/lua/pl/text.lua +243 -0
- data/vendor/lua/lib/lua/pl/utils.lua +550 -0
- data/vendor/lua/lib/lua/pl/xml.lua +689 -0
- data/vendor/lua/lib/lua/profiler.dll +0 -0
- data/vendor/lua/lib/lua/re.lua +248 -0
- data/vendor/lua/lib/lua/rex_onig.dll +0 -0
- data/vendor/lua/lib/lua/rex_pcre.dll +0 -0
- data/vendor/lua/lib/lua/rex_posix.dll +0 -0
- data/vendor/lua/lib/lua/rings.dll +0 -0
- data/vendor/lua/lib/lua/serialize.lua +193 -0
- data/vendor/lua/lib/lua/set.lua +149 -0
- data/vendor/lua/lib/lua/socket.lua +133 -0
- data/vendor/lua/lib/lua/socket/core.dll +0 -0
- data/vendor/lua/lib/lua/socket/ftp.lua +281 -0
- data/vendor/lua/lib/lua/socket/http.lua +350 -0
- data/vendor/lua/lib/lua/socket/smtp.lua +251 -0
- data/vendor/lua/lib/lua/socket/tp.lua +123 -0
- data/vendor/lua/lib/lua/socket/url.lua +297 -0
- data/vendor/lua/lib/lua/ssl.dll +0 -0
- data/vendor/lua/lib/lua/ssl.lua +93 -0
- data/vendor/lua/lib/lua/ssl/https.lua +138 -0
- data/vendor/lua/lib/lua/stable.lua +28 -0
- data/vendor/lua/lib/lua/std.lua +16 -0
- data/vendor/lua/lib/lua/strbuf.lua +32 -0
- data/vendor/lua/lib/lua/strict.lua +45 -0
- data/vendor/lua/lib/lua/string_ext.lua +274 -0
- data/vendor/lua/lib/lua/table_ext.lua +117 -0
- data/vendor/lua/lib/lua/tar.lua +262 -0
- data/vendor/lua/lib/lua/task.dll +0 -0
- data/vendor/lua/lib/lua/tree.lua +81 -0
- data/vendor/lua/lib/lua/unicode.dll +0 -0
- data/vendor/lua/lib/lua/verbose_require.lua +11 -0
- data/vendor/lua/lib/lua/vstruct.lua +86 -0
- data/vendor/lua/lib/lua/vstruct/ast.lua +192 -0
- data/vendor/lua/lib/lua/vstruct/ast/Bitpack.lua +33 -0
- data/vendor/lua/lib/lua/vstruct/ast/Generator.lua +174 -0
- data/vendor/lua/lib/lua/vstruct/ast/IO.lua +45 -0
- data/vendor/lua/lib/lua/vstruct/ast/List.lua +56 -0
- data/vendor/lua/lib/lua/vstruct/ast/Name.lua +20 -0
- data/vendor/lua/lib/lua/vstruct/ast/Repeat.lua +23 -0
- data/vendor/lua/lib/lua/vstruct/ast/Root.lua +19 -0
- data/vendor/lua/lib/lua/vstruct/ast/Table.lua +65 -0
- data/vendor/lua/lib/lua/vstruct/cursor.lua +81 -0
- data/vendor/lua/lib/lua/vstruct/io.lua +45 -0
- data/vendor/lua/lib/lua/vstruct/io/a.lua +24 -0
- data/vendor/lua/lib/lua/vstruct/io/b.lua +28 -0
- data/vendor/lua/lib/lua/vstruct/io/bigendian.lua +21 -0
- data/vendor/lua/lib/lua/vstruct/io/c.lua +25 -0
- data/vendor/lua/lib/lua/vstruct/io/defaults.lua +24 -0
- data/vendor/lua/lib/lua/vstruct/io/endianness.lua +41 -0
- data/vendor/lua/lib/lua/vstruct/io/f.lua +129 -0
- data/vendor/lua/lib/lua/vstruct/io/hostendian.lua +21 -0
- data/vendor/lua/lib/lua/vstruct/io/i.lua +42 -0
- data/vendor/lua/lib/lua/vstruct/io/littleendian.lua +21 -0
- data/vendor/lua/lib/lua/vstruct/io/m.lua +62 -0
- data/vendor/lua/lib/lua/vstruct/io/p.lua +23 -0
- data/vendor/lua/lib/lua/vstruct/io/s.lua +27 -0
- data/vendor/lua/lib/lua/vstruct/io/seekb.lua +18 -0
- data/vendor/lua/lib/lua/vstruct/io/seekf.lua +18 -0
- data/vendor/lua/lib/lua/vstruct/io/seekto.lua +18 -0
- data/vendor/lua/lib/lua/vstruct/io/u.lua +54 -0
- data/vendor/lua/lib/lua/vstruct/io/x.lua +34 -0
- data/vendor/lua/lib/lua/vstruct/io/z.lua +63 -0
- data/vendor/lua/lib/lua/vstruct/lexer.lua +100 -0
- data/vendor/lua/lib/lua/vstruct/pack.lua +142 -0
- data/vendor/lua/lib/lua/vstruct/test.lua +47 -0
- data/vendor/lua/lib/lua/vstruct/test/basic.lua +73 -0
- data/vendor/lua/lib/lua/vstruct/test/common.lua +100 -0
- data/vendor/lua/lib/lua/vstruct/test/fp-bigendian.lua +56 -0
- data/vendor/lua/lib/lua/vstruct/test/fp-littleendian.lua +56 -0
- data/vendor/lua/lib/lua/vstruct/test/struct-test-gen.lua +1230 -0
- data/vendor/lua/lib/lua/vstruct/unpack.lua +126 -0
- data/vendor/lua/lib/lua/wx.dll +0 -0
- data/vendor/lua/lib/lua/xml.lua +75 -0
- data/vendor/lua/lib/lua/zip.dll +0 -0
- data/vendor/lua/lib/lua/zlib.dll +0 -0
- metadata +529 -0
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
--- A Map class.
|
|
2
|
+
--
|
|
3
|
+
-- > Map = require 'pl.Map'
|
|
4
|
+
-- > m = Map{one=1,two=2}
|
|
5
|
+
-- > m:update {three=3,four=4,two=20}
|
|
6
|
+
-- > = m == M{one=1,two=20,three=3,four=4}
|
|
7
|
+
-- true
|
|
8
|
+
--
|
|
9
|
+
-- Dependencies: `pl.utils`, `pl.class`, `pl.tablex`, `pl.pretty`
|
|
10
|
+
-- @module pl.Map
|
|
11
|
+
|
|
12
|
+
local tablex = require 'pl.tablex'
|
|
13
|
+
local utils = require 'pl.utils'
|
|
14
|
+
local stdmt = utils.stdmt
|
|
15
|
+
local is_callable = utils.is_callable
|
|
16
|
+
local tmakeset,deepcompare,merge,keys,difference,tupdate = tablex.makeset,tablex.deepcompare,tablex.merge,tablex.keys,tablex.difference,tablex.update
|
|
17
|
+
|
|
18
|
+
local pretty_write = require 'pl.pretty' . write
|
|
19
|
+
local Map = stdmt.Map
|
|
20
|
+
local Set = stdmt.Set
|
|
21
|
+
local List = stdmt.List
|
|
22
|
+
|
|
23
|
+
local class = require 'pl.class'
|
|
24
|
+
|
|
25
|
+
-- the Map class ---------------------
|
|
26
|
+
class(nil,nil,Map)
|
|
27
|
+
|
|
28
|
+
local function makemap (m)
|
|
29
|
+
return setmetatable(m,Map)
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
function Map:_init (t)
|
|
33
|
+
local mt = getmetatable(t)
|
|
34
|
+
if mt == Set or mt == Map then
|
|
35
|
+
self:update(t)
|
|
36
|
+
else
|
|
37
|
+
return t -- otherwise assumed to be a map-like table
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
local function makelist(t)
|
|
43
|
+
return setmetatable(t,List)
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
--- list of keys.
|
|
47
|
+
Map.keys = tablex.keys
|
|
48
|
+
|
|
49
|
+
--- list of values.
|
|
50
|
+
Map.values = tablex.values
|
|
51
|
+
|
|
52
|
+
--- return an iterator over all key-value pairs.
|
|
53
|
+
function Map:iter ()
|
|
54
|
+
return pairs(self)
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
--- return a List of all key-value pairs, sorted by the keys.
|
|
58
|
+
function Map:items()
|
|
59
|
+
local ls = makelist(tablex.pairmap (function (k,v) return makelist {k,v} end, self))
|
|
60
|
+
ls:sort(function(t1,t2) return t1[1] < t2[1] end)
|
|
61
|
+
return ls
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
-- Will return the existing value, or if it doesn't exist it will set
|
|
65
|
+
-- a default value and return it.
|
|
66
|
+
function Map:setdefault(key, defaultval)
|
|
67
|
+
return self[key] or self:set(key,defaultval) or defaultval
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
--- size of map.
|
|
71
|
+
-- note: this is a relatively expensive operation!
|
|
72
|
+
-- @class function
|
|
73
|
+
-- @name Map:len
|
|
74
|
+
Map.len = tablex.size
|
|
75
|
+
|
|
76
|
+
--- put a value into the map.
|
|
77
|
+
-- @param key the key
|
|
78
|
+
-- @param val the value
|
|
79
|
+
function Map:set (key,val)
|
|
80
|
+
self[key] = val
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
--- get a value from the map.
|
|
84
|
+
-- @param key the key
|
|
85
|
+
-- @return the value, or nil if not found.
|
|
86
|
+
function Map:get (key)
|
|
87
|
+
return rawget(self,key)
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
local index_by = tablex.index_by
|
|
91
|
+
|
|
92
|
+
--- get a list of values indexed by a list of keys.
|
|
93
|
+
-- @param keys a list-like table of keys
|
|
94
|
+
-- @return a new list
|
|
95
|
+
function Map:getvalues (keys)
|
|
96
|
+
return makelist(index_by(self,keys))
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
--- update the map using key/value pairs from another table.
|
|
100
|
+
-- @param table
|
|
101
|
+
-- @function Map:update
|
|
102
|
+
Map.update = tablex.update
|
|
103
|
+
|
|
104
|
+
function Map:__eq (m)
|
|
105
|
+
-- note we explicitly ask deepcompare _not_ to use __eq!
|
|
106
|
+
return deepcompare(self,m,true)
|
|
107
|
+
end
|
|
108
|
+
|
|
109
|
+
function Map:__tostring ()
|
|
110
|
+
return pretty_write(self,'')
|
|
111
|
+
end
|
|
112
|
+
|
|
113
|
+
return Map
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
--- MultiMap, a Map which has multiple values per key.
|
|
2
|
+
--
|
|
3
|
+
-- Dependencies: `pl.utils`, `pl.class`, `pl.tablex`, `pl.List`
|
|
4
|
+
-- @module pl.MultiMap
|
|
5
|
+
|
|
6
|
+
local classes = require 'pl.class'
|
|
7
|
+
local tablex = require 'pl.tablex'
|
|
8
|
+
local utils = require 'pl.utils'
|
|
9
|
+
local List = require 'pl.List'
|
|
10
|
+
|
|
11
|
+
local index_by,tsort,concat = tablex.index_by,table.sort,table.concat
|
|
12
|
+
local append,extend,slice = List.append,List.extend,List.slice
|
|
13
|
+
local append = table.insert
|
|
14
|
+
local is_type = utils.is_type
|
|
15
|
+
|
|
16
|
+
local class = require 'pl.class'
|
|
17
|
+
local Map = require 'pl.Map'
|
|
18
|
+
|
|
19
|
+
-- MultiMap is a standard MT
|
|
20
|
+
local MultiMap = utils.stdmt.MultiMap
|
|
21
|
+
|
|
22
|
+
class(Map,nil,MultiMap)
|
|
23
|
+
MultiMap._name = 'MultiMap'
|
|
24
|
+
|
|
25
|
+
function MultiMap:_init (t)
|
|
26
|
+
if not t then return end
|
|
27
|
+
self:update(t)
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
--- update a MultiMap using a table.
|
|
31
|
+
-- @param t either a Multimap or a map-like table.
|
|
32
|
+
-- @return the map
|
|
33
|
+
function MultiMap:update (t)
|
|
34
|
+
utils.assert_arg(1,t,'table')
|
|
35
|
+
if Map:class_of(t) then
|
|
36
|
+
for k,v in pairs(t) do
|
|
37
|
+
self[k] = List()
|
|
38
|
+
self[k]:append(v)
|
|
39
|
+
end
|
|
40
|
+
else
|
|
41
|
+
for k,v in pairs(t) do
|
|
42
|
+
self[k] = List(v)
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
--- add a new value to a key. Setting a nil value removes the key.
|
|
48
|
+
-- @param key the key
|
|
49
|
+
-- @param val the value
|
|
50
|
+
-- @return the map
|
|
51
|
+
function MultiMap:set (key,val)
|
|
52
|
+
if val == nil then
|
|
53
|
+
self[key] = nil
|
|
54
|
+
else
|
|
55
|
+
if not self[key] then
|
|
56
|
+
self[key] = List()
|
|
57
|
+
end
|
|
58
|
+
self[key]:append(val)
|
|
59
|
+
end
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
return MultiMap
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
--- OrderedMap, a map which preserves ordering.
|
|
2
|
+
--
|
|
3
|
+
-- Derived from `pl.Map`.
|
|
4
|
+
--
|
|
5
|
+
-- Dependencies: `pl.utils`, `pl.tablex`, `pl.List`
|
|
6
|
+
-- @module pl.OrderedMap
|
|
7
|
+
|
|
8
|
+
local tablex = require 'pl.tablex'
|
|
9
|
+
local utils = require 'pl.utils'
|
|
10
|
+
local List = require 'pl.List'
|
|
11
|
+
local index_by,tsort,concat = tablex.index_by,table.sort,table.concat
|
|
12
|
+
|
|
13
|
+
local class = require 'pl.class'
|
|
14
|
+
local Map = require 'pl.Map'
|
|
15
|
+
|
|
16
|
+
local OrderedMap = class(Map)
|
|
17
|
+
OrderedMap._name = 'OrderedMap'
|
|
18
|
+
|
|
19
|
+
--- construct an OrderedMap.
|
|
20
|
+
-- Will throw an error if the argument is bad.
|
|
21
|
+
-- @param t optional initialization table, same as for @{OrderedMap:update}
|
|
22
|
+
function OrderedMap:_init (t)
|
|
23
|
+
self._keys = List()
|
|
24
|
+
if t then
|
|
25
|
+
local map,err = self:update(t)
|
|
26
|
+
if not map then error(err,2) end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
local assert_arg,raise = utils.assert_arg,utils.raise
|
|
31
|
+
|
|
32
|
+
--- update an OrderedMap using a table.
|
|
33
|
+
-- If the table is itself an OrderedMap, then its entries will be appended. <br>
|
|
34
|
+
-- if it s a table of the form <code>{{key1=val1},{key2=val2},...}</code> these will be appended. <br>
|
|
35
|
+
-- Otherwise, it is assumed to be a map-like table, and order of extra entries is arbitrary.
|
|
36
|
+
-- @param t a table.
|
|
37
|
+
-- @return the map, or nil in case of error
|
|
38
|
+
-- @return the error message
|
|
39
|
+
function OrderedMap:update (t)
|
|
40
|
+
assert_arg(1,t,'table')
|
|
41
|
+
if OrderedMap:class_of(t) then
|
|
42
|
+
for k,v in t:iter() do
|
|
43
|
+
self:set(k,v)
|
|
44
|
+
end
|
|
45
|
+
elseif #t > 0 then -- an array must contain {key=val} tables
|
|
46
|
+
if type(t[1]) == 'table' then
|
|
47
|
+
for _,pair in ipairs(t) do
|
|
48
|
+
local key,value = next(pair)
|
|
49
|
+
if not key then return raise 'empty pair initialization table' end
|
|
50
|
+
self:set(key,value)
|
|
51
|
+
end
|
|
52
|
+
else
|
|
53
|
+
return raise 'cannot use an array to initialize an OrderedMap'
|
|
54
|
+
end
|
|
55
|
+
else
|
|
56
|
+
for k,v in pairs(t) do
|
|
57
|
+
self:set(k,v)
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
return self
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
--- set the key's value. This key will be appended at the end of the map. <br>
|
|
64
|
+
-- If the value is nil, then the key is removed.
|
|
65
|
+
-- @param key the key
|
|
66
|
+
-- @param val the value
|
|
67
|
+
-- @return the map
|
|
68
|
+
function OrderedMap:set (key,val)
|
|
69
|
+
if not self[key] and val ~= nil then -- ensure that keys are unique
|
|
70
|
+
self._keys:append(key)
|
|
71
|
+
elseif val == nil then -- removing a key-value pair
|
|
72
|
+
self._keys:remove_value(key)
|
|
73
|
+
end
|
|
74
|
+
self[key] = val
|
|
75
|
+
return self
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
--- insert a key/value pair before a given position.
|
|
79
|
+
-- Note: if the map already contains the key, then this effectively
|
|
80
|
+
-- moves the item to the new position by first removing at the old position.
|
|
81
|
+
-- Has no effect if the key does not exist and val is nil
|
|
82
|
+
-- @param pos a position starting at 1
|
|
83
|
+
-- @param key the key
|
|
84
|
+
-- @param val the value; if nil use the old value
|
|
85
|
+
function OrderedMap:insert (pos,key,val)
|
|
86
|
+
local oldval = self[key]
|
|
87
|
+
val = val or oldval
|
|
88
|
+
if oldval then
|
|
89
|
+
self._keys:remove_value(key)
|
|
90
|
+
end
|
|
91
|
+
if val then
|
|
92
|
+
self._keys:insert(pos,key)
|
|
93
|
+
self[key] = val
|
|
94
|
+
end
|
|
95
|
+
return self
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
--- return the keys in order.
|
|
99
|
+
-- (Not a copy!)
|
|
100
|
+
-- @return List
|
|
101
|
+
function OrderedMap:keys ()
|
|
102
|
+
return self._keys
|
|
103
|
+
end
|
|
104
|
+
|
|
105
|
+
--- return the values in order.
|
|
106
|
+
-- this is relatively expensive.
|
|
107
|
+
-- @return List
|
|
108
|
+
function OrderedMap:values ()
|
|
109
|
+
return List(index_by(self,self._keys))
|
|
110
|
+
end
|
|
111
|
+
|
|
112
|
+
--- sort the keys.
|
|
113
|
+
-- @param cmp a comparison function as for @{table.sort}
|
|
114
|
+
-- @return the map
|
|
115
|
+
function OrderedMap:sort (cmp)
|
|
116
|
+
tsort(self._keys,cmp)
|
|
117
|
+
return self
|
|
118
|
+
end
|
|
119
|
+
|
|
120
|
+
--- iterate over key-value pairs in order.
|
|
121
|
+
function OrderedMap:iter ()
|
|
122
|
+
local i = 0
|
|
123
|
+
local keys = self._keys
|
|
124
|
+
local n,idx = #keys
|
|
125
|
+
return function()
|
|
126
|
+
i = i + 1
|
|
127
|
+
if i > #keys then return nil end
|
|
128
|
+
idx = keys[i]
|
|
129
|
+
return idx,self[idx]
|
|
130
|
+
end
|
|
131
|
+
end
|
|
132
|
+
|
|
133
|
+
OrderedMap.__pairs = OrderedMap.iter
|
|
134
|
+
|
|
135
|
+
function OrderedMap:__tostring ()
|
|
136
|
+
local res = {}
|
|
137
|
+
for i,v in ipairs(self._keys) do
|
|
138
|
+
local val = self[v]
|
|
139
|
+
local vs = tostring(val)
|
|
140
|
+
if type(val) ~= 'number' then
|
|
141
|
+
vs = '"'..vs..'"'
|
|
142
|
+
end
|
|
143
|
+
res[i] = tostring(v)..'='..vs
|
|
144
|
+
end
|
|
145
|
+
return '{'..concat(res,',')..'}'
|
|
146
|
+
end
|
|
147
|
+
|
|
148
|
+
return OrderedMap
|
|
149
|
+
|
|
150
|
+
|
|
151
|
+
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
--- A Set class.
|
|
2
|
+
--
|
|
3
|
+
-- > Set = require 'pl.Set'
|
|
4
|
+
-- > = Set{'one','two'} == Set{'two','one'}
|
|
5
|
+
-- true
|
|
6
|
+
-- > fruit = Set{'apple','banana','orange'}
|
|
7
|
+
-- > = fruit['banana']
|
|
8
|
+
-- true
|
|
9
|
+
-- > = fruit['hazelnut']
|
|
10
|
+
-- nil
|
|
11
|
+
-- > colours = Set{'red','orange','green','blue'}
|
|
12
|
+
-- > = fruit,colours
|
|
13
|
+
-- [apple,orange,banana] [blue,green,orange,red]
|
|
14
|
+
-- > = fruit+colours
|
|
15
|
+
-- [blue,green,apple,red,orange,banana]
|
|
16
|
+
-- > = fruit*colours
|
|
17
|
+
-- [orange]
|
|
18
|
+
--
|
|
19
|
+
-- Depdencies: `pl.utils`, `pl.tablex`, `pl.class`
|
|
20
|
+
-- @module pl.Set
|
|
21
|
+
|
|
22
|
+
local tablex = require 'pl.tablex'
|
|
23
|
+
local utils = require 'pl.utils'
|
|
24
|
+
local stdmt = utils.stdmt
|
|
25
|
+
local tmakeset,deepcompare,merge,keys,difference,tupdate = tablex.makeset,tablex.deepcompare,tablex.merge,tablex.keys,tablex.difference,tablex.update
|
|
26
|
+
local Map = require 'pl.Map'
|
|
27
|
+
local Set = stdmt.Set
|
|
28
|
+
local List = stdmt.List
|
|
29
|
+
local class = require 'pl.class'
|
|
30
|
+
|
|
31
|
+
-- the Set class --------------------
|
|
32
|
+
class(Map,nil,Set)
|
|
33
|
+
|
|
34
|
+
-- note: Set has _no_ methods!
|
|
35
|
+
Set.__index = nil
|
|
36
|
+
|
|
37
|
+
local function makeset (t)
|
|
38
|
+
return setmetatable(t,Set)
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
--- create a set. <br>
|
|
42
|
+
-- @param t may be a Set, Map or list-like table.
|
|
43
|
+
-- @class function
|
|
44
|
+
-- @name Set
|
|
45
|
+
function Set:_init (t)
|
|
46
|
+
local mt = getmetatable(t)
|
|
47
|
+
if mt == Set or mt == Map then
|
|
48
|
+
for k in pairs(t) do self[k] = true end
|
|
49
|
+
else
|
|
50
|
+
for _,v in ipairs(t) do self[v] = true end
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
function Set:__tostring ()
|
|
55
|
+
return '['..Set.values(self):join ','..']'
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
--- get a list of the values in a set.
|
|
59
|
+
-- @param self a Set
|
|
60
|
+
-- @function Set.values
|
|
61
|
+
Set.values = Map.keys
|
|
62
|
+
|
|
63
|
+
--- map a function over the values of a set.
|
|
64
|
+
-- @param self a Set
|
|
65
|
+
-- @param fn a function
|
|
66
|
+
-- @param ... extra arguments to pass to the function.
|
|
67
|
+
-- @return a new set
|
|
68
|
+
function Set.map (self,fn,...)
|
|
69
|
+
fn = utils.function_arg(1,fn)
|
|
70
|
+
local res = {}
|
|
71
|
+
for k in pairs(self) do
|
|
72
|
+
res[fn(k,...)] = true
|
|
73
|
+
end
|
|
74
|
+
return makeset(res)
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
--- union of two sets (also +).
|
|
78
|
+
-- @param self a Set
|
|
79
|
+
-- @param set another set
|
|
80
|
+
-- @return a new set
|
|
81
|
+
function Set.union (self,set)
|
|
82
|
+
return merge(self,set,true)
|
|
83
|
+
end
|
|
84
|
+
Set.__add = Set.union
|
|
85
|
+
|
|
86
|
+
--- intersection of two sets (also *).
|
|
87
|
+
-- @param self a Set
|
|
88
|
+
-- @param set another set
|
|
89
|
+
-- @return a new set
|
|
90
|
+
function Set.intersection (self,set)
|
|
91
|
+
return merge(self,set,false)
|
|
92
|
+
end
|
|
93
|
+
Set.__mul = Set.intersection
|
|
94
|
+
|
|
95
|
+
--- new set with elements in the set that are not in the other (also -).
|
|
96
|
+
-- @param self a Set
|
|
97
|
+
-- @param set another set
|
|
98
|
+
-- @return a new set
|
|
99
|
+
function Set.difference (self,set)
|
|
100
|
+
return difference(self,set,false)
|
|
101
|
+
end
|
|
102
|
+
Set.__sub = Set.difference
|
|
103
|
+
|
|
104
|
+
-- a new set with elements in _either_ the set _or_ other but not both (also ^).
|
|
105
|
+
-- @param self a Set
|
|
106
|
+
-- @param set another set
|
|
107
|
+
-- @return a new set
|
|
108
|
+
function Set.symmetric_difference (self,set)
|
|
109
|
+
return difference(self,set,true)
|
|
110
|
+
end
|
|
111
|
+
Set.__pow = Set.symmetric_difference
|
|
112
|
+
|
|
113
|
+
--- is the first set a subset of the second (also <)?.
|
|
114
|
+
-- @param self a Set
|
|
115
|
+
-- @param set another set
|
|
116
|
+
-- @return true or false
|
|
117
|
+
function Set.issubset (self,set)
|
|
118
|
+
for k in pairs(self) do
|
|
119
|
+
if not set[k] then return false end
|
|
120
|
+
end
|
|
121
|
+
return true
|
|
122
|
+
end
|
|
123
|
+
Set.__lt = Set.subset
|
|
124
|
+
|
|
125
|
+
--- is the set empty?.
|
|
126
|
+
-- @param self a Set
|
|
127
|
+
-- @return true or false
|
|
128
|
+
function Set.issempty (self)
|
|
129
|
+
return next(self) == nil
|
|
130
|
+
end
|
|
131
|
+
|
|
132
|
+
--- are the sets disjoint? (no elements in common).
|
|
133
|
+
-- Uses naive definition, i.e. that intersection is empty
|
|
134
|
+
-- @param s1 a Set
|
|
135
|
+
-- @param s2 another set
|
|
136
|
+
-- @return true or false
|
|
137
|
+
function Set.isdisjoint (s1,s2)
|
|
138
|
+
return Set.isempty(Set.intersection(s1,s2))
|
|
139
|
+
end
|
|
140
|
+
|
|
141
|
+
--- size of this set (also # for 5.2).
|
|
142
|
+
-- @param s a Set
|
|
143
|
+
-- @return size
|
|
144
|
+
-- @function Set.len
|
|
145
|
+
Set.len = tablex.size
|
|
146
|
+
|
|
147
|
+
Set.__len = Set.len
|
|
148
|
+
|
|
149
|
+
function Set.__eq (s1,s2)
|
|
150
|
+
return Set.issubset(s1,s2) and Set.issubset(s2,s1)
|
|
151
|
+
end
|
|
152
|
+
|
|
153
|
+
return Set
|