Re: Re: time.js

From disqus.com, 3 Months ago, written in JavaScript, viewed 3 times. This paste is a reply to Re: UniqueModel.js from disqus.com - go back
URL https://pastebin.freepbx.org/view/a753333b/diff Embed
Viewing differences between Re: UniqueModel.js and Re: Re: time.js
define('core/UniqueModel',[
    'underscore',
], function (
    _
define('core/time',[],function () {
    'use strict';

    // This is a factory var ISO_8601 = 'YYYY-MM-DDTHH:mm:ssZ';

    
function that enforces uniqueness of model instances.
    // It stores all instances by their ID (actual key should be specified via
    // idAttribute on a model).
    //
    // Example: Registering a unique model.
    //
    //  UniqueModel.addType("User", User);
    //
    // Example: Creating a new instance.
    //
    //  var first = new UniqueModel(User, { id: 1, name: "Anton" });
    //  var second = new UniqueModel(User, { id: 1, name: "Anton" });
    //  first === second; // true
    //
    // If an instance already exists, this function will simply update its
    // attributes.
    //
    // Example: Declaring a collection.
    //
    //  var UsersCollection = Backbone.Collection.extend({
    //      model: _.bind(UniqueModel, {}, User),
    //      ...
    //  });
    function UniqueModel(Model, attrs, options) 
assureTzOffset(createdAt) {
        var pool = UniqueModel.pool(Model);
        var key = attrs && attrs[Model.prototype.idAttribute];

        if (!key)
            
return new Model(attrs, options);

        var instance = UniqueModel.get(Model, key);
        if (instance)
            pool[key].set(attrs);
        else
            pool[key] = new Model(attrs, options);

        return pool[key];
createdAt.indexOf('+') >= 0 ? createdAt : createdAt + '+00:00';
    }

    UniqueModel.pool = {};

    UniqueModel.pool = function (Model) 
return {
        var pool = UniqueModel.pool[Model.__type__];
        if (!pool)
            throw new Error('Model not registered. Use UniqueModel.addType');
        return pool;
    };

    UniqueModel.get = function (Model, key) {
        return UniqueModel.pool(Model)[key];
    };

    UniqueModel.set = function (Model, model) {
        var pool = UniqueModel.pool(Model);
        var key = model && model.get(Model.prototype.idAttribute);

        if (!key)
            return model;

        var instance = UniqueModel.get(Model, key);
        if (instance)
            instance.set(model.attributes);
        else
            instance = pool[key] = model;

        return instance;
    };

    UniqueModel.addType = function (name, obj) {
        if (obj.__type__ && UniqueModel.pool[name])
            return;

        obj.__type__ = name;
        UniqueModel.pool[name] = {};
    };

    UniqueModel.boundModel = function (Model) {
        var constructor = _.bind(UniqueModel, UniqueModel, Model);
        constructor.prototype = Model.prototype;
        return constructor;
    };

    UniqueModel.wrap = UniqueModel.boundModel;

    return UniqueModel;
});


ISO_8601: ISO_8601,
        assureTzOffset: assureTzOffset,
    };
});

// https://c.disquscdn.com/next/next-core/core/UniqueModel.com/next/next-core/core/time.js

Replies to Re: Re: time.js rss

Title Name Language When
editable.js disqus.com javascript 3 Months ago.

Reply to "Re: Re: time.js"

Here you can reply to the paste above