Source: models/recipe.js

/** Model for recipe data
 * @namespace nt.Models
 * @class nt.Models.Recipe
 * @memberof! <global>
 * @extends Backbone.Model */
nt.Models.Recipe = Backbone.Model.extend(/** @lends nt.Models.Recipe# */{

    /** Default attributes */
    defaults: {
        id: '',
        recipeImage: '',
        recipeTitle: '',
        numCalories: '',
        numIngredients: '',
        siteIcon: '',
        siteTitle: '',
        siteLink: ''
    },

    /** Override parse and return response attributes */
    parse: function(data) {
        // Get unique id from the recipe url
        var index  = data.recipe.uri.indexOf('_') + 1;

        // Use Edamam server for icon source
        var prefix = 'http://www.edamam.com/http/';

        // Default icon if missing
        var icon = 'images/icon.png';

        // Check if icon available
        if(data.recipe.sourceIcon)
            icon = data.recipe.sourceIcon.replace('http://', prefix);

        var recipe = {};
            recipe.id             = data.recipe.uri.slice(index);
            recipe.recipeImage    = data.recipe.image;
            recipe.recipeTitle    = data.recipe.label;
            recipe.numCalories    = parseInt(data.recipe.calories / data.recipe.yield, 10);
            recipe.numIngredients = data.recipe.ingredientLines.length;
            recipe.siteIcon       = icon;
            recipe.siteTitle      = data.recipe.source;
            recipe.siteLink       = data.recipe.shareAs;
        return recipe;

    } // parse

});