comparison 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
comparison
equal deleted inserted replaced
774:3e30cf310e56 775:1a68fc55a80c
1 local Luan = require "luan:Luan.luan"
2 local error = Luan.error
3 local ipairs = Luan.ipairs or error()
4 local pairs = Luan.pairs or error()
5 local type = Luan.type or error()
6 local String = require "luan:String.luan"
7 local literal = String.literal or error()
8 local matches = String.matches or error()
9 local Io = require "luan:Io.luan"
10 local print = Io.print or error()
11
12
13 local M = {}
14
15 M.uris = {
16 "luan:Luan"
17 "luan:Binary"
18 "luan:Html"
19 "luan:Io"
20 "luan:Math"
21 "luan:Package"
22 "luan:String"
23 "luan:Table"
24 "luan:Thread"
25 "luan:Time"
26 "luan:host/Hosting"
27 "luan:http/Http"
28 "luan:http/Server"
29 "luan:lucene/Lucene"
30 "luan:lucene/Versioning"
31 "luan:mail/Mail"
32 "luan:logging/Logging"
33 "luan:stripe/Stripe"
34 }
35
36 function M.which(name)
37 local ptn = "[:./]"..literal(name).."$"
38 for _, uri in ipairs(M.uris) do
39 local mod = require(uri)
40 if matches(uri,ptn) then
41 print(uri)
42 end
43 if type(mod) == "table" then
44 for key in pairs(mod) do
45 if key == name then
46 print(uri.." "..key)
47 end
48 end
49 end
50 end
51 end
52
53 return M