bpm 1.0.0.beta.5 → 1.0.0.beta.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGELOG.md +5 -0
 - data/TODO.md +18 -17
 - data/lib/bpm/pipeline/generated_asset.rb +64 -41
 - data/lib/bpm/pipeline/plugin_context.rb +24 -0
 - data/lib/bpm/pipeline/transport_processor.rb +3 -3
 - data/lib/bpm/pipeline.rb +2 -1
 - data/lib/bpm/project.rb +7 -1
 - data/lib/bpm/version.rb +1 -1
 - data/lib/bpm.rb +1 -0
 - data/spec/fixtures/projects/minitest/minitest.json +4 -2
 - data/spec/fixtures/projects/minitest/packages/uglyduck/minifier/main.js +3 -2
 - data/spec/fixtures/projects/minitrans/lib/main.js +3 -0
 - data/spec/fixtures/projects/minitrans/minitrans.json +25 -0
 - data/spec/fixtures/projects/minitrans/packages/transport/lib/main.js +1 -0
 - data/spec/fixtures/projects/minitrans/packages/transport/package.json +21 -0
 - data/spec/fixtures/projects/minitrans/packages/transport/transports/wrapper.js +6 -0
 - data/spec/fixtures/projects/minitrans/packages/uglyduck/lib/main.js +3 -0
 - data/spec/fixtures/projects/minitrans/packages/uglyduck/minifier/main.js +6 -0
 - data/spec/fixtures/projects/minitrans/packages/uglyduck/package.json +21 -0
 - data/spec/fixtures/projects/transporter/packages/transport/transports/wrapper.js +2 -2
 - data/spec/plugins/minifier_spec.rb +2 -2
 - data/spec/plugins/transport_spec.rb +38 -0
 - metadata +41 -56
 - data/backbone/LICENSE +0 -22
 - data/backbone/README +0 -25
 - data/backbone/Rakefile +0 -42
 - data/backbone/backbone-0.5.1.bpkg +0 -0
 - data/backbone/examples/backbone-localstorage.js +0 -84
 - data/backbone/examples/todos/destroy.png +0 -0
 - data/backbone/examples/todos/index.html +0 -87
 - data/backbone/examples/todos/todos.css +0 -311
 - data/backbone/examples/todos/todos.js +0 -258
 - data/backbone/index.html +0 -2606
 - data/backbone/index.js +0 -1
 - data/backbone/lib/backbone.js +0 -1149
 - data/backbone/lib/index.js +0 -1
 - data/backbone/package.json +0 -14
 - data/backbone/test/collection.js +0 -345
 - data/backbone/test/events.js +0 -70
 - data/backbone/test/model.coffee +0 -43
 - data/backbone/test/model.js +0 -424
 - data/backbone/test/noconflict.js +0 -12
 - data/backbone/test/router.js +0 -116
 - data/backbone/test/speed.js +0 -45
 - data/backbone/test/sync.js +0 -133
 - data/backbone/test/test-zepto.html +0 -30
 - data/backbone/test/test.html +0 -31
 - data/backbone/test/vendor/jquery-1.5.js +0 -8176
 - data/backbone/test/vendor/jslitmus.js +0 -649
 - data/backbone/test/vendor/json2.js +0 -481
 - data/backbone/test/vendor/qunit.css +0 -196
 - data/backbone/test/vendor/qunit.js +0 -1364
 - data/backbone/test/vendor/underscore-1.1.6.js +0 -807
 - data/backbone/test/vendor/zepto-0.6.js +0 -692
 - data/backbone/test/view.js +0 -137
 
    
        data/backbone/lib/index.js
    DELETED
    
    | 
         @@ -1 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            module.exports = require('./backbone');
         
     | 
    
        data/backbone/package.json
    DELETED
    
    | 
         @@ -1,14 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            {
         
     | 
| 
       2 
     | 
    
         
            -
              "name"          : "backbone",
         
     | 
| 
       3 
     | 
    
         
            -
              "description"   : "Give your JS App some Backbone with Models, Views, Collections, and Events.",
         
     | 
| 
       4 
     | 
    
         
            -
              "url"           : "http://documentcloud.github.com/backbone/",
         
     | 
| 
       5 
     | 
    
         
            -
              "keywords"      : ["util", "functional", "server", "client", "browser"],
         
     | 
| 
       6 
     | 
    
         
            -
              "author"        : "Jeremy Ashkenas <jeremy@documentcloud.org>",
         
     | 
| 
       7 
     | 
    
         
            -
              "contributors"  : [],
         
     | 
| 
       8 
     | 
    
         
            -
              "dependencies"  : {
         
     | 
| 
       9 
     | 
    
         
            -
                "underscore"  : ">= 1.1.2"
         
     | 
| 
       10 
     | 
    
         
            -
              },
         
     | 
| 
       11 
     | 
    
         
            -
              "lib"           : ".",
         
     | 
| 
       12 
     | 
    
         
            -
              "main"          : "backbone.js",
         
     | 
| 
       13 
     | 
    
         
            -
              "version"       : "0.5.1"
         
     | 
| 
       14 
     | 
    
         
            -
            }
         
     | 
    
        data/backbone/test/collection.js
    DELETED
    
    | 
         @@ -1,345 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            $(document).ready(function() {
         
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
       3 
     | 
    
         
            -
              module("Backbone.Collection");
         
     | 
| 
       4 
     | 
    
         
            -
             
     | 
| 
       5 
     | 
    
         
            -
              window.lastRequest = null;
         
     | 
| 
       6 
     | 
    
         
            -
             
     | 
| 
       7 
     | 
    
         
            -
              Backbone.sync = function() {
         
     | 
| 
       8 
     | 
    
         
            -
                lastRequest = _.toArray(arguments);
         
     | 
| 
       9 
     | 
    
         
            -
              };
         
     | 
| 
       10 
     | 
    
         
            -
             
     | 
| 
       11 
     | 
    
         
            -
              var a         = new Backbone.Model({id: 3, label: 'a'});
         
     | 
| 
       12 
     | 
    
         
            -
              var b         = new Backbone.Model({id: 2, label: 'b'});
         
     | 
| 
       13 
     | 
    
         
            -
              var c         = new Backbone.Model({id: 1, label: 'c'});
         
     | 
| 
       14 
     | 
    
         
            -
              var d         = new Backbone.Model({id: 0, label: 'd'});
         
     | 
| 
       15 
     | 
    
         
            -
              var e         = null;
         
     | 
| 
       16 
     | 
    
         
            -
              var col       = new Backbone.Collection([a,b,c,d]);
         
     | 
| 
       17 
     | 
    
         
            -
              var otherCol  = new Backbone.Collection();
         
     | 
| 
       18 
     | 
    
         
            -
             
     | 
| 
       19 
     | 
    
         
            -
              test("Collection: new and sort", function() {
         
     | 
| 
       20 
     | 
    
         
            -
                equals(col.first(), a, "a should be first");
         
     | 
| 
       21 
     | 
    
         
            -
                equals(col.last(), d, "d should be last");
         
     | 
| 
       22 
     | 
    
         
            -
                col.comparator = function(model) { return model.id; };
         
     | 
| 
       23 
     | 
    
         
            -
                col.sort();
         
     | 
| 
       24 
     | 
    
         
            -
                equals(col.first(), d, "d should be first");
         
     | 
| 
       25 
     | 
    
         
            -
                equals(col.last(), a, "a should be last");
         
     | 
| 
       26 
     | 
    
         
            -
                equals(col.length, 4);
         
     | 
| 
       27 
     | 
    
         
            -
              });
         
     | 
| 
       28 
     | 
    
         
            -
             
     | 
| 
       29 
     | 
    
         
            -
              test("Collection: get, getByCid", function() {
         
     | 
| 
       30 
     | 
    
         
            -
                equals(col.get(0), d);
         
     | 
| 
       31 
     | 
    
         
            -
                equals(col.get(2), b);
         
     | 
| 
       32 
     | 
    
         
            -
                equals(col.getByCid(col.first().cid), col.first());
         
     | 
| 
       33 
     | 
    
         
            -
              });
         
     | 
| 
       34 
     | 
    
         
            -
             
     | 
| 
       35 
     | 
    
         
            -
              test("Collection: get with non-default ids", function() {
         
     | 
| 
       36 
     | 
    
         
            -
                var col = new Backbone.Collection();
         
     | 
| 
       37 
     | 
    
         
            -
                var MongoModel = Backbone.Model.extend({
         
     | 
| 
       38 
     | 
    
         
            -
                  idAttribute: '_id'
         
     | 
| 
       39 
     | 
    
         
            -
                });
         
     | 
| 
       40 
     | 
    
         
            -
                var model = new MongoModel({_id: 100});
         
     | 
| 
       41 
     | 
    
         
            -
                col.add(model);
         
     | 
| 
       42 
     | 
    
         
            -
                equals(col.get(100), model);
         
     | 
| 
       43 
     | 
    
         
            -
                model.set({_id: 101});
         
     | 
| 
       44 
     | 
    
         
            -
                equals(col.get(101), model);
         
     | 
| 
       45 
     | 
    
         
            -
              });
         
     | 
| 
       46 
     | 
    
         
            -
             
     | 
| 
       47 
     | 
    
         
            -
              test("Collection: update index when id changes", function() {
         
     | 
| 
       48 
     | 
    
         
            -
                var col = new Backbone.Collection();
         
     | 
| 
       49 
     | 
    
         
            -
                col.add([
         
     | 
| 
       50 
     | 
    
         
            -
                  {id : 0, name : 'one'},
         
     | 
| 
       51 
     | 
    
         
            -
                  {id : 1, name : 'two'}
         
     | 
| 
       52 
     | 
    
         
            -
                ]);
         
     | 
| 
       53 
     | 
    
         
            -
                var one = col.get(0);
         
     | 
| 
       54 
     | 
    
         
            -
                equals(one.get('name'), 'one');
         
     | 
| 
       55 
     | 
    
         
            -
                one.set({id : 101});
         
     | 
| 
       56 
     | 
    
         
            -
                equals(col.get(0), null);
         
     | 
| 
       57 
     | 
    
         
            -
                equals(col.get(101).get('name'), 'one');
         
     | 
| 
       58 
     | 
    
         
            -
              });
         
     | 
| 
       59 
     | 
    
         
            -
             
     | 
| 
       60 
     | 
    
         
            -
              test("Collection: at", function() {
         
     | 
| 
       61 
     | 
    
         
            -
                equals(col.at(2), b);
         
     | 
| 
       62 
     | 
    
         
            -
              });
         
     | 
| 
       63 
     | 
    
         
            -
             
     | 
| 
       64 
     | 
    
         
            -
              test("Collection: pluck", function() {
         
     | 
| 
       65 
     | 
    
         
            -
                equals(col.pluck('label').join(' '), 'd c b a');
         
     | 
| 
       66 
     | 
    
         
            -
              });
         
     | 
| 
       67 
     | 
    
         
            -
             
     | 
| 
       68 
     | 
    
         
            -
              test("Collection: add", function() {
         
     | 
| 
       69 
     | 
    
         
            -
                var added = opts = secondAdded = null;
         
     | 
| 
       70 
     | 
    
         
            -
                e = new Backbone.Model({id: 10, label : 'e'});
         
     | 
| 
       71 
     | 
    
         
            -
                otherCol.add(e);
         
     | 
| 
       72 
     | 
    
         
            -
                otherCol.bind('add', function() {
         
     | 
| 
       73 
     | 
    
         
            -
                  secondAdded = true;
         
     | 
| 
       74 
     | 
    
         
            -
                });
         
     | 
| 
       75 
     | 
    
         
            -
                col.bind('add', function(model, collection, options){
         
     | 
| 
       76 
     | 
    
         
            -
                  added = model.get('label');
         
     | 
| 
       77 
     | 
    
         
            -
                  opts = options;
         
     | 
| 
       78 
     | 
    
         
            -
                });
         
     | 
| 
       79 
     | 
    
         
            -
                col.add(e, {amazing: true});
         
     | 
| 
       80 
     | 
    
         
            -
                equals(added, 'e');
         
     | 
| 
       81 
     | 
    
         
            -
                equals(col.length, 5);
         
     | 
| 
       82 
     | 
    
         
            -
                equals(col.last(), e);
         
     | 
| 
       83 
     | 
    
         
            -
                equals(otherCol.length, 1);
         
     | 
| 
       84 
     | 
    
         
            -
                equals(secondAdded, null);
         
     | 
| 
       85 
     | 
    
         
            -
                ok(opts.amazing);
         
     | 
| 
       86 
     | 
    
         
            -
             
     | 
| 
       87 
     | 
    
         
            -
                var f = new Backbone.Model({id: 20, label : 'f'});
         
     | 
| 
       88 
     | 
    
         
            -
                var g = new Backbone.Model({id: 21, label : 'g'});
         
     | 
| 
       89 
     | 
    
         
            -
                var h = new Backbone.Model({id: 22, label : 'h'});
         
     | 
| 
       90 
     | 
    
         
            -
                var atCol = new Backbone.Collection([f, g, h]);
         
     | 
| 
       91 
     | 
    
         
            -
                equals(atCol.length, 3);
         
     | 
| 
       92 
     | 
    
         
            -
                atCol.add(e, {at: 1});
         
     | 
| 
       93 
     | 
    
         
            -
                equals(atCol.length, 4);
         
     | 
| 
       94 
     | 
    
         
            -
                equals(atCol.at(1), e);
         
     | 
| 
       95 
     | 
    
         
            -
                equals(atCol.last(), h);
         
     | 
| 
       96 
     | 
    
         
            -
              });
         
     | 
| 
       97 
     | 
    
         
            -
             
     | 
| 
       98 
     | 
    
         
            -
              test("Collection: add model to collection twice", function() {
         
     | 
| 
       99 
     | 
    
         
            -
                try {
         
     | 
| 
       100 
     | 
    
         
            -
                  // no id, same cid
         
     | 
| 
       101 
     | 
    
         
            -
                  var a2 = new Backbone.Model({label: a.label});
         
     | 
| 
       102 
     | 
    
         
            -
                  a2.cid = a.cid;
         
     | 
| 
       103 
     | 
    
         
            -
                  col.add(a2);
         
     | 
| 
       104 
     | 
    
         
            -
                  ok(false, "duplicate; expected add to fail");
         
     | 
| 
       105 
     | 
    
         
            -
                } catch (e) {
         
     | 
| 
       106 
     | 
    
         
            -
                  equals(e.message, "Can't add the same model to a set twice,3");
         
     | 
| 
       107 
     | 
    
         
            -
                }
         
     | 
| 
       108 
     | 
    
         
            -
              });
         
     | 
| 
       109 
     | 
    
         
            -
             
     | 
| 
       110 
     | 
    
         
            -
              test("Collection: add model to multiple collections", function() {
         
     | 
| 
       111 
     | 
    
         
            -
                var counter = 0;
         
     | 
| 
       112 
     | 
    
         
            -
                var e = new Backbone.Model({id: 10, label : 'e'});
         
     | 
| 
       113 
     | 
    
         
            -
                e.bind('add', function(model, collection) {
         
     | 
| 
       114 
     | 
    
         
            -
                  counter++;
         
     | 
| 
       115 
     | 
    
         
            -
                  equals(e, model);
         
     | 
| 
       116 
     | 
    
         
            -
                  if (counter > 1) {
         
     | 
| 
       117 
     | 
    
         
            -
                    equals(collection, colF);
         
     | 
| 
       118 
     | 
    
         
            -
                  } else {
         
     | 
| 
       119 
     | 
    
         
            -
                    equals(collection, colE);
         
     | 
| 
       120 
     | 
    
         
            -
                  }
         
     | 
| 
       121 
     | 
    
         
            -
                });
         
     | 
| 
       122 
     | 
    
         
            -
                var colE = new Backbone.Collection([]);
         
     | 
| 
       123 
     | 
    
         
            -
                colE.bind('add', function(model, collection) {
         
     | 
| 
       124 
     | 
    
         
            -
                  equals(e, model);
         
     | 
| 
       125 
     | 
    
         
            -
                  equals(colE, collection);
         
     | 
| 
       126 
     | 
    
         
            -
                });
         
     | 
| 
       127 
     | 
    
         
            -
                var colF = new Backbone.Collection([]);
         
     | 
| 
       128 
     | 
    
         
            -
                colF.bind('add', function(model, collection) {
         
     | 
| 
       129 
     | 
    
         
            -
                  equals(e, model);
         
     | 
| 
       130 
     | 
    
         
            -
                  equals(colF, collection);
         
     | 
| 
       131 
     | 
    
         
            -
                });
         
     | 
| 
       132 
     | 
    
         
            -
                colE.add(e);
         
     | 
| 
       133 
     | 
    
         
            -
                equals(e.collection, colE);
         
     | 
| 
       134 
     | 
    
         
            -
                colF.add(e);
         
     | 
| 
       135 
     | 
    
         
            -
                equals(e.collection, colE);
         
     | 
| 
       136 
     | 
    
         
            -
              });
         
     | 
| 
       137 
     | 
    
         
            -
             
     | 
| 
       138 
     | 
    
         
            -
              test("Collection: remove", function() {
         
     | 
| 
       139 
     | 
    
         
            -
                var removed = otherRemoved = null;
         
     | 
| 
       140 
     | 
    
         
            -
                col.bind('remove', function(model){ removed = model.get('label'); });
         
     | 
| 
       141 
     | 
    
         
            -
                otherCol.bind('remove', function(){ otherRemoved = true; });
         
     | 
| 
       142 
     | 
    
         
            -
                col.remove(e);
         
     | 
| 
       143 
     | 
    
         
            -
                equals(removed, 'e');
         
     | 
| 
       144 
     | 
    
         
            -
                equals(col.length, 4);
         
     | 
| 
       145 
     | 
    
         
            -
                equals(col.first(), d);
         
     | 
| 
       146 
     | 
    
         
            -
                equals(otherRemoved, null);
         
     | 
| 
       147 
     | 
    
         
            -
              });
         
     | 
| 
       148 
     | 
    
         
            -
             
     | 
| 
       149 
     | 
    
         
            -
              test("Collection: events are unbound on remove", function() {
         
     | 
| 
       150 
     | 
    
         
            -
                var counter = 0;
         
     | 
| 
       151 
     | 
    
         
            -
                var dj = new Backbone.Model();
         
     | 
| 
       152 
     | 
    
         
            -
                var emcees = new Backbone.Collection([dj]);
         
     | 
| 
       153 
     | 
    
         
            -
                emcees.bind('change', function(){ counter++; });
         
     | 
| 
       154 
     | 
    
         
            -
                dj.set({name : 'Kool'});
         
     | 
| 
       155 
     | 
    
         
            -
                equals(counter, 1);
         
     | 
| 
       156 
     | 
    
         
            -
                emcees.reset([]);
         
     | 
| 
       157 
     | 
    
         
            -
                equals(dj.collection, undefined);
         
     | 
| 
       158 
     | 
    
         
            -
                dj.set({name : 'Shadow'});
         
     | 
| 
       159 
     | 
    
         
            -
                equals(counter, 1);
         
     | 
| 
       160 
     | 
    
         
            -
              });
         
     | 
| 
       161 
     | 
    
         
            -
             
     | 
| 
       162 
     | 
    
         
            -
              test("Collection: remove in multiple collections", function() {
         
     | 
| 
       163 
     | 
    
         
            -
                var modelData = {
         
     | 
| 
       164 
     | 
    
         
            -
                  id : 5,
         
     | 
| 
       165 
     | 
    
         
            -
                  title : 'Othello'
         
     | 
| 
       166 
     | 
    
         
            -
                };
         
     | 
| 
       167 
     | 
    
         
            -
                var passed = false;
         
     | 
| 
       168 
     | 
    
         
            -
                var e = new Backbone.Model(modelData);
         
     | 
| 
       169 
     | 
    
         
            -
                var f = new Backbone.Model(modelData);
         
     | 
| 
       170 
     | 
    
         
            -
                f.bind('remove', function() {
         
     | 
| 
       171 
     | 
    
         
            -
                  passed = true;
         
     | 
| 
       172 
     | 
    
         
            -
                });
         
     | 
| 
       173 
     | 
    
         
            -
                var colE = new Backbone.Collection([e]);
         
     | 
| 
       174 
     | 
    
         
            -
                var colF = new Backbone.Collection([f]);
         
     | 
| 
       175 
     | 
    
         
            -
                ok(e != f);
         
     | 
| 
       176 
     | 
    
         
            -
                ok(colE.length == 1);
         
     | 
| 
       177 
     | 
    
         
            -
                ok(colF.length == 1);
         
     | 
| 
       178 
     | 
    
         
            -
                colE.remove(e);
         
     | 
| 
       179 
     | 
    
         
            -
                equals(passed, false);
         
     | 
| 
       180 
     | 
    
         
            -
                ok(colE.length == 0);
         
     | 
| 
       181 
     | 
    
         
            -
                colF.remove(e);
         
     | 
| 
       182 
     | 
    
         
            -
                ok(colF.length == 0);
         
     | 
| 
       183 
     | 
    
         
            -
                equals(passed, true);
         
     | 
| 
       184 
     | 
    
         
            -
              });
         
     | 
| 
       185 
     | 
    
         
            -
             
     | 
| 
       186 
     | 
    
         
            -
              test("Collection: remove same model in multiple collection", function() {
         
     | 
| 
       187 
     | 
    
         
            -
                var counter = 0;
         
     | 
| 
       188 
     | 
    
         
            -
                var e = new Backbone.Model({id: 5, title: 'Othello'});
         
     | 
| 
       189 
     | 
    
         
            -
                e.bind('remove', function(model, collection) {
         
     | 
| 
       190 
     | 
    
         
            -
                  counter++;
         
     | 
| 
       191 
     | 
    
         
            -
                  equals(e, model);
         
     | 
| 
       192 
     | 
    
         
            -
                  if (counter > 1) {
         
     | 
| 
       193 
     | 
    
         
            -
                    equals(collection, colE);
         
     | 
| 
       194 
     | 
    
         
            -
                  } else {
         
     | 
| 
       195 
     | 
    
         
            -
                    equals(collection, colF);
         
     | 
| 
       196 
     | 
    
         
            -
                  }
         
     | 
| 
       197 
     | 
    
         
            -
                });
         
     | 
| 
       198 
     | 
    
         
            -
                var colE = new Backbone.Collection([e]);
         
     | 
| 
       199 
     | 
    
         
            -
                colE.bind('remove', function(model, collection) {
         
     | 
| 
       200 
     | 
    
         
            -
                  equals(e, model);
         
     | 
| 
       201 
     | 
    
         
            -
                  equals(colE, collection);
         
     | 
| 
       202 
     | 
    
         
            -
                });
         
     | 
| 
       203 
     | 
    
         
            -
                var colF = new Backbone.Collection([e]);
         
     | 
| 
       204 
     | 
    
         
            -
                colF.bind('remove', function(model, collection) {
         
     | 
| 
       205 
     | 
    
         
            -
                  equals(e, model);
         
     | 
| 
       206 
     | 
    
         
            -
                  equals(colF, collection);
         
     | 
| 
       207 
     | 
    
         
            -
                });
         
     | 
| 
       208 
     | 
    
         
            -
                equals(colE, e.collection);
         
     | 
| 
       209 
     | 
    
         
            -
                colF.remove(e);
         
     | 
| 
       210 
     | 
    
         
            -
                ok(colF.length == 0);
         
     | 
| 
       211 
     | 
    
         
            -
                ok(colE.length == 1);
         
     | 
| 
       212 
     | 
    
         
            -
                equals(counter, 1);
         
     | 
| 
       213 
     | 
    
         
            -
                equals(colE, e.collection);
         
     | 
| 
       214 
     | 
    
         
            -
                colE.remove(e);
         
     | 
| 
       215 
     | 
    
         
            -
                equals(null, e.collection);
         
     | 
| 
       216 
     | 
    
         
            -
                ok(colE.length == 0);
         
     | 
| 
       217 
     | 
    
         
            -
                equals(counter, 2);
         
     | 
| 
       218 
     | 
    
         
            -
              });
         
     | 
| 
       219 
     | 
    
         
            -
             
     | 
| 
       220 
     | 
    
         
            -
              test("Collection: model destroy removes from all collections", function() {
         
     | 
| 
       221 
     | 
    
         
            -
                var e = new Backbone.Model({id: 5, title: 'Othello'});
         
     | 
| 
       222 
     | 
    
         
            -
                e.sync = function(method, model, options) { options.success({}); };
         
     | 
| 
       223 
     | 
    
         
            -
                var colE = new Backbone.Collection([e]);
         
     | 
| 
       224 
     | 
    
         
            -
                var colF = new Backbone.Collection([e]);
         
     | 
| 
       225 
     | 
    
         
            -
                e.destroy();
         
     | 
| 
       226 
     | 
    
         
            -
                ok(colE.length == 0);
         
     | 
| 
       227 
     | 
    
         
            -
                ok(colF.length == 0);
         
     | 
| 
       228 
     | 
    
         
            -
                equals(null, e.collection);
         
     | 
| 
       229 
     | 
    
         
            -
              });
         
     | 
| 
       230 
     | 
    
         
            -
             
     | 
| 
       231 
     | 
    
         
            -
              test("Colllection: non-persisted model destroy removes from all collections", function() {
         
     | 
| 
       232 
     | 
    
         
            -
                var e = new Backbone.Model({title: 'Othello'});
         
     | 
| 
       233 
     | 
    
         
            -
                e.sync = function(method, model, options) { throw "should not be called"; };
         
     | 
| 
       234 
     | 
    
         
            -
                var colE = new Backbone.Collection([e]);
         
     | 
| 
       235 
     | 
    
         
            -
                var colF = new Backbone.Collection([e]);
         
     | 
| 
       236 
     | 
    
         
            -
                e.destroy();
         
     | 
| 
       237 
     | 
    
         
            -
                ok(colE.length == 0);
         
     | 
| 
       238 
     | 
    
         
            -
                ok(colF.length == 0);
         
     | 
| 
       239 
     | 
    
         
            -
                equals(null, e.collection);
         
     | 
| 
       240 
     | 
    
         
            -
              });
         
     | 
| 
       241 
     | 
    
         
            -
             
     | 
| 
       242 
     | 
    
         
            -
              test("Collection: fetch", function() {
         
     | 
| 
       243 
     | 
    
         
            -
                col.fetch();
         
     | 
| 
       244 
     | 
    
         
            -
                equals(lastRequest[0], 'read');
         
     | 
| 
       245 
     | 
    
         
            -
                equals(lastRequest[1], col);
         
     | 
| 
       246 
     | 
    
         
            -
              });
         
     | 
| 
       247 
     | 
    
         
            -
             
     | 
| 
       248 
     | 
    
         
            -
              test("Collection: create", function() {
         
     | 
| 
       249 
     | 
    
         
            -
                var model = col.create({label: 'f'});
         
     | 
| 
       250 
     | 
    
         
            -
                equals(lastRequest[0], 'create');
         
     | 
| 
       251 
     | 
    
         
            -
                equals(lastRequest[1], model);
         
     | 
| 
       252 
     | 
    
         
            -
                equals(model.get('label'), 'f');
         
     | 
| 
       253 
     | 
    
         
            -
                equals(model.collection, col);
         
     | 
| 
       254 
     | 
    
         
            -
              });
         
     | 
| 
       255 
     | 
    
         
            -
             
     | 
| 
       256 
     | 
    
         
            -
              test("Collection: create enforces validation", function() {
         
     | 
| 
       257 
     | 
    
         
            -
                var ValidatingModel = Backbone.Model.extend({
         
     | 
| 
       258 
     | 
    
         
            -
                  validate: function(attrs) {
         
     | 
| 
       259 
     | 
    
         
            -
                    return "fail";
         
     | 
| 
       260 
     | 
    
         
            -
                  }
         
     | 
| 
       261 
     | 
    
         
            -
                });
         
     | 
| 
       262 
     | 
    
         
            -
                var ValidatingCollection = Backbone.Collection.extend({
         
     | 
| 
       263 
     | 
    
         
            -
                  model: ValidatingModel
         
     | 
| 
       264 
     | 
    
         
            -
                });
         
     | 
| 
       265 
     | 
    
         
            -
                var col = new ValidatingCollection();
         
     | 
| 
       266 
     | 
    
         
            -
                equals(col.create({"foo":"bar"}),false);
         
     | 
| 
       267 
     | 
    
         
            -
              });
         
     | 
| 
       268 
     | 
    
         
            -
             
     | 
| 
       269 
     | 
    
         
            -
              test("Collection: a failing create runs the error callback", function() {
         
     | 
| 
       270 
     | 
    
         
            -
                var ValidatingModel = Backbone.Model.extend({
         
     | 
| 
       271 
     | 
    
         
            -
                  validate: function(attrs) {
         
     | 
| 
       272 
     | 
    
         
            -
                    return "fail";
         
     | 
| 
       273 
     | 
    
         
            -
                  }
         
     | 
| 
       274 
     | 
    
         
            -
                });
         
     | 
| 
       275 
     | 
    
         
            -
                var ValidatingCollection = Backbone.Collection.extend({
         
     | 
| 
       276 
     | 
    
         
            -
                  model: ValidatingModel
         
     | 
| 
       277 
     | 
    
         
            -
                });
         
     | 
| 
       278 
     | 
    
         
            -
                var flag = false;
         
     | 
| 
       279 
     | 
    
         
            -
                var callback = function(model, error) { flag = true; };
         
     | 
| 
       280 
     | 
    
         
            -
                var col = new ValidatingCollection();
         
     | 
| 
       281 
     | 
    
         
            -
                col.create({"foo":"bar"}, { error: callback });
         
     | 
| 
       282 
     | 
    
         
            -
                equals(flag, true);
         
     | 
| 
       283 
     | 
    
         
            -
              });
         
     | 
| 
       284 
     | 
    
         
            -
             
     | 
| 
       285 
     | 
    
         
            -
              test("collection: initialize", function() {
         
     | 
| 
       286 
     | 
    
         
            -
                var Collection = Backbone.Collection.extend({
         
     | 
| 
       287 
     | 
    
         
            -
                  initialize: function() {
         
     | 
| 
       288 
     | 
    
         
            -
                    this.one = 1;
         
     | 
| 
       289 
     | 
    
         
            -
                  }
         
     | 
| 
       290 
     | 
    
         
            -
                });
         
     | 
| 
       291 
     | 
    
         
            -
                var coll = new Collection;
         
     | 
| 
       292 
     | 
    
         
            -
                equals(coll.one, 1);
         
     | 
| 
       293 
     | 
    
         
            -
              });
         
     | 
| 
       294 
     | 
    
         
            -
             
     | 
| 
       295 
     | 
    
         
            -
              test("Collection: toJSON", function() {
         
     | 
| 
       296 
     | 
    
         
            -
                equals(JSON.stringify(col), '[{"id":0,"label":"d"},{"id":1,"label":"c"},{"id":2,"label":"b"},{"id":3,"label":"a"}]');
         
     | 
| 
       297 
     | 
    
         
            -
              });
         
     | 
| 
       298 
     | 
    
         
            -
             
     | 
| 
       299 
     | 
    
         
            -
              test("Collection: Underscore methods", function() {
         
     | 
| 
       300 
     | 
    
         
            -
                equals(col.map(function(model){ return model.get('label'); }).join(' '), 'd c b a');
         
     | 
| 
       301 
     | 
    
         
            -
                equals(col.any(function(model){ return model.id === 100; }), false);
         
     | 
| 
       302 
     | 
    
         
            -
                equals(col.any(function(model){ return model.id === 0; }), true);
         
     | 
| 
       303 
     | 
    
         
            -
                equals(col.indexOf(b), 2);
         
     | 
| 
       304 
     | 
    
         
            -
                equals(col.size(), 4);
         
     | 
| 
       305 
     | 
    
         
            -
                equals(col.rest().length, 3);
         
     | 
| 
       306 
     | 
    
         
            -
                ok(!_.include(col.rest()), a);
         
     | 
| 
       307 
     | 
    
         
            -
                ok(!_.include(col.rest()), d);
         
     | 
| 
       308 
     | 
    
         
            -
                ok(!col.isEmpty());
         
     | 
| 
       309 
     | 
    
         
            -
                ok(!_.include(col.without(d)), d);
         
     | 
| 
       310 
     | 
    
         
            -
                equals(col.max(function(model){ return model.id; }).id, 3);
         
     | 
| 
       311 
     | 
    
         
            -
                equals(col.min(function(model){ return model.id; }).id, 0);
         
     | 
| 
       312 
     | 
    
         
            -
                same(col.chain()
         
     | 
| 
       313 
     | 
    
         
            -
                        .filter(function(o){ return o.id % 2 === 0; })
         
     | 
| 
       314 
     | 
    
         
            -
                        .map(function(o){ return o.id * 2; })
         
     | 
| 
       315 
     | 
    
         
            -
                        .value(),
         
     | 
| 
       316 
     | 
    
         
            -
                     [0, 4]);
         
     | 
| 
       317 
     | 
    
         
            -
              });
         
     | 
| 
       318 
     | 
    
         
            -
             
     | 
| 
       319 
     | 
    
         
            -
              test("Collection: reset", function() {
         
     | 
| 
       320 
     | 
    
         
            -
                var resetCount = 0;
         
     | 
| 
       321 
     | 
    
         
            -
                var models = col.models;
         
     | 
| 
       322 
     | 
    
         
            -
                col.bind('reset', function() { resetCount += 1; });
         
     | 
| 
       323 
     | 
    
         
            -
                col.reset([]);
         
     | 
| 
       324 
     | 
    
         
            -
                equals(resetCount, 1);
         
     | 
| 
       325 
     | 
    
         
            -
                equals(col.length, 0);
         
     | 
| 
       326 
     | 
    
         
            -
                equals(col.last(), null);
         
     | 
| 
       327 
     | 
    
         
            -
                col.reset(models);
         
     | 
| 
       328 
     | 
    
         
            -
                equals(resetCount, 2);
         
     | 
| 
       329 
     | 
    
         
            -
                equals(col.length, 4);
         
     | 
| 
       330 
     | 
    
         
            -
                equals(col.last(), a);
         
     | 
| 
       331 
     | 
    
         
            -
                col.reset(_.map(models, function(m){ return m.attributes; }));
         
     | 
| 
       332 
     | 
    
         
            -
                equals(resetCount, 3);
         
     | 
| 
       333 
     | 
    
         
            -
                equals(col.length, 4);
         
     | 
| 
       334 
     | 
    
         
            -
                ok(col.last() !== a);
         
     | 
| 
       335 
     | 
    
         
            -
                ok(_.isEqual(col.last().attributes, a.attributes));
         
     | 
| 
       336 
     | 
    
         
            -
              });
         
     | 
| 
       337 
     | 
    
         
            -
             
     | 
| 
       338 
     | 
    
         
            -
              test("Collection: trigger custom events on models", function() {
         
     | 
| 
       339 
     | 
    
         
            -
                var fired = null;
         
     | 
| 
       340 
     | 
    
         
            -
                a.bind("custom", function() { fired = true; });
         
     | 
| 
       341 
     | 
    
         
            -
                a.trigger("custom");
         
     | 
| 
       342 
     | 
    
         
            -
                equals(fired, true);
         
     | 
| 
       343 
     | 
    
         
            -
              });
         
     | 
| 
       344 
     | 
    
         
            -
             
     | 
| 
       345 
     | 
    
         
            -
            });
         
     | 
    
        data/backbone/test/events.js
    DELETED
    
    | 
         @@ -1,70 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            $(document).ready(function() {
         
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
       3 
     | 
    
         
            -
              module("Backbone.Events");
         
     | 
| 
       4 
     | 
    
         
            -
             
     | 
| 
       5 
     | 
    
         
            -
              test("Events: bind and trigger", function() {
         
     | 
| 
       6 
     | 
    
         
            -
                var obj = { counter: 0 };
         
     | 
| 
       7 
     | 
    
         
            -
                _.extend(obj,Backbone.Events);
         
     | 
| 
       8 
     | 
    
         
            -
                obj.bind('event', function() { obj.counter += 1; });
         
     | 
| 
       9 
     | 
    
         
            -
                obj.trigger('event');
         
     | 
| 
       10 
     | 
    
         
            -
                equals(obj.counter,1,'counter should be incremented.');
         
     | 
| 
       11 
     | 
    
         
            -
                obj.trigger('event');
         
     | 
| 
       12 
     | 
    
         
            -
                obj.trigger('event');
         
     | 
| 
       13 
     | 
    
         
            -
                obj.trigger('event');
         
     | 
| 
       14 
     | 
    
         
            -
                obj.trigger('event');
         
     | 
| 
       15 
     | 
    
         
            -
                equals(obj.counter, 5, 'counter should be incremented five times.');
         
     | 
| 
       16 
     | 
    
         
            -
              });
         
     | 
| 
       17 
     | 
    
         
            -
             
     | 
| 
       18 
     | 
    
         
            -
              test("Events: bind, then unbind all functions", function() {
         
     | 
| 
       19 
     | 
    
         
            -
                var obj = { counter: 0 };
         
     | 
| 
       20 
     | 
    
         
            -
                _.extend(obj,Backbone.Events);
         
     | 
| 
       21 
     | 
    
         
            -
                var callback = function() { obj.counter += 1; };
         
     | 
| 
       22 
     | 
    
         
            -
                obj.bind('event', callback);
         
     | 
| 
       23 
     | 
    
         
            -
                obj.trigger('event');
         
     | 
| 
       24 
     | 
    
         
            -
                obj.unbind('event');
         
     | 
| 
       25 
     | 
    
         
            -
                obj.trigger('event');
         
     | 
| 
       26 
     | 
    
         
            -
                equals(obj.counter, 1, 'counter should have only been incremented once.');
         
     | 
| 
       27 
     | 
    
         
            -
              });
         
     | 
| 
       28 
     | 
    
         
            -
             
     | 
| 
       29 
     | 
    
         
            -
              test("Events: bind two callbacks, unbind only one", function() {
         
     | 
| 
       30 
     | 
    
         
            -
                var obj = { counterA: 0, counterB: 0 };
         
     | 
| 
       31 
     | 
    
         
            -
                _.extend(obj,Backbone.Events);
         
     | 
| 
       32 
     | 
    
         
            -
                var callback = function() { obj.counterA += 1; };
         
     | 
| 
       33 
     | 
    
         
            -
                obj.bind('event', callback);
         
     | 
| 
       34 
     | 
    
         
            -
                obj.bind('event', function() { obj.counterB += 1; });
         
     | 
| 
       35 
     | 
    
         
            -
                obj.trigger('event');
         
     | 
| 
       36 
     | 
    
         
            -
                obj.unbind('event', callback);
         
     | 
| 
       37 
     | 
    
         
            -
                obj.trigger('event');
         
     | 
| 
       38 
     | 
    
         
            -
                equals(obj.counterA, 1, 'counterA should have only been incremented once.');
         
     | 
| 
       39 
     | 
    
         
            -
                equals(obj.counterB, 2, 'counterB should have been incremented twice.');
         
     | 
| 
       40 
     | 
    
         
            -
              });
         
     | 
| 
       41 
     | 
    
         
            -
             
     | 
| 
       42 
     | 
    
         
            -
              test("Events: unbind a callback in the midst of it firing", function() {
         
     | 
| 
       43 
     | 
    
         
            -
                var obj = {counter: 0};
         
     | 
| 
       44 
     | 
    
         
            -
                _.extend(obj, Backbone.Events);
         
     | 
| 
       45 
     | 
    
         
            -
                var callback = function() {
         
     | 
| 
       46 
     | 
    
         
            -
                  obj.counter += 1;
         
     | 
| 
       47 
     | 
    
         
            -
                  obj.unbind('event', callback);
         
     | 
| 
       48 
     | 
    
         
            -
                };
         
     | 
| 
       49 
     | 
    
         
            -
                obj.bind('event', callback);
         
     | 
| 
       50 
     | 
    
         
            -
                obj.trigger('event');
         
     | 
| 
       51 
     | 
    
         
            -
                obj.trigger('event');
         
     | 
| 
       52 
     | 
    
         
            -
                obj.trigger('event');
         
     | 
| 
       53 
     | 
    
         
            -
                equals(obj.counter, 1, 'the callback should have been unbound.');
         
     | 
| 
       54 
     | 
    
         
            -
              });
         
     | 
| 
       55 
     | 
    
         
            -
             
     | 
| 
       56 
     | 
    
         
            -
              test("Events: two binds that unbind themeselves", function() {
         
     | 
| 
       57 
     | 
    
         
            -
                var obj = { counterA: 0, counterB: 0 };
         
     | 
| 
       58 
     | 
    
         
            -
                _.extend(obj,Backbone.Events);
         
     | 
| 
       59 
     | 
    
         
            -
                var incrA = function(){ obj.counterA += 1; obj.unbind('event', incrA); };
         
     | 
| 
       60 
     | 
    
         
            -
                var incrB = function(){ obj.counterB += 1; obj.unbind('event', incrB); };
         
     | 
| 
       61 
     | 
    
         
            -
                obj.bind('event', incrA);
         
     | 
| 
       62 
     | 
    
         
            -
                obj.bind('event', incrB);
         
     | 
| 
       63 
     | 
    
         
            -
                obj.trigger('event');
         
     | 
| 
       64 
     | 
    
         
            -
                obj.trigger('event');
         
     | 
| 
       65 
     | 
    
         
            -
                obj.trigger('event');
         
     | 
| 
       66 
     | 
    
         
            -
                equals(obj.counterA, 1, 'counterA should have only been incremented once.');
         
     | 
| 
       67 
     | 
    
         
            -
                equals(obj.counterB, 1, 'counterB should have only been incremented once.');
         
     | 
| 
       68 
     | 
    
         
            -
              });
         
     | 
| 
       69 
     | 
    
         
            -
             
     | 
| 
       70 
     | 
    
         
            -
            });
         
     | 
    
        data/backbone/test/model.coffee
    DELETED
    
    | 
         @@ -1,43 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            # Quick Backbone/CoffeeScript tests to make sure that inheritance
         
     | 
