diff options
author | Mike Mason <ms13sp@gmail.com> | 2007-11-28 22:04:59 +0000 |
---|---|---|
committer | Mike Mason <ms13sp@gmail.com> | 2007-11-28 22:04:59 +0000 |
commit | a156a6951d673883333d19d5bd73df260451e58a (patch) | |
tree | 6975e1f2336fc7db45876d3ff49b966f24ad2693 /lib/format.lua | |
parent | 118583621442b97aa0855b8e2d55d4ee1e8852a1 (diff) | |
download | acf-core-a156a6951d673883333d19d5bd73df260451e58a.tar.bz2 acf-core-a156a6951d673883333d19d5bd73df260451e58a.tar.xz |
Lots of changes. fs.lua now only has file/filesystem functions. format.lua added to be convert/sytle format changes. join.lua and split.lua put in format now. May delete later.
git-svn-id: svn://svn.alpinelinux.org/acf/core/trunk@385 ab2d0c66-481e-0410-8bed-d214d4d58bed
Diffstat (limited to 'lib/format.lua')
-rw-r--r-- | lib/format.lua | 119 |
1 files changed, 119 insertions, 0 deletions
diff --git a/lib/format.lua b/lib/format.lua new file mode 100644 index 0000000..b650ca6 --- /dev/null +++ b/lib/format.lua @@ -0,0 +1,119 @@ +--[[ + module for format changes in table,string,files... + try to keep non input specific +]]-- + +module (..., package.seeall) + +require ("posix") +require ("fs") +require ("session") + +-- find all return characters and removes them, may get this from a browser +-- that is why didn't do file specific + +function dostounix ( a ) + local data = string.gsub(a, "\r", "") + return data + +end + +-- search and remove all blank lines and commented lines in a file + +function remove_blanks_comments ( path ) +f = fs.read_file_as_array(path) +local lines = {} +for _,line in pairs(f) do +local c = string.match(line, "^$") or string.match(line, "^%#") +if c == nil then lines[#lines + 1] = line end +end +-- returns a table to iterate over without the blank or commented lines +return lines +end + +function cap_begin_word ( a ) + --first need to do the first word + local data = string.gsub(a, "^%l", string.upper) + --word is any space cause no <> regex + data = string.gsub(data, " %l", string.upper) + return data +end + + +-- This code comes from http://lua-users.org/wiki/SplitJoin +-- -- example: format.table_to_string(", ", {"Anna", "Bob", "Charlie", "Dolores"}) +function table_to_string (delimiter, list) + local len = getn(list) + if len == 0 then + return "" + end + local string = list[1] + for i = 2, len do + string = string .. delimiter .. list[i] + end + return string +end + +-- This code comes from http://lua-users.org/wiki/SplitJoin +-- example: format.string_to_table(",%s*", "Anna, Bob, Charlie,Dolores") +function string_to_table (delimiter, text) + local list = {} + local pos = 1 + -- this would result in endless loops + if string.find("", delimiter, 1) then + error("delimiter matches empty string!") + end + while 1 do + local first, last = string.find(text, delimiter, pos) + if first then -- found? + table.insert(list, string.sub(text, pos, first-1)) + pos = last+1 + else + table.insert(list, string.sub(text, pos)) + break + end + end + return list +end + +--these maybe moved to html or something like that + +-- give a cfe and get back a string of what is inside +function cfe_unpack ( a ) + if type(a) == "table" then + value = session.serialize("cfe", a) + return value + end + +end + +-- going to build more cfe to html functions below is just seeing what needed to be +-- done for a test + +--give a lua table and unpack as html table +--t = { {row1}, {row2} ,options= {border = 2,align="left" } } +-- row one could technically be a title for the table ??? or t.title +function table_unpack_html ( t ) + --first need the options + if t.options ~= nil then + for a,b in pairs(t.options) do + if opt == nil then opt = a .. "=" .. "\"" .. b .. "\"" else + opt = opt .. " " .. a .. "=" .. "\"" .. b .. "\"" end + + end + html_table = "<table " .. opt .. ">" + else + html_table = "<table>" + end + + for i = 1,table.maxn(t) do + html_table = html_table .. "<tr>" + for a,b in ipairs(t[i]) do + html_table = html_table .. "<td>" .. b .. "</td>" + end + html_table = html_table .. "</tr>" + + end + html_table = html_table .. "</table>" + return html_table +end |