lua-users home
lua-l archive

[ANN] lua-filesize: library to generate a human readable string describing the file size

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


Hello, everyone!
I'm very happy to announce lua-filesize, Lua library to generate a
human readable string describing the file size [1].
 Install: luarocks install lua-filesize
 License: MIT
 Version: 0.1.1
 Lua compatibility: Lua >= 5.1, LuaJIT >= 2.0
 Homepage: https://github.com/starius/lua-filesize
This library was inspired by filesize.js [2].
This library installs a single module called filesize. It is
represented with a function of the same name. Principally it takes an
integer (filesize) and returns a human readable string describing the
file size.
filesize() accepts an optional second argument options of type table,
so you can customize the output.
 * base (number)
 Number base, default is 2
 * bits (boolean)
 Enables bit sizes, default is false
 * exponent (number)
 Specifies the SI suffix via exponent, e.g. 2 is MB for
 bytes, default is -1
 * output (string)
 Output of function (array, exponent, object, or string),
 default is string
 * round (number)
 Decimal place, default is 2
 * spacer (string)
 Character between the result and suffix, default is " "
 * suffixes (table)
 Dictionary of SI suffixes to replace for localization,
 defaults to english if no match is found
 * unix (boolean)
 Enables unix style human readable output, e.g. ls -lh,
 default is false
Examples:
> filesize = require 'filesize'
> filesize(500)
"500 B"
> filesize(500, {bits = true})
"3.91 Kb"
> filesize(265318)
"259.1 KB"
> filesize(265318, {base = 10})
"265.32 kB"
> filesize(265318, {round = 0})
"259 KB"
> filesize(265318, {output = "array"})
{ 259.1, "KB" }
> filesize(265318, {output = "object"})
{
 value = 259.1,
 suffix = "KB",
}
> filesize(1, {suffixes = {B = "Б"}})
"1 Б"
> filesize(1024)
"1 KB"
> filesize(1024, {exponent = 0})
"1024 B"
> filesize(1024, {output = "exponent"})
1
This library was written for my pastebin-like site [3] implemented in Lapis.
Code: 114 sloc
Tests: 297 sloc
Code coverage by tests: 100% lines of code.
Code and tests are based on filesize.js [2].
Please report bugs using GitHub issues.
[1] https://github.com/starius/lua-filesize
[2] https://github.com/avoidwork/filesize.js
[3] https://pasta.cf
-- 
Best regards,
Boris Nagaev

AltStyle によって変換されたページ (->オリジナル) /