Joshua Wise |
|
我最近也做了一些其他隨機的事。RiciLake 建議我開始記錄一些東西,因此我發現一些有趣的內容後,就會發表在這裡。像他一樣,你可以在 IRC 頻道找到我,頻道網址為:irc://irc.freenode.net/#lua -- 我的使用者名稱通常是 joshua_。如果你在網路上其他地方找我,可以試試 http://joshuawise.com/ 。
require"lails" require"luasql.sqlite" env = luasql.sqlite() conn = env:connect("/home/joshua/mirror-objects.sqlite") db = lails.db:new(conn){ tables = { objects = { primkey = "hash" } } } test = db.objects dofile("objects.lua") conn:execute("BEGIN TRANSACTION;") for k,v in pairs(objects) do test[k] = { moddate = v.moddate, mimetype = v.mimetype, mirrored = v.mirrored, length = v.length, lastaccessed = v.lastaccessed, url = v.url } end conn:execute("COMMIT;")我下午大約花了 25 分鐘完成這件事。這方面很酷的地方在於,當我轉換資料儲存的使用者時,我實際上不需要做太多變動 -- 唯一的不同在於我必須載入及儲存資料儲存,我只能直接使用資料庫。稍後再仔細說明 Lails 的實際運作方式。
sqlite> INSERT INTO users (id, username) VALUES (1, "joshua"); sqlite> INSERT INTO users (id, username) VALUES (2, "someone"); sqlite> INSERT INTO acls (id, resource, user) VALUES (1, "/", 1); sqlite> INSERT INTO acls (id, resource, user) VALUES (2, "/home/someone", 2); sqlite> INSERT INTO acls (id, resource, user) VALUES (3, "/tmp", 2);很精緻,對吧?已於 2007-02-04 完成(清晨;如果你在 2007-02-04 的中午時分看到這段內容,就已經過時了)
#define function main() { int i = 0; function --i; printf("Hello, world!\n"); } /* x() print("Hello, world!") end x() -- */