-
Notifications
You must be signed in to change notification settings - Fork 0
/
test.lua
50 lines (38 loc) · 1.32 KB
/
test.lua
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
json = require("cjson")
Wrangler = require("init")()
time = require("time")
Wrangler:addFilter("id", function(self, object, name, value)
return object.id == value
end)
Wrangler:addFilter("first_name", function(self, object, name, value)
return object.first_name:match(value) ~= nil
end)
Wrangler:addFilter("last_name", function(self, object, name, value)
return object.last_name:match(value) ~= nil
end)
Wrangler:addFilter("email", function(self, object, name, value)
return object.email:match(value) ~= nil
end)
Wrangler:addFilter("gender", function(self, object, name, value)
return object.gender:match(value) ~= nil
end)
Wrangler:addFilter("color", function(self, object, name, value)
return object.color:match(value) ~= nil
end)
Wrangler:addFilter("leet", function(self, object, name, value)
return object.leet:match(value) ~= nil
end)
sampleFile = io.open("test.json")
sampletxt = sampleFile:read("*a")
sampleFile:close()
sample = json.decode(sampletxt)
sampleLen = #sample
print("Press enter to begin filtering...")
io.read()
print("Find all males from reddit.com ...")
start = time.clock()
Wrangler:filter(sample, { gender = "^Male$", email = "reddit.com" })
finish = time.clock()
print("Started at " .. start)
print("Finished at " .. finish)
print("Processed " .. sampleLen .. " entries in " .. (finish - start) .. "s")