Jump to content

Module:Signpost and Module:Signpost/sandbox: Difference between pages

(Difference between pages)
Content deleted Content added
TEST -- add method for returning subheadings. this may bust everything.
 
use production index module
 
Line 11: Line 11:
local Article = {}
local Article = {}
Article.__index = Article
Article.__index = Article

Article.viewSpans = {7, 15, 30, 60, 90, 120, 180}


Article.rowMethods = {
Article.rowMethods = {
page = 'getPage',
page = 'getPage',
fullpage = 'getFullPage',
fullpage = 'getFullPage',
date = 'getDate',
date = 'getDate',
title = 'getTitle',
title = 'getTitle',
subpage = 'getSubpage',
subpage = 'getSubpage',
author = 'getAuthor',
subhead = 'getSubhead',
}
}

-- Register viewsNN row methods
for _, span in ipairs(Article.viewSpans) do
Article.rowMethods["views" .. span] = "getViews" .. span
end


function Article.new(data)
function Article.new(data)
Line 54: Line 45:
function Article:getSubpage()
function Article:getSubpage()
return self.data.subpage
return self.data.subpage
end

function Article:getAuthor()
return self.data.authors[1]
end
end


function Article:getAuthors()
function Article:getAuthors()
return self.data.authors
return self.data.authors
end

-- Add getViewsNN methods
for _, span in ipairs(Article.viewSpans) do
Article["getViews" .. span] = function(self)
if self.data.views then
return self.data.views[string.format("d%03d", span)]
else
return nil
end
end
end

function Article:getSubhead()
return self.data.subhead
end
end


Line 153: Line 125:
function Article:renderFormat(format)
function Article:renderFormat(format)
local args = self:makeRowArgs(articleObj)
local args = self:makeRowArgs(articleObj)
local ret = format:gsub('(%${([%a%d]+)})', function (match, key)
local ret = format:gsub('(%${(%a+)})', function (match, key)
return args[key] or match
return args[key] or match
end)
end)