Mercurial Hosting > luan
diff src/luan/modules/Which_mod.luan @ 775:1a68fc55a80c
simplify dir structure
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Fri, 26 Aug 2016 14:36:40 -0600 |
parents | core/src/luan/modules/Which_mod.luan@ca169567ce07 |
children | bae2d0c2576c |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/luan/modules/Which_mod.luan Fri Aug 26 14:36:40 2016 -0600 @@ -0,0 +1,53 @@ +local Luan = require "luan:Luan.luan" +local error = Luan.error +local ipairs = Luan.ipairs or error() +local pairs = Luan.pairs or error() +local type = Luan.type or error() +local String = require "luan:String.luan" +local literal = String.literal or error() +local matches = String.matches or error() +local Io = require "luan:Io.luan" +local print = Io.print or error() + + +local M = {} + +M.uris = { + "luan:Luan" + "luan:Binary" + "luan:Html" + "luan:Io" + "luan:Math" + "luan:Package" + "luan:String" + "luan:Table" + "luan:Thread" + "luan:Time" + "luan:host/Hosting" + "luan:http/Http" + "luan:http/Server" + "luan:lucene/Lucene" + "luan:lucene/Versioning" + "luan:mail/Mail" + "luan:logging/Logging" + "luan:stripe/Stripe" +} + +function M.which(name) + local ptn = "[:./]"..literal(name).."$" + for _, uri in ipairs(M.uris) do + local mod = require(uri) + if matches(uri,ptn) then + print(uri) + end + if type(mod) == "table" then + for key in pairs(mod) do + if key == name then + print(uri.." "..key) + end + end + end + end +end + +return M