| 
       2 
     | 
    
         
            -
            # works correctly.
         
     | 
| 
       3 
     | 
    
         
            -
             
     | 
| 
       4 
     | 
    
         
            -
            {ok, equal, deepEqual}      = require 'assert'
         
     | 
| 
       5 
     | 
    
         
            -
            {Model, Collection, Events} = require '../backbone'
         
     | 
| 
       6 
     | 
    
         
            -
             
     | 
| 
       7 
     | 
    
         
            -
             
     | 
| 
       8 
     | 
    
         
            -
            # Patch `ok` to store a count of passed tests...
         
     | 
| 
       9 
     | 
    
         
            -
            count = 0
         
     | 
| 
       10 
     | 
    
         
            -
            oldOk = ok
         
     | 
| 
       11 
     | 
    
         
            -
            ok = ->
         
     | 
| 
       12 
     | 
    
         
            -
              oldOk arguments...
         
     | 
| 
       13 
     | 
    
         
            -
              count++
         
     | 
| 
       14 
     | 
    
         
            -
             
     | 
| 
       15 
     | 
    
         
            -
             
     | 
| 
       16 
     | 
    
         
            -
            class Document extends Model
         
     | 
| 
       17 
     | 
    
         
            -
             
     | 
| 
       18 
     | 
    
         
            -
              fullName: ->
         
     | 
