projects
/
prosody.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge 0.10->trunk
[prosody.git]
/
util
/
array.lua
diff --git
a/util/array.lua
b/util/array.lua
index b10396b105e4613e329bcd621680ccfe2601a879..3ddc97f610172008a3046c75a7a6a0b9aaf6d258 100644
(file)
--- a/
util/array.lua
+++ b/
util/array.lua
@@
-37,7
+37,7
@@
setmetatable(array, { __call = new_array });
-- Read-only methods
function array_methods:random()
-- Read-only methods
function array_methods:random()
- return self[math_random(1,#self)];
+ return self[math_random(1,
#self)];
end
-- These methods can be called two ways:
end
-- These methods can be called two ways:
@@
-45,7
+45,7
@@
end
-- existing_array:method([params, ...]) -- Transform existing array into result
--
function array_base.map(outa, ina, func)
-- existing_array:method([params, ...]) -- Transform existing array into result
--
function array_base.map(outa, ina, func)
- for k,v in ipairs(ina) do
+ for k,
v in ipairs(ina) do
outa[k] = func(v);
end
return outa;
outa[k] = func(v);
end
return outa;
@@
-54,7
+54,7
@@
end
function array_base.filter(outa, ina, func)
local inplace, start_length = ina == outa, #ina;
local write = 1;
function array_base.filter(outa, ina, func)
local inplace, start_length = ina == outa, #ina;
local write = 1;
- for read
=1,
start_length do
+ for read
= 1,
start_length do
local v = ina[read];
if func(v) then
outa[write] = v;
local v = ina[read];
if func(v) then
outa[write] = v;
@@
-63,7
+63,7
@@
function array_base.filter(outa, ina, func)
end
if inplace and write <= start_length then
end
if inplace and write <= start_length then
- for i
=write,
start_length do
+ for i
= write,
start_length do
outa[i] = nil;
end
end
outa[i] = nil;
end
end
@@
-80,7
+80,7
@@
function array_base.sort(outa, ina, ...)
end
function array_base.pluck(outa, ina, key)
end
function array_base.pluck(outa, ina, key)
- for i
=1,
#ina do
+ for i
= 1,
#ina do
outa[i] = ina[i][key];
end
return outa;
outa[i] = ina[i][key];
end
return outa;
@@
-108,16
+108,16
@@
end
--- These methods only mutate the array
function array_methods:shuffle(outa, ina)
local len = #self;
--- These methods only mutate the array
function array_methods:shuffle(outa, ina)
local len = #self;
- for i
=1,
#self do
- local r = math_random(i,len);
+ for i
= 1,
#self do
+ local r = math_random(i,
len);
self[i], self[r] = self[r], self[i];
end
return self;
end
function array_methods:append(array)
self[i], self[r] = self[r], self[i];
end
return self;
end
function array_methods:append(array)
- local len,
len2
= #self, #array;
- for i
=1,
len2 do
+ local len,
len2
= #self, #array;
+ for i
= 1,
len2 do
self[len+i] = array[i];
end
return self;
self[len+i] = array[i];
end
return self;
@@
-128,11
+128,7
@@
function array_methods:push(x)
return self;
end
return self;
end
-function array_methods:pop(x)
- local v = self[x];
- t_remove(self, x);
- return v;
-end
+array_methods.pop = t_remove;
function array_methods:concat(sep)
return t_concat(array.map(self, tostring), sep);
function array_methods:concat(sep)
return t_concat(array.map(self, tostring), sep);
@@
-147,7
+143,7
@@
function array.collect(f, s, var)
local t = {};
while true do
var = f(s, var);
local t = {};
while true do
var = f(s, var);
- if var == nil then break; end
+ if var == nil then break; end
t_insert(t, var);
end
return setmetatable(t, array_mt);
t_insert(t, var);
end
return setmetatable(t, array_mt);
@@
-169,7
+165,4
@@
for method, f in pairs(array_base) do
end
end
end
end
-_G.array = array;
-module("array");
-
return array;
return array;