Mercurial Hosting > luan
diff core/src/luan/modules/Io.luan @ 503:92c3d22745b8
make _ENV optional
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Wed, 20 May 2015 23:24:46 -0600 |
parents | 5b36f663a1b8 |
children | 473e456444ff |
line wrap: on
line diff
--- a/core/src/luan/modules/Io.luan Tue May 19 17:57:20 2015 -0600 +++ b/core/src/luan/modules/Io.luan Wed May 20 23:24:46 2015 -0600 @@ -2,13 +2,15 @@ local IoLuan = require "java:luan.modules.IoLuan" local System = require "java:java.lang.System" -read_console_line = IoLuan.read_console_line -schemes = IoLuan.newSchemes() -uri = IoLuan.uri -stdin = IoLuan.defaultStdin.table() -socket_server = IoLuan.socket_server -stdout = IoLuan.textWriter(System.out) -stderr = IoLuan.textWriter(System.err) +local M = {} + +M.read_console_line = IoLuan.read_console_line +M.schemes = IoLuan.newSchemes() +M.uri = IoLuan.uri +M.stdin = IoLuan.defaultStdin.table() +M.socket_server = IoLuan.socket_server +M.stdout = IoLuan.textWriter(System.out) +M.stderr = IoLuan.textWriter(System.err) local Luan = require "luan:Luan" @@ -19,7 +21,7 @@ local pairs = Luan.pairs local Table = require "luan:Table" -function print_to(out,...) +function M.print_to(out,...) local list = {} for v in Luan.values(...) do list[#list+1] = to_string(v) @@ -33,8 +35,8 @@ end end -function print(...) - print_to(stdout,...) +function M.print(...) + M.print_to(M.stdout,...) end @@ -79,20 +81,20 @@ end end -local uri = uri -- make local +local uri = M.uri -- make local -function repr(obj) - local old_out = stdout +function M.repr(obj) + local old_out = M.stdout return try { function() local string_uri = uri "string:" - stdout = string_uri.text_writer() + M.stdout = string_uri.text_writer() do_repr(obj,{}) - stdout.close() + M.stdout.close() return string_uri.read_text() end; finally = function() - stdout = old_out + M.stdout = old_out end; } end @@ -100,9 +102,10 @@ -- useful for SimplyHTML responsiveness -NO = {} +local NO = {} +M.NO = NO -function dont_write_when_no(write_fn) +function M.dont_write_when_no(write_fn) return function(...) for v in Luan.values(...) do if v == NO then @@ -112,3 +115,5 @@ write_fn(...) end end + +return M