| 
       19 
     | 
    
         
            -
                @get('name') + ' ' + @get('surname')
         
     | 
| 
       20 
     | 
    
         
            -
             
     | 
| 
       21 
     | 
    
         
            -
            tempest = new Document
         
     | 
| 
       22 
     | 
    
         
            -
              id      : '1-the-tempest',
         
     | 
| 
       23 
     | 
    
         
            -
              title   : "The Tempest",
         
     | 
| 
       24 
     | 
    
         
            -
              name    : "William"
         
     | 
| 
       25 
     | 
    
         
            -
              surname : "Shakespeare"
         
     | 
| 
       26 
     | 
    
         
            -
              length  : 123
         
     | 
| 
       27 
     | 
    
         
            -
             
     | 
| 
       28 
     | 
    
         
            -
            ok tempest.fullName() is "William Shakespeare"
         
     | 
| 
       29 
     | 
    
         
            -
            ok tempest.get('length') is 123
         
     | 
| 
       30 
     | 
    
         
            -
             
     | 
| 
       31 
     | 
    
         
            -
             
     | 
| 
       32 
     | 
    
         
            -
            class ProperDocument extends Document
         
     | 
| 
       33 
     | 
    
         
            -
             
     | 
| 
       34 
     | 
    
         
            -
              fullName: ->
         
     | 
| 
       35 
     | 
    
         
            -
                "Mr. " + super
         
     | 
| 
       36 
     | 
    
         
            -
             
     | 
| 
       37 
     | 
    
         
            -
            properTempest = new ProperDocument tempest.attributes
         
     | 
| 
       38 
     | 
    
         
            -
             
     | 
| 
       39 
     | 
    
         
            -
            ok properTempest.fullName() is "Mr. William Shakespeare"
         
     | 
| 
       40 
     | 
    
         
            -
            ok properTempest.get('length') is 123
         
     | 
| 
       41 
     | 
    
         
            -
             
     | 
| 
       42 
     | 
    
         
            -
             
     | 
| 
       43 
     | 
    
         
            -
            console.log "passed #{count} tests"
         
     |