From 799a394285066f38a426dcb3057938630ae64de2 Mon Sep 17 00:00:00 2001 From: Daniel Kolesa Date: Mon, 14 Apr 2014 10:00:48 +0100 Subject: [PATCH] elua: wrap iteration functions in closures for extra encapsulation --- src/bindings/luajit/eina/file.lua | 24 ++++++++++++------------ src/bindings/luajit/eina/tiler.lua | 14 +++++++------- src/bindings/luajit/eina/xattr.lua | 8 ++++---- 3 files changed, 23 insertions(+), 23 deletions(-) diff --git a/src/bindings/luajit/eina/file.lua b/src/bindings/luajit/eina/file.lua index 3130ae6..b1747a3 100644 --- a/src/bindings/luajit/eina/file.lua +++ b/src/bindings/luajit/eina/file.lua @@ -154,7 +154,7 @@ end local Iterator = iterator.Iterator -M.Ls_Iterator = Iterator:clone { +local Ls_Iterator = Iterator:clone { __ctor = function(self, selfmt, dir) return Iterator.__ctor(self, selfmt, eina.eina_file_ls(dir)) end, @@ -168,7 +168,7 @@ M.Ls_Iterator = Iterator:clone { end } -M.ls = M.Ls_Iterator +M.ls = function(dir) return Ls_Iterator(dir) end local file_type_map = { [C.EINA_FILE_UNKNOWN] = "unknown", @@ -214,23 +214,23 @@ local direct_info_iterator_next = function(self) return Direct_Info(path, ns, nl, tp), self:container_get() end -M.Stat_Ls_Iterator = Iterator:clone { +local Stat_Ls_Iterator = Iterator:clone { __ctor = function(self, selfmt, dir) return Iterator.__ctor(self, selfmt, eina.eina_file_stat_ls(dir)) end, next = direct_info_iterator_next } -M.stat_ls = M.Stat_Ls_Iterator +M.stat_ls = function(dir) return Stat_Ls_Iterator(dir) end -M.Direct_Ls_Iterator = Iterator:clone { +local Direct_Ls_Iterator = Iterator:clone { __ctor = function(self, selfmt, dir) return Iterator.__ctor(self, selfmt, eina.eina_file_direct_ls(dir)) end, next = direct_info_iterator_next } -M.direct_ls = M.Direct_Ls_Iterator +M.direct_ls = function(dir) return Direct_Ls_Iterator(dir) end M.path_sanitize = function(path) local v = eina.eina_file_path_sanitize(path) @@ -258,7 +258,7 @@ M.copy = function(source, destination, flags, cb) return v ~= 0 end -M.Xattr_Iterator = Iterator:clone { +local Xattr_Iterator = Iterator:clone { __ctor = function(self, selfmt, file) return Iterator.__ctor(self, selfmt, eina.eina_file_xattr_get(file)) end, @@ -269,7 +269,7 @@ M.Xattr_Iterator = Iterator:clone { end } -M.Xattr_Value_Iterator = Iterator:clone { +local Xattr_Value_Iterator = Iterator:clone { __ctor = function(self, selfmt, file) return Iterator.__ctor(self, selfmt, eina.eina_file_xattr_value_get(file)) @@ -291,7 +291,7 @@ M.populate = { REMOVE = 5 } -M.Line_Iterator = Iterator:clone { +local Line_Iterator = Iterator:clone { __ctor = function(self, selfmt, file) return Iterator.__ctor(self, selfmt, eina.eina_file_map_lines(file)) end, @@ -346,8 +346,8 @@ M.File = ffi.metatype("Eina_File", { return ffi.string(eina.eina_file_filename_get(self)) end, - xattr_get = M.Xattr_Iterator, - xattr_value_get = M.Xattr_Value_Iterator, + xattr_get = function(self) return Xattr_Iterator(self) end, + xattr_value_get = function(self) Xattr_Value_Iterator(self) end, map_all = function(self, rule, raw) local v = ffi.cast("char*", eina.eina_file_map_all(self, rule or 0)) @@ -385,7 +385,7 @@ M.File = ffi.metatype("Eina_File", { return eina.eina_file_map_faulted(self, map) ~= 0 end, - lines = M.Line_Iterator + lines = function(self) return Line_Iterator(self) end } }) diff --git a/src/bindings/luajit/eina/tiler.lua b/src/bindings/luajit/eina/tiler.lua index 99e4545..fb022bc 100644 --- a/src/bindings/luajit/eina/tiler.lua +++ b/src/bindings/luajit/eina/tiler.lua @@ -64,7 +64,7 @@ local dgetmt = debug.getmetatable local Iterator = iterator.Iterator -M.Tiler_Iterator = Iterator:clone { +local Tiler_Iterator = Iterator:clone { __ctor = function(self, selfmt, tiler) return Iterator.__ctor(self, selfmt, eina.eina_tiler_iterator_new(tiler)) @@ -77,7 +77,7 @@ M.Tiler_Iterator = Iterator:clone { end } -M.Tile_Grid_Slicer_Iterator = Iterator:clone { +local Tile_Grid_Slicer_Iterator = Iterator:clone { __ctor = function(self, selfmt, x, y, w, h, tile_w, tile_h) return Iterator.__ctor(self, selfmt, eina.eina_tile_grid_slicer_iterator_new(x, y, w, h, tile_w, tile_h)) @@ -128,11 +128,9 @@ M.Tiler = ffi.metatype("Eina_Tiler", { clear = function(self) eina.eina_tiler_clear(self) end, - each = function(self) + iterator = function(self) return M.Tiler_Iterator(self) - end, - - Iterator = M.Tiler_Iterator + endd } }) @@ -157,7 +155,9 @@ M.Tile_Grid_Slicer = ffi.metatype("Eina_Tile_Grid_Slicer", { end end, - Iterator = M.Tile_Grid_Slicer_Iterator + Iterator = function(x, y, w, h, tw, th) + return Tile_Grid_Slicer_Iterator(x, y, w, h, tw, th) + end } }) diff --git a/src/bindings/luajit/eina/xattr.lua b/src/bindings/luajit/eina/xattr.lua index de62301..3a75bf7 100644 --- a/src/bindings/luajit/eina/xattr.lua +++ b/src/bindings/luajit/eina/xattr.lua @@ -63,7 +63,7 @@ cutil.init_module(init, shutdown) local Iterator = iterator.Iterator -M.Iterator = Iterator:clone { +local Name_Iterator = Iterator:clone { __ctor = function(self, selfmt, file) return Iterator.__ctor(self, selfmt, eina.eina_xattr_ls(file)) end, @@ -74,9 +74,9 @@ M.Iterator = Iterator:clone { end } -M.ls = M.Iterator +M.ls = function(file) return Name_Iterator(file) end -M.Value_Iterator = Iterator:clone { +local Value_Iterator = Iterator:clone { __ctor = function(self, selfmt, file) return Iterator.__ctor(self, selfmt, eina.eina_xattr_value_ls(file)) end, @@ -88,7 +88,7 @@ M.Value_Iterator = Iterator:clone { end } -M.value_ls = M.Value_Iterator +M.value_ls = function(file) return Value_Iterator(file) end M.copy = function(src, dst) return eina.eina_xatr_copy(src, dst) ~= 0 -- 2.7.4