@@ -1,28 +1,27 @@
11--[[
22List.lua
33
4−Copyright © 2017–2018 Albert Krewinkel
4+Copyright © 2017–2020 Albert Krewinkel
55
6−Permission to use, copy, modify, and/or distribute this software for any purpose
7−with or without fee is hereby granted, provided that the above copyright notice
8−and this permission notice appear in all copies.
6+Permission to use, copy, modify, and/or distribute this software for any
7+purpose with or without fee is hereby granted, provided that the above
8+copyright notice and this permission notice appear in all copies.
99
10−THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
11−REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
12−FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
13−INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
14−OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
15−TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
16−THIS SOFTWARE.
17−]]
10+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
11+WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
12+MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
13+ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
14+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
15+ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
16+OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ]]
1817
1918--- Pandoc's List type and helper methods
2019-- @classmod pandoc.List
2120-- @author Albert Krewinkel
22−-- @copyright © 2017–2018 Albert Krewinkel
21+-- @copyright © 2017–2020 Albert Krewinkel
2322-- @license MIT
2423local List = {
25− _VERSION = "0.1.0"
24+ _VERSION = "1.0.0"
2625}
2726
2827function List:new (o)
@@ -32,10 +31,6 @@ function List:new (o)
3231 return o
3332end
3433
35−function List:__call (o)
36− return self:new(o)
37−end
38−
3934--- Concatenates two lists.
4035-- @param list second list concatenated to the first
4136-- @return a new list containing all elements from list1 and list2
@@ -117,4 +112,11 @@ function List:filter (pred)
117112 return res
118113end
119114
115+-- Set metatable with __call metamethod. This allows the use of `List`
116+-- as a constructor function.
117+local ListMT = {
118+ __call = List.new
119+}
120+setmetatable(List, ListMT)
121+
120122return List