function makeDildo(name, info, sizes) { const views = {}; let folder = name.replace(/ /g, "-").toLowerCase() + "/"; info.forEach(entry => { let src = "./media/dildos/" + folder + entry[0].replace(/ /g, "-").toLowerCase() + ".svg"; views[entry[0]] = { height: math.unit(entry[1], entry[2]), image: { source: src }, name: entry[0], rename: true } }); return { name: name, constructor: () => { const maker = makeObject( name, views ); maker.sizes = []; sizes.forEach(size => { maker.sizes.push({ name: size[0], height: math.unit(size[1], size[2]) }) }) maker.sizes[maker.sizes.length - 1].default = true; return maker; } } } function makeDildos() { const results = []; results.push(makeDildo( "Chance", [ ["Side", 17.5, "inches"], ["Front", 17.5, "inches"], ["Top", 7.91, "inches"], ["Head", 2.72, "inches"] ], [ ["Small", 8, "inches"], ["Medium", 11.5, "inches"], ["Large", 14, "inches"], ["Extra Large", 17.5, "inches"] ] )) results.push(makeDildo( "Rex", [ ["Side", 14.5, "inches"], ["Front", 14.5, "inches"], ["Top", 5.54, "inches"], ["Head", 2.13, "inches"] ], [ ["Mini", 6, "inches"], ["Small", 8, "inches"], ["Medium", 10, "inches"], ["Large", 12, "inches"], ["Extra Large", 14.5, "inches"] ] )) return results; }