From 7818bda83fff15b5c396de56a1e26bb371f740cf Mon Sep 17 00:00:00 2001 From: Andrew Miner Date: Tue, 7 Apr 2015 21:28:09 -0700 Subject: [PATCH] Fix recipe slug to account for input quantity --- src/coffee/models/recipe.coffee | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/src/coffee/models/recipe.coffee b/src/coffee/models/recipe.coffee index 1240d81d6..800b9c111 100644 --- a/src/coffee/models/recipe.coffee +++ b/src/coffee/models/recipe.coffee @@ -153,12 +153,27 @@ module.exports = class Recipe extends BaseModel getSlug: -> if not @_slug? builder = new StringBuilder - builder - .loop(@input, delimiter:',', onEach:(b, stack)-> b.push stack.itemSlug.qualified) - .onlyIf @tools.length > 0, (b)=> - b.push(' + ').loop(@tools, delimiter:',', onEach:(b, stack)-> b.push stack.itemSlug.qualified) - .push(' => ') - .loop(@output, delimiter:',', onEach:(b, stack)-> b.push stack.itemSlug.qualified) + delimiterNeeded = false + @eachInputStack (stack)-> + if delimiterNeeded then builder.push ',' + delimiterNeeded = true + + if stack.quantity > 1 then builder.push stack.quantity, ' ' + builder.push stack.itemSlug.qualified + + builder.push '>' + @eachToolStack (stack)-> + builder.push stack.itemSlug.qualified + builder.push '>' + + delimiterNeeded = false + @eachOutputStack (stack)-> + if delimiterNeeded then builder.push ',' + delimiterNeeded = true + + if stack.quantity > 1 then builder.push stack.quantity, ' ' + builder.push stack.itemSlug.qualified + @_slug = builder.toString() return @_slug