Module:File link: Difference between revisions

From the Croc Wiki, the Croc encyclopedia
Jump to navigationJump to search
Content added Content deleted
(remove "theName" field from readOnlyFields)
(allow nil values as input to most of the functions, to make call-chaining with conditional variables easier)
Line 31: Line 31:
function data:format(s, filename)
function data:format(s, filename)
checkSelf(self, 'image:format')
checkSelf(self, 'image:format')
checkType('image:format', 1, s, 'string')
checkType('image:format', 1, s, 'string', true)
checkType('image:format', 2, format, 'string', true)
checkType('image:format', 2, format, 'string', true)
local validFormats = {
local validFormats = {
Line 40: Line 40:
frameless = true
frameless = true
}
}
if validFormats[s] then
if s == nil or validFormats[s] then
data.theFormat = s
data.theFormat = s
data.theFormatFilename = filename
data.theFormatFilename = filename
Line 63: Line 63:
function data:width(px)
function data:width(px)
checkSelf(self, 'image:width')
checkSelf(self, 'image:width')
checkType('image:width', 1, px, 'number')
checkType('image:width', 1, px, 'number', true)
if data.isUpright then
if px and data.isUpright then
sizeError('image:width')
sizeError('image:width')
end
end
Line 73: Line 73:
function data:height(px)
function data:height(px)
checkSelf(self, 'image:height')
checkSelf(self, 'image:height')
checkType('image:height', 1, px, 'number')
checkType('image:height', 1, px, 'number', true)
if data.isUpright then
if px and data.isUpright then
sizeError('image:height')
sizeError('image:height')
end
end
Line 81: Line 81:
end
end
function data:upright(factor)
function data:upright(isUpright, factor)
checkSelf(self, 'image:upright')
checkSelf(self, 'image:upright')
checkType('image:upright', 1, factor, 'number', true)
checkType('image:upright', 1, isUpright, 'boolean', true)
checkType('image:upright', 2, factor, 'number', true)
if data.theWidth or data.theHeight then
if isUpright and (data.theWidth or data.theHeight) then
sizeError('image:upright')
sizeError('image:upright')
end
end
data.isUpright = true
data.isUpright = isUpright
data.uprightFactor = factor
data.uprightFactor = factor
return self
return self
Line 102: Line 103:
function data:location(s)
function data:location(s)
checkSelf(self, 'image:location')
checkSelf(self, 'image:location')
checkType('image:location', 1, s, 'string')
checkType('image:location', 1, s, 'string', true)
local validLocations = {
local validLocations = {
right = true,
right = true,
Line 109: Line 110:
none = true
none = true
}
}
if validLocations[s] then
if s == nil or validLocations[s] then
data.theLocation = s
data.theLocation = s
else
else
Line 122: Line 123:
function data:alignment(s)
function data:alignment(s)
checkSelf(self, 'image:alignment')
checkSelf(self, 'image:alignment')
checkType('image:alignment', 1, s, 'string')
checkType('image:alignment', 1, s, 'string', true)
local validAlignments = {
local validAlignments = {
baseline = true,
baseline = true,
Line 133: Line 134:
bottom = true
bottom = true
}
}
if validAlignments[s] then
if s == nil or validAlignments[s] then
data.theAlignment = s
data.theAlignment = s
else
else
Line 144: Line 145:
end
end
function data:border()
function data:border(hasBorder)
checkSelf(self, 'image:border')
checkSelf(self, 'image:border')
data.hasBorder = true
checkType('image:border', 1, hasBorder, 'boolean', true)
data.hasBorder = hasBorder
return self
return self
end
end
Line 152: Line 154:
function data:link(s)
function data:link(s)
checkSelf(self, 'image:link')
checkSelf(self, 'image:link')
checkType('image:link', 1, s, 'string')
checkType('image:link', 1, s, 'string', true)
data.theLink = s
data.theLink = s
return self
return self
Line 159: Line 161:
function data:alt(s)
function data:alt(s)
checkSelf(self, 'image:alt')
checkSelf(self, 'image:alt')
checkType('image:alt', 1, s, 'string')
checkType('image:alt', 1, s, 'string', true)
data.theAlt = s
data.theAlt = s
return self
return self
Line 166: Line 168:
function data:caption(s)
function data:caption(s)
checkSelf(self, 'image:caption')
checkSelf(self, 'image:caption')
checkType('image:caption', 1, s, 'string')
checkType('image:caption', 1, s, 'string', true)
data.theCaption = s
data.theCaption = s
return self
return self