Module:File link: Difference between revisions
allow nil values as input to most of the functions, to make call-chaining with conditional variables easier
(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) | ||
if data.theWidth or data.theHeight then | checkType('image:upright', 2, factor, 'number', true) | ||
if isUpright and (data.theWidth or data.theHeight) then | |||
sizeError('image:upright') | sizeError('image:upright') | ||
end | end | ||
data.isUpright = | 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 = | 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 |