Fix recipe slug to account for input quantity

This commit is contained in:
Andrew Miner
2015-04-07 21:28:09 -07:00
parent b9912cd85f
commit 7818bda83f
+21 -6
View File
@@ -153,12 +153,27 @@ module.exports = class Recipe extends BaseModel
getSlug: -> getSlug: ->
if not @_slug? if not @_slug?
builder = new StringBuilder builder = new StringBuilder
builder delimiterNeeded = false
.loop(@input, delimiter:',', onEach:(b, stack)-> b.push stack.itemSlug.qualified) @eachInputStack (stack)->
.onlyIf @tools.length > 0, (b)=> if delimiterNeeded then builder.push ','
b.push(' + ').loop(@tools, delimiter:',', onEach:(b, stack)-> b.push stack.itemSlug.qualified) delimiterNeeded = true
.push(' => ')
.loop(@output, delimiter:',', onEach:(b, stack)-> b.push stack.itemSlug.qualified) 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() @_slug = builder.toString()
return @_slug return @_slug