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, |
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 = |
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') |
||
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 |