candle 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (164) hide show
  1. data/LICENSE.txt +20 -0
  2. data/README.md +4 -0
  3. data/VERSION +1 -0
  4. data/bin/candle +21 -0
  5. data/lib/candle.rb +68 -0
  6. data/lib/candle/command.rb +27 -0
  7. data/lib/candle/generators/actions.rb +183 -0
  8. data/lib/candle/generators/blank.rb +127 -0
  9. data/lib/candle/generators/cli.rb +55 -0
  10. data/lib/candle/generators/help.rb +47 -0
  11. data/lib/candle/generators/jam.rb +80 -0
  12. data/lib/candle/generators/lua/scripts/AppDelegate.lua +36 -0
  13. data/lib/candle/generators/lua/scripts/tests/init.lua +6 -0
  14. data/lib/candle/generators/lua/scripts/tests/someTest.lua +12 -0
  15. data/lib/candle/generators/lua/wax/ProtocolLoader.h +12 -0
  16. data/lib/candle/generators/lua/wax/bin/hammer +157 -0
  17. data/lib/candle/generators/lua/wax/bin/update-xibs +131 -0
  18. data/lib/candle/generators/lua/wax/bin/waxsim +0 -0
  19. data/lib/candle/generators/lua/wax/lib/build-scripts/compile-stdlib.sh +14 -0
  20. data/lib/candle/generators/lua/wax/lib/build-scripts/copy-scripts.sh +58 -0
  21. data/lib/candle/generators/lua/wax/lib/build-scripts/luac.lua +80 -0
  22. data/lib/candle/generators/lua/wax/lib/extensions/CGAffine/wax_CGTransform.h +12 -0
  23. data/lib/candle/generators/lua/wax/lib/extensions/CGAffine/wax_CGTransform.m +85 -0
  24. data/lib/candle/generators/lua/wax/lib/extensions/CGContext/wax_CGContext.h +12 -0
  25. data/lib/candle/generators/lua/wax/lib/extensions/CGContext/wax_CGContext.m +251 -0
  26. data/lib/candle/generators/lua/wax/lib/extensions/HTTP/wax_http.h +14 -0
  27. data/lib/candle/generators/lua/wax/lib/extensions/HTTP/wax_http.m +240 -0
  28. data/lib/candle/generators/lua/wax/lib/extensions/HTTP/wax_http_connection.h +54 -0
  29. data/lib/candle/generators/lua/wax/lib/extensions/HTTP/wax_http_connection.m +304 -0
  30. data/lib/candle/generators/lua/wax/lib/extensions/filesystem/wax_filesystem.h +9 -0
  31. data/lib/candle/generators/lua/wax/lib/extensions/filesystem/wax_filesystem.m +273 -0
  32. data/lib/candle/generators/lua/wax/lib/extensions/json/Rakefile +10 -0
  33. data/lib/candle/generators/lua/wax/lib/extensions/json/wax_json.c +304 -0
  34. data/lib/candle/generators/lua/wax/lib/extensions/json/wax_json.h +11 -0
  35. data/lib/candle/generators/lua/wax/lib/extensions/json/yajl-1.0.9.tar.gz +0 -0
  36. data/lib/candle/generators/lua/wax/lib/extensions/json/yajl/api/yajl_common.h +85 -0
  37. data/lib/candle/generators/lua/wax/lib/extensions/json/yajl/api/yajl_gen.h +159 -0
  38. data/lib/candle/generators/lua/wax/lib/extensions/json/yajl/api/yajl_parse.h +193 -0
  39. data/lib/candle/generators/lua/wax/lib/extensions/json/yajl/yajl.c +159 -0
  40. data/lib/candle/generators/lua/wax/lib/extensions/json/yajl/yajl_alloc.c +65 -0
  41. data/lib/candle/generators/lua/wax/lib/extensions/json/yajl/yajl_alloc.h +50 -0
  42. data/lib/candle/generators/lua/wax/lib/extensions/json/yajl/yajl_buf.c +119 -0
  43. data/lib/candle/generators/lua/wax/lib/extensions/json/yajl/yajl_buf.h +73 -0
  44. data/lib/candle/generators/lua/wax/lib/extensions/json/yajl/yajl_bytestack.h +85 -0
  45. data/lib/candle/generators/lua/wax/lib/extensions/json/yajl/yajl_common.h +85 -0
  46. data/lib/candle/generators/lua/wax/lib/extensions/json/yajl/yajl_encode.c +188 -0
  47. data/lib/candle/generators/lua/wax/lib/extensions/json/yajl/yajl_encode.h +50 -0
  48. data/lib/candle/generators/lua/wax/lib/extensions/json/yajl/yajl_gen.c +322 -0
  49. data/lib/candle/generators/lua/wax/lib/extensions/json/yajl/yajl_gen.h +159 -0
  50. data/lib/candle/generators/lua/wax/lib/extensions/json/yajl/yajl_lex.c +737 -0
  51. data/lib/candle/generators/lua/wax/lib/extensions/json/yajl/yajl_lex.h +133 -0
  52. data/lib/candle/generators/lua/wax/lib/extensions/json/yajl/yajl_parse.h +193 -0
  53. data/lib/candle/generators/lua/wax/lib/extensions/json/yajl/yajl_parser.c +448 -0
  54. data/lib/candle/generators/lua/wax/lib/extensions/json/yajl/yajl_parser.h +82 -0
  55. data/lib/candle/generators/lua/wax/lib/lua/lapi.c +1087 -0
  56. data/lib/candle/generators/lua/wax/lib/lua/lapi.h +16 -0
  57. data/lib/candle/generators/lua/wax/lib/lua/lauxlib.c +652 -0
  58. data/lib/candle/generators/lua/wax/lib/lua/lauxlib.h +174 -0
  59. data/lib/candle/generators/lua/wax/lib/lua/lbaselib.c +653 -0
  60. data/lib/candle/generators/lua/wax/lib/lua/lcode.c +839 -0
  61. data/lib/candle/generators/lua/wax/lib/lua/lcode.h +76 -0
  62. data/lib/candle/generators/lua/wax/lib/lua/ldblib.c +397 -0
  63. data/lib/candle/generators/lua/wax/lib/lua/ldebug.c +638 -0
  64. data/lib/candle/generators/lua/wax/lib/lua/ldebug.h +33 -0
  65. data/lib/candle/generators/lua/wax/lib/lua/ldo.c +518 -0
  66. data/lib/candle/generators/lua/wax/lib/lua/ldo.h +57 -0
  67. data/lib/candle/generators/lua/wax/lib/lua/ldump.c +164 -0
  68. data/lib/candle/generators/lua/wax/lib/lua/lfunc.c +174 -0
  69. data/lib/candle/generators/lua/wax/lib/lua/lfunc.h +34 -0
  70. data/lib/candle/generators/lua/wax/lib/lua/lgc.c +711 -0
  71. data/lib/candle/generators/lua/wax/lib/lua/lgc.h +110 -0
  72. data/lib/candle/generators/lua/wax/lib/lua/linit.c +38 -0
  73. data/lib/candle/generators/lua/wax/lib/lua/liolib.c +553 -0
  74. data/lib/candle/generators/lua/wax/lib/lua/llex.c +461 -0
  75. data/lib/candle/generators/lua/wax/lib/lua/llex.h +81 -0
  76. data/lib/candle/generators/lua/wax/lib/lua/llimits.h +128 -0
  77. data/lib/candle/generators/lua/wax/lib/lua/lmathlib.c +263 -0
  78. data/lib/candle/generators/lua/wax/lib/lua/lmem.c +86 -0
  79. data/lib/candle/generators/lua/wax/lib/lua/lmem.h +49 -0
  80. data/lib/candle/generators/lua/wax/lib/lua/loadlib.c +666 -0
  81. data/lib/candle/generators/lua/wax/lib/lua/lobject.c +214 -0
  82. data/lib/candle/generators/lua/wax/lib/lua/lobject.h +381 -0
  83. data/lib/candle/generators/lua/wax/lib/lua/lopcodes.c +102 -0
  84. data/lib/candle/generators/lua/wax/lib/lua/lopcodes.h +268 -0
  85. data/lib/candle/generators/lua/wax/lib/lua/loslib.c +243 -0
  86. data/lib/candle/generators/lua/wax/lib/lua/lparser.c +1339 -0
  87. data/lib/candle/generators/lua/wax/lib/lua/lparser.h +82 -0
  88. data/lib/candle/generators/lua/wax/lib/lua/lstate.c +214 -0
  89. data/lib/candle/generators/lua/wax/lib/lua/lstate.h +169 -0
  90. data/lib/candle/generators/lua/wax/lib/lua/lstring.c +111 -0
  91. data/lib/candle/generators/lua/wax/lib/lua/lstring.h +31 -0
  92. data/lib/candle/generators/lua/wax/lib/lua/lstrlib.c +869 -0
  93. data/lib/candle/generators/lua/wax/lib/lua/ltable.c +588 -0
  94. data/lib/candle/generators/lua/wax/lib/lua/ltable.h +40 -0
  95. data/lib/candle/generators/lua/wax/lib/lua/ltablib.c +287 -0
  96. data/lib/candle/generators/lua/wax/lib/lua/ltm.c +75 -0
  97. data/lib/candle/generators/lua/wax/lib/lua/ltm.h +54 -0
  98. data/lib/candle/generators/lua/wax/lib/lua/lua.h +388 -0
  99. data/lib/candle/generators/lua/wax/lib/lua/luaconf.h +753 -0
  100. data/lib/candle/generators/lua/wax/lib/lua/lualib.h +53 -0
  101. data/lib/candle/generators/lua/wax/lib/lua/lundump.c +227 -0
  102. data/lib/candle/generators/lua/wax/lib/lua/lundump.h +36 -0
  103. data/lib/candle/generators/lua/wax/lib/lua/lvm.c +763 -0
  104. data/lib/candle/generators/lua/wax/lib/lua/lvm.h +36 -0
  105. data/lib/candle/generators/lua/wax/lib/lua/lzio.c +82 -0
  106. data/lib/candle/generators/lua/wax/lib/lua/lzio.h +67 -0
  107. data/lib/candle/generators/lua/wax/lib/lua/print.c +227 -0
  108. data/lib/candle/generators/lua/wax/lib/project.rake +159 -0
  109. data/lib/candle/generators/lua/wax/lib/stdlib/enums.lua +396 -0
  110. data/lib/candle/generators/lua/wax/lib/stdlib/ext/http.lua +43 -0
  111. data/lib/candle/generators/lua/wax/lib/stdlib/ext/init.lua +4 -0
  112. data/lib/candle/generators/lua/wax/lib/stdlib/ext/number.lua +21 -0
  113. data/lib/candle/generators/lua/wax/lib/stdlib/ext/string.lua +97 -0
  114. data/lib/candle/generators/lua/wax/lib/stdlib/ext/table.lua +165 -0
  115. data/lib/candle/generators/lua/wax/lib/stdlib/helpers/WaxServer.lua +49 -0
  116. data/lib/candle/generators/lua/wax/lib/stdlib/helpers/autoload.lua +10 -0
  117. data/lib/candle/generators/lua/wax/lib/stdlib/helpers/base64.lua +64 -0
  118. data/lib/candle/generators/lua/wax/lib/stdlib/helpers/bit.lua +274 -0
  119. data/lib/candle/generators/lua/wax/lib/stdlib/helpers/cache.lua +73 -0
  120. data/lib/candle/generators/lua/wax/lib/stdlib/helpers/callback.lua +22 -0
  121. data/lib/candle/generators/lua/wax/lib/stdlib/helpers/frame.lua +76 -0
  122. data/lib/candle/generators/lua/wax/lib/stdlib/helpers/init.lua +78 -0
  123. data/lib/candle/generators/lua/wax/lib/stdlib/helpers/pickView.lua +54 -0
  124. data/lib/candle/generators/lua/wax/lib/stdlib/helpers/time.lua +102 -0
  125. data/lib/candle/generators/lua/wax/lib/stdlib/init.lua +18 -0
  126. data/lib/candle/generators/lua/wax/lib/stdlib/luaspec/init.lua +2 -0
  127. data/lib/candle/generators/lua/wax/lib/stdlib/luaspec/luamock.lua +84 -0
  128. data/lib/candle/generators/lua/wax/lib/stdlib/luaspec/luaspec.lua +377 -0
  129. data/lib/candle/generators/lua/wax/lib/stdlib/repl.lua +9 -0
  130. data/lib/candle/generators/lua/wax/lib/stdlib/structs.lua +11 -0
  131. data/lib/candle/generators/lua/wax/lib/stdlib/waxClass.lua +42 -0
  132. data/lib/candle/generators/lua/wax/lib/wax.h +16 -0
  133. data/lib/candle/generators/lua/wax/lib/wax.m +260 -0
  134. data/lib/candle/generators/lua/wax/lib/wax_class.h +18 -0
  135. data/lib/candle/generators/lua/wax/lib/wax_class.m +190 -0
  136. data/lib/candle/generators/lua/wax/lib/wax_gc.h +20 -0
  137. data/lib/candle/generators/lua/wax/lib/wax_gc.m +56 -0
  138. data/lib/candle/generators/lua/wax/lib/wax_helpers.h +102 -0
  139. data/lib/candle/generators/lua/wax/lib/wax_helpers.m +870 -0
  140. data/lib/candle/generators/lua/wax/lib/wax_instance.h +34 -0
  141. data/lib/candle/generators/lua/wax/lib/wax_instance.m +810 -0
  142. data/lib/candle/generators/lua/wax/lib/wax_server.h +47 -0
  143. data/lib/candle/generators/lua/wax/lib/wax_server.m +252 -0
  144. data/lib/candle/generators/lua/wax/lib/wax_stdlib.h +3 -0
  145. data/lib/candle/generators/lua/wax/lib/wax_struct.h +26 -0
  146. data/lib/candle/generators/lua/wax/lib/wax_struct.m +335 -0
  147. data/lib/candle/generators/templates/blank/WaxApplication.xcodeproj/project.pbxproj +836 -0
  148. data/lib/candle/generators/templates/blank/WaxApplication.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
  149. data/lib/candle/generators/templates/blank/WaxApplication.xcodeproj/project.xcworkspace/xcuserdata/eiffel.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  150. data/lib/candle/generators/templates/blank/WaxApplication.xcodeproj/xcuserdata/eiffel.xcuserdatad/xcschemes/WaxApplication.xcscheme +86 -0
  151. data/lib/candle/generators/templates/blank/WaxApplication.xcodeproj/xcuserdata/eiffel.xcuserdatad/xcschemes/xcschememanagement.plist +22 -0
  152. data/lib/candle/generators/templates/blank/WaxApplication/Default-568h@2x.png +0 -0
  153. data/lib/candle/generators/templates/blank/WaxApplication/Default.png +0 -0
  154. data/lib/candle/generators/templates/blank/WaxApplication/Default@2x.png +0 -0
  155. data/lib/candle/generators/templates/blank/WaxApplication/ProtocolLoader.h +12 -0
  156. data/lib/candle/generators/templates/blank/WaxApplication/WaxApplication-Info.plist.tt +38 -0
  157. data/lib/candle/generators/templates/blank/WaxApplication/WaxApplication-Prefix.pch.tt +14 -0
  158. data/lib/candle/generators/templates/blank/WaxApplication/en.lproj/InfoPlist.strings +2 -0
  159. data/lib/candle/generators/templates/blank/WaxApplication/main.m.tt +20 -0
  160. data/lib/candle/tasks.rb +22 -0
  161. data/lib/candle/utility.rb +30 -0
  162. data/lib/candle/version.rb +9 -0
  163. data/lib/candle/view.rb +48 -0
  164. metadata +582 -0
@@ -0,0 +1,97 @@
1
+ function string.unescape(url)
2
+ url = string.gsub(url, "+", " ")
3
+ url = string.gsub(url, "%%(%x%x)", function(hex)
4
+ return string.char(tonumber(hex, 16))
5
+ end)
6
+
7
+ return url
8
+ end
9
+
10
+ function string.split(s, sep)
11
+ local t = {}
12
+ for o in string.gmatch(s, "([^" .. (sep or " ") .. "]+)") do
13
+ table.insert(t, o)
14
+ end
15
+
16
+ return t
17
+ end
18
+
19
+ function string.strip(s, pattern)
20
+ pattern = pattern or "%s+"
21
+ s = s:gsub("^" .. pattern, "")
22
+ s = s:gsub(pattern .. "$", "")
23
+ return s
24
+ end
25
+
26
+ function string.camelCase(s)
27
+ local splitTable = s:split("_-")
28
+ local result = table.remove(splitTable, 1)
29
+ for i, chunk in ipairs(splitTable) do
30
+ result = result .. chunk:sub(1,1):upper() .. chunk:sub(2)
31
+ end
32
+
33
+ return result
34
+ end
35
+
36
+ function string.escape(s)
37
+ s = string.gsub(s, "([!%*'%(%);:@&=%+%$,/%?#%[%]<>~%.\"{}|\\%-`_%^%%%c])",
38
+ function (c)
39
+ return string.format("%%%02X", string.byte(c))
40
+ end)
41
+ s = string.gsub(s, " ", "+")
42
+
43
+ return s
44
+ end
45
+
46
+ function string.decodeEntities(s)
47
+ local entities = {
48
+ amp = "&",
49
+ lt = "<",
50
+ gt = ">",
51
+ quot = "\"",
52
+ apos = "'",
53
+ nbsp = " ",
54
+ iexcl = "¡",
55
+ cent = "¢",
56
+ pound = "£",
57
+ curren = "¤",
58
+ yen = "¥",
59
+ brvbar = "¦",
60
+ sect = "§",
61
+ uml = "¨",
62
+ copy = "©",
63
+ ordf = "ª",
64
+ laquo = "«",
65
+ -- not = "¬",
66
+ shy = "­",
67
+ reg = "®",
68
+ macr = "¯",
69
+ deg = "°",
70
+ plusmn = "±",
71
+ sup2 = "²",
72
+ sup3 = "³",
73
+ acute = "´",
74
+ micro = "µ",
75
+ para = "¶",
76
+ middot = "·",
77
+ cedil = "¸",
78
+ sup1 = "¹",
79
+ ordm = "º",
80
+ raquo = "»",
81
+ frac14 = "¼",
82
+ frac12 = "½",
83
+ frac34 = "¾",
84
+ iquest = "¿",
85
+ times = "×",
86
+ divide = "÷",
87
+ }
88
+
89
+ return string.gsub(s, "&(%w+);", entities)
90
+ end
91
+
92
+ function string.caseInsensitive(s)
93
+ s = string.gsub(s, "%a", function (c)
94
+ return string.format("[%s%s]", string.lower(c), string.upper(c))
95
+ end)
96
+ return s
97
+ end
@@ -0,0 +1,165 @@
1
+ function table.clone(t, nometa)
2
+ local u = {}
3
+
4
+ if not nometa then
5
+ setmetatable(u, getmetatable(t))
6
+ end
7
+
8
+ for i, v in pairs(t) do
9
+ if type(v) == "table" then
10
+ u[i] = table.clone(v)
11
+ else
12
+ u[i] = v
13
+ end
14
+ end
15
+
16
+ return u
17
+ end
18
+
19
+ function table.merge(t, u)
20
+ local r = table.clone(t)
21
+
22
+ for i, v in pairs(u) do
23
+ r[i] = v
24
+ end
25
+
26
+ return r
27
+ end
28
+
29
+ function table.keys(t)
30
+ local keys = {}
31
+ for k, v in pairs(t) do table.insert(keys, k) end
32
+ return keys
33
+ end
34
+
35
+ function table.unique(t)
36
+ local seen = {}
37
+ for i, v in ipairs(t) do
38
+ if not table.includes(seen, v) then table.insert(seen, v) end
39
+ end
40
+
41
+ return seen
42
+ end
43
+
44
+ function table.values(t)
45
+ local values = {}
46
+ for k, v in pairs(t) do table.insert(values, v) end
47
+ return values
48
+ end
49
+
50
+ function table.last(t)
51
+ return t[#t]
52
+ end
53
+
54
+ function table.append(t, moreValues)
55
+ for i, v in ipairs(moreValues) do
56
+ table.insert(t, v)
57
+ end
58
+
59
+ return t
60
+ end
61
+
62
+ function table.indexOf(t, value)
63
+ for k, v in pairs(t) do
64
+ if type(value) == "function" then
65
+ if value(v) then return k end
66
+ else
67
+ if v == value then return k end
68
+ end
69
+ end
70
+
71
+ return nil
72
+ end
73
+
74
+ function table.includes(t, value)
75
+ return table.indexOf(t, value)
76
+ end
77
+
78
+ function table.removeValue(t, value)
79
+ local index = table.indexOf(t, value)
80
+ if index then table.remove(t, index) end
81
+ return t
82
+ end
83
+
84
+ function table.each(t, func)
85
+ for k, v in pairs(t) do
86
+ func(v, k)
87
+ end
88
+ end
89
+
90
+ function table.find(t, func)
91
+ for k, v in pairs(t) do
92
+ if func(v) then return v, k end
93
+ end
94
+
95
+ return nil
96
+ end
97
+
98
+ function table.filter(t, func)
99
+ local matches = {}
100
+ for k, v in pairs(t) do
101
+ if func(v) then table.insert(matches, v) end
102
+ end
103
+
104
+ return matches
105
+ end
106
+
107
+ function table.map(t, func)
108
+ local mapped = {}
109
+ for k, v in pairs(t) do
110
+ table.insert(mapped, func(v, k))
111
+ end
112
+
113
+ return mapped
114
+ end
115
+
116
+ function table.groupBy(t, func)
117
+ local grouped = {}
118
+ for k, v in pairs(t) do
119
+ local groupKey = func(v)
120
+ if not grouped[groupKey] then grouped[groupKey] = {} end
121
+ table.insert(grouped[groupKey], v)
122
+ end
123
+
124
+ return grouped
125
+ end
126
+
127
+ function table.tostring(tbl, indent, limit, depth, jstack)
128
+ limit = limit or 1000
129
+ depth = depth or 7
130
+ jstack = jstack or {}
131
+ local i = 0
132
+
133
+ local output = {}
134
+ if type(tbl) == "table" then
135
+ -- very important to avoid disgracing ourselves with circular referencs...
136
+ for i,t in ipairs(jstack) do
137
+ if tbl == t then
138
+ return "<self>,\n"
139
+ end
140
+ end
141
+ table.insert(jstack, tbl)
142
+
143
+ table.insert(output, "{\n")
144
+ for key, value in pairs(tbl) do
145
+ local innerIndent = (indent or " ") .. (indent or " ")
146
+ table.insert(output, innerIndent .. tostring(key) .. " = ")
147
+ table.insert(output,
148
+ value == tbl and "<self>," or table.tostring(value, innerIndent, limit, depth, jstack)
149
+ )
150
+
151
+ i = i + 1
152
+ if i > limit then
153
+ table.insert(output, (innerIndent or "") .. "...\n")
154
+ break
155
+ end
156
+ end
157
+
158
+ table.insert(output, indent and (indent or "") .. "},\n" or "}")
159
+ else
160
+ if type(tbl) == "string" then tbl = string.format("%q", tbl) end -- quote strings
161
+ table.insert(output, tostring(tbl) .. ",\n")
162
+ end
163
+
164
+ return table.concat(output)
165
+ end
@@ -0,0 +1,49 @@
1
+ -- I don't know where the proper place for this file is. It's not really a helper
2
+ waxClass{"WaxServer"}
3
+
4
+ -- Class Method
5
+ ---------------
6
+ function start(self)
7
+ self.server = wax.class['wax_server']:init()
8
+
9
+ local err = self.server and self.server:startOnPort(9000)
10
+ if err then
11
+ puts("Failed creating server: %s", err and err:description() or "Server Not Created")
12
+ return err
13
+ end
14
+
15
+ self.server:setDelegate(self)
16
+
17
+ -- redirect print
18
+ local formerPrint = print
19
+ _G.print = function(...)
20
+ formerPrint(...)
21
+ local objects = table.map({...}, function(o) return tostring(o) end)
22
+ self.server:send(table.concat(objects, '\t') .. "\n")
23
+ end
24
+
25
+ return nil
26
+ end
27
+
28
+ function showPrompt(self)
29
+ self.server:send "> "
30
+ end
31
+
32
+ -- DebugServerDelegate
33
+ ----------------------
34
+ function connected(self)
35
+ self:showPrompt()
36
+ end
37
+
38
+ function disconnected(self)
39
+ self.server:send("GOODBYE!")
40
+ end
41
+
42
+ function dataReceived(self, data)
43
+ local input = NSString:initWithData_encoding(data, NSASCIIStringEncoding)
44
+ local success, err = wax.eval(input)
45
+
46
+ if not success then self.server:send("Error: " .. err .. "\n") end
47
+
48
+ self:showPrompt()
49
+ end
@@ -0,0 +1,10 @@
1
+ function wax.autoload(...)
2
+ for i, folder in ipairs({...}) do
3
+ local files = wax.filesystem.search(wax.root(folder), "lua$")
4
+ for i, file in ipairs(files) do
5
+ local requireString = file:match(wax.root() .. "/(.*)%.lua$")
6
+ requireString = requireString:gsub("/", ".")
7
+ require(requireString)
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,64 @@
1
+ -- working lua base64 codec (c) 2006-2008 by Alex Kloss
2
+ -- compatible with lua 5.1
3
+ -- http://www.it-rfc.de
4
+
5
+ module("wax.base64", package.seeall)
6
+
7
+ -- bitshift functions (<<, >> equivalent)
8
+ -- shift left
9
+ function lsh(value,shift)
10
+ return (value*(2^shift)) % 256
11
+ end
12
+
13
+ -- shift right
14
+ function rsh(value,shift)
15
+ return math.floor(value/2^shift) % 256
16
+ end
17
+
18
+ -- return single bit (for OR)
19
+ function bit(x,b)
20
+ return (x % 2^b - x % 2^(b-1) > 0)
21
+ end
22
+
23
+ -- logic OR for number values
24
+ function lor(x,y)
25
+ result = 0
26
+ for p=1,8 do result = result + (((bit(x,p) or bit(y,p)) == true) and 2^(p-1) or 0) end
27
+ return result
28
+ end
29
+
30
+ -- encryption table
31
+ local base64chars = {[0]='A',[1]='B',[2]='C',[3]='D',[4]='E',[5]='F',[6]='G',[7]='H',[8]='I',[9]='J',[10]='K',[11]='L',[12]='M',[13]='N',[14]='O',[15]='P',[16]='Q',[17]='R',[18]='S',[19]='T',[20]='U',[21]='V',[22]='W',[23]='X',[24]='Y',[25]='Z',[26]='a',[27]='b',[28]='c',[29]='d',[30]='e',[31]='f',[32]='g',[33]='h',[34]='i',[35]='j',[36]='k',[37]='l',[38]='m',[39]='n',[40]='o',[41]='p',[42]='q',[43]='r',[44]='s',[45]='t',[46]='u',[47]='v',[48]='w',[49]='x',[50]='y',[51]='z',[52]='0',[53]='1',[54]='2',[55]='3',[56]='4',[57]='5',[58]='6',[59]='7',[60]='8',[61]='9',[62]='+',[63]='/'}
32
+
33
+ -- function encode
34
+ -- encodes input string to base64.
35
+ function encode(data)
36
+ local bytes = {}
37
+ local result = ""
38
+ for spos=0,string.len(data)-1,3 do
39
+ for byte=1,3 do bytes[byte] = string.byte(string.sub(data,(spos+byte))) or 0 end
40
+ result = string.format('%s%s%s%s%s',result,
41
+ base64chars[rsh(bytes[1],2)],
42
+ base64chars[lor(lsh((bytes[1] % 4),4), rsh(bytes[2],4))] or "=",
43
+ ((#data-spos) > 1) and base64chars[lor(lsh(bytes[2] % 16,2), rsh(bytes[3],6))] or "=",
44
+ ((#data-spos) > 2) and base64chars[(bytes[3] % 64)] or "=")
45
+ end
46
+ return result
47
+ end
48
+
49
+ -- decryption table
50
+ local base64bytes = {['A']=0,['B']=1,['C']=2,['D']=3,['E']=4,['F']=5,['G']=6,['H']=7,['I']=8,['J']=9,['K']=10,['L']=11,['M']=12,['N']=13,['O']=14,['P']=15,['Q']=16,['R']=17,['S']=18,['T']=19,['U']=20,['V']=21,['W']=22,['X']=23,['Y']=24,['Z']=25,['a']=26,['b']=27,['c']=28,['d']=29,['e']=30,['f']=31,['g']=32,['h']=33,['i']=34,['j']=35,['k']=36,['l']=37,['m']=38,['n']=39,['o']=40,['p']=41,['q']=42,['r']=43,['s']=44,['t']=45,['u']=46,['v']=47,['w']=48,['x']=49,['y']=50,['z']=51,['0']=52,['1']=53,['2']=54,['3']=55,['4']=56,['5']=57,['6']=58,['7']=59,['8']=60,['9']=61,['+']=62,['/']=63,['=']=nil}
51
+
52
+ -- function decode
53
+ -- decode base64 input to string
54
+ function decode(data)
55
+ local chars = {}
56
+ local result=""
57
+ for dpos=0,string.len(data)-1,4 do
58
+ for char=1,4 do chars[char] = base64bytes[(string.sub(data,(dpos+char),(dpos+char)) or "=")] end
59
+ result = result .. string.char(lor(lsh(chars[1],2), rsh(chars[2],4)))
60
+ result = result .. ((chars[3] ~= nil) and string.char(lor(lsh(chars[2],4), rsh(chars[3],2))) or "")
61
+ result = result .. ((chars[4] ~= nil) and string.char(lor(lsh(chars[3] % 4,6), (chars[4]))) or "")
62
+ end
63
+ return result
64
+ end
@@ -0,0 +1,274 @@
1
+ --[[---------------
2
+ LuaBit v0.4
3
+ -------------------
4
+ a bitwise operation lib for lua.
5
+
6
+ http://luaforge.net/projects/bit/
7
+
8
+ How to use:
9
+ -------------------
10
+ wax.bit.bnot(n) -- bitwise not (~n)
11
+ wax.bit.band(m, n) -- bitwise and (m & n)
12
+ wax.bit.bor(m, n) -- bitwise or (m | n)
13
+ wax.bit.bxor(m, n) -- bitwise xor (m ^ n)
14
+ wax.bit.brshift(n, bits) -- right shift (n >> bits)
15
+ wax.bit.blshift(n, bits) -- left shift (n << bits)
16
+ wax.bit.blogic_rshift(n, bits) -- logic right shift(zero fill >>>)
17
+
18
+ Please note that bit.brshift and bit.blshift only support number within
19
+ 32 bits.
20
+
21
+ 2 utility functions are provided too:
22
+ bit.tobits(n) -- convert n into a bit table(which is a 1/0 sequence)
23
+ -- high bits first
24
+ bit.tonumb(bit_tbl) -- convert a bit table into a number
25
+ -------------------
26
+
27
+ Under the MIT license.
28
+
29
+ copyright(c) 2006~2007 hanzhao (abrash_han@hotmail.com)
30
+ --]]---------------
31
+
32
+ do
33
+
34
+ ------------------------
35
+ -- bit lib implementions
36
+
37
+ local function check_int(n)
38
+ -- checking not float
39
+ if(n - math.floor(n) > 0) then
40
+ error("trying to use bitwise operation on non-integer!")
41
+ end
42
+ end
43
+
44
+ local function to_bits(n)
45
+ check_int(n)
46
+ if(n < 0) then
47
+ -- negative
48
+ return to_bits(bit.bnot(math.abs(n)) + 1)
49
+ end
50
+ -- to bits table
51
+ local tbl = {}
52
+ local cnt = 1
53
+ while (n > 0) do
54
+ local last = math.mod(n,2)
55
+ if(last == 1) then
56
+ tbl[cnt] = 1
57
+ else
58
+ tbl[cnt] = 0
59
+ end
60
+ n = (n-last)/2
61
+ cnt = cnt + 1
62
+ end
63
+
64
+ return tbl
65
+ end
66
+
67
+ local function tbl_to_number(tbl)
68
+ local n = table.getn(tbl)
69
+
70
+ local rslt = 0
71
+ local power = 1
72
+ for i = 1, n do
73
+ rslt = rslt + tbl[i]*power
74
+ power = power*2
75
+ end
76
+
77
+ return rslt
78
+ end
79
+
80
+ local function expand(tbl_m, tbl_n)
81
+ local big = {}
82
+ local small = {}
83
+ if(table.getn(tbl_m) > table.getn(tbl_n)) then
84
+ big = tbl_m
85
+ small = tbl_n
86
+ else
87
+ big = tbl_n
88
+ small = tbl_m
89
+ end
90
+ -- expand small
91
+ for i = table.getn(small) + 1, table.getn(big) do
92
+ small[i] = 0
93
+ end
94
+
95
+ end
96
+
97
+ local function bit_or(m, n, ...)
98
+ local tbl_m = to_bits(m)
99
+ local tbl_n = to_bits(n)
100
+ expand(tbl_m, tbl_n)
101
+
102
+ local tbl = {}
103
+ local rslt = math.max(table.getn(tbl_m), table.getn(tbl_n))
104
+ for i = 1, rslt do
105
+ if(tbl_m[i]== 0 and tbl_n[i] == 0) then
106
+ tbl[i] = 0
107
+ else
108
+ tbl[i] = 1
109
+ end
110
+ end
111
+
112
+ local result = tbl_to_number(tbl)
113
+ if ... then
114
+ local args = {...}
115
+ local n = table.remove(args, 1)
116
+ return bit_or(result, n, #args > 0 and args or nil)
117
+ else
118
+ return result
119
+ end
120
+ end
121
+
122
+ local function bit_and(m, n, ...)
123
+ local tbl_m = to_bits(m)
124
+ local tbl_n = to_bits(n)
125
+ expand(tbl_m, tbl_n)
126
+
127
+ local tbl = {}
128
+ local rslt = math.max(table.getn(tbl_m), table.getn(tbl_n))
129
+ for i = 1, rslt do
130
+ if(tbl_m[i]== 0 or tbl_n[i] == 0) then
131
+ tbl[i] = 0
132
+ else
133
+ tbl[i] = 1
134
+ end
135
+ end
136
+
137
+ local result = tbl_to_number(tbl)
138
+ if ... then
139
+ local args = {...}
140
+ local n = table.remove(args, 1)
141
+ return bit_and(result, n, #args > 0 and args or nil)
142
+ else
143
+ return result
144
+ end
145
+ end
146
+
147
+ local function bit_not(n)
148
+
149
+ local tbl = to_bits(n)
150
+ local size = math.max(table.getn(tbl), 32)
151
+ for i = 1, size do
152
+ if(tbl[i] == 1) then
153
+ tbl[i] = 0
154
+ else
155
+ tbl[i] = 1
156
+ end
157
+ end
158
+ return tbl_to_number(tbl)
159
+ end
160
+
161
+ local function bit_xor(m, n)
162
+ local tbl_m = to_bits(m)
163
+ local tbl_n = to_bits(n)
164
+ expand(tbl_m, tbl_n)
165
+
166
+ local tbl = {}
167
+ local rslt = math.max(table.getn(tbl_m), table.getn(tbl_n))
168
+ for i = 1, rslt do
169
+ if(tbl_m[i] ~= tbl_n[i]) then
170
+ tbl[i] = 1
171
+ else
172
+ tbl[i] = 0
173
+ end
174
+ end
175
+
176
+ --table.foreach(tbl, print)
177
+
178
+ return tbl_to_number(tbl)
179
+ end
180
+
181
+ local function bit_rshift(n, bits)
182
+ check_int(n)
183
+
184
+ local high_bit = 0
185
+ if(n < 0) then
186
+ -- negative
187
+ n = bit_not(math.abs(n)) + 1
188
+ high_bit = 2147483648 -- 0x80000000
189
+ end
190
+
191
+ for i=1, bits do
192
+ n = n/2
193
+ n = bit_or(math.floor(n), high_bit)
194
+ end
195
+ return math.floor(n)
196
+ end
197
+
198
+ -- logic rightshift assures zero filling shift
199
+ local function bit_logic_rshift(n, bits)
200
+ check_int(n)
201
+ if(n < 0) then
202
+ -- negative
203
+ n = bit_not(math.abs(n)) + 1
204
+ end
205
+ for i=1, bits do
206
+ n = n/2
207
+ end
208
+ return math.floor(n)
209
+ end
210
+
211
+ local function bit_lshift(n, bits)
212
+ check_int(n)
213
+
214
+ if(n < 0) then
215
+ -- negative
216
+ n = bit_not(math.abs(n)) + 1
217
+ end
218
+
219
+ for i=1, bits do
220
+ n = n*2
221
+ end
222
+ return bit_and(n, 4294967295) -- 0xFFFFFFFF
223
+ end
224
+
225
+ local function bit_xor2(m, n)
226
+ local rhs = bit_or(bit_not(m), bit_not(n))
227
+ local lhs = bit_or(m, n)
228
+ local rslt = bit_and(lhs, rhs)
229
+ return rslt
230
+ end
231
+
232
+ --------------------
233
+ -- bit lib interface
234
+
235
+ wax.bit = {
236
+ -- bit operations
237
+ bnot = bit_not,
238
+ band = bit_and,
239
+ bor = bit_or,
240
+ bxor = bit_xor,
241
+ brshift = bit_rshift,
242
+ blshift = bit_lshift,
243
+ bxor2 = bit_xor2,
244
+ blogic_rshift = bit_logic_rshift,
245
+
246
+ -- utility func
247
+ tobits = to_bits,
248
+ tonumb = tbl_to_number,
249
+ }
250
+
251
+ end
252
+
253
+ --[[
254
+ for i = 1, 100 do
255
+ for j = 1, 100 do
256
+ if(bit.bxor(i, j) ~= bit.bxor2(i, j)) then
257
+ error("bit.xor failed.")
258
+ end
259
+ end
260
+ end
261
+ --]]
262
+
263
+
264
+
265
+
266
+
267
+
268
+
269
+
270
+
271
+
272
+
273
+
274
+