rails-backbone 0.8.0 → 0.9.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,4 +1,4 @@
1
- // Underscore.js 1.4.0
1
+ // Underscore.js 1.4.3
2
2
  // http://underscorejs.org
3
3
  // (c) 2009-2012 Jeremy Ashkenas, DocumentCloud Inc.
4
4
  // Underscore may be freely distributed under the MIT license.
@@ -24,7 +24,6 @@
24
24
  var push = ArrayProto.push,
25
25
  slice = ArrayProto.slice,
26
26
  concat = ArrayProto.concat,
27
- unshift = ArrayProto.unshift,
28
27
  toString = ObjProto.toString,
29
28
  hasOwnProperty = ObjProto.hasOwnProperty;
30
29
 
@@ -61,11 +60,11 @@
61
60
  }
62
61
  exports._ = _;
63
62
  } else {
64
- root['_'] = _;
63
+ root._ = _;
65
64
  }
66
65
 
67
66
  // Current version.
68
- _.VERSION = '1.4.0';
67
+ _.VERSION = '1.4.3';
69
68
 
70
69
  // Collection Functions
71
70
  // --------------------
@@ -74,6 +73,7 @@
74
73
  // Handles objects with the built-in `forEach`, arrays, and raw objects.
75
74
  // Delegates to **ECMAScript 5**'s native `forEach` if available.
76
75
  var each = _.each = _.forEach = function(obj, iterator, context) {
76
+ if (obj == null) return;
77
77
  if (nativeForEach && obj.forEach === nativeForEach) {
78
78
  obj.forEach(iterator, context);
79
79
  } else if (obj.length === +obj.length) {
@@ -93,6 +93,7 @@
93
93
  // Delegates to **ECMAScript 5**'s native `map` if available.
94
94
  _.map = _.collect = function(obj, iterator, context) {
95
95
  var results = [];
96
+ if (obj == null) return results;
96
97
  if (nativeMap && obj.map === nativeMap) return obj.map(iterator, context);
97
98
  each(obj, function(value, index, list) {
98
99
  results[results.length] = iterator.call(context, value, index, list);
@@ -100,10 +101,13 @@
100
101
  return results;
101
102
  };
102
103
 
104
+ var reduceError = 'Reduce of empty array with no initial value';
105
+
103
106
  // **Reduce** builds up a single result from a list of values, aka `inject`,
104
107
  // or `foldl`. Delegates to **ECMAScript 5**'s native `reduce` if available.
105
108
  _.reduce = _.foldl = _.inject = function(obj, iterator, memo, context) {
106
109
  var initial = arguments.length > 2;
110
+ if (obj == null) obj = [];
107
111
  if (nativeReduce && obj.reduce === nativeReduce) {
108
112
  if (context) iterator = _.bind(iterator, context);
109
113
  return initial ? obj.reduce(iterator, memo) : obj.reduce(iterator);
@@ -116,7 +120,7 @@
116
120
  memo = iterator.call(context, memo, value, index, list);
117
121
  }
118
122
  });
119
- if (!initial) throw new TypeError('Reduce of empty array with no initial value');
123
+ if (!initial) throw new TypeError(reduceError);
120
124
  return memo;
121
125
  };
122
126
 
@@ -124,9 +128,10 @@
124
128
  // Delegates to **ECMAScript 5**'s native `reduceRight` if available.
125
129
  _.reduceRight = _.foldr = function(obj, iterator, memo, context) {
126
130
  var initial = arguments.length > 2;
131
+ if (obj == null) obj = [];
127
132
  if (nativeReduceRight && obj.reduceRight === nativeReduceRight) {
128
133
  if (context) iterator = _.bind(iterator, context);
129
- return arguments.length > 2 ? obj.reduceRight(iterator, memo) : obj.reduceRight(iterator);
134
+ return initial ? obj.reduceRight(iterator, memo) : obj.reduceRight(iterator);
130
135
  }
131
136
  var length = obj.length;
132
137
  if (length !== +length) {
@@ -142,7 +147,7 @@
142
147
  memo = iterator.call(context, memo, obj[index], index, list);
143
148
  }
144
149
  });
145
- if (!initial) throw new TypeError('Reduce of empty array with no initial value');
150
+ if (!initial) throw new TypeError(reduceError);
146
151
  return memo;
147
152
  };
148
153
 
@@ -163,6 +168,7 @@
163
168
  // Aliased as `select`.
164
169
  _.filter = _.select = function(obj, iterator, context) {
165
170
  var results = [];
171
+ if (obj == null) return results;
166
172
  if (nativeFilter && obj.filter === nativeFilter) return obj.filter(iterator, context);
167
173
  each(obj, function(value, index, list) {
168
174
  if (iterator.call(context, value, index, list)) results[results.length] = value;
@@ -172,11 +178,9 @@
172
178
 
173
179
  // Return all the elements for which a truth test fails.
174
180
  _.reject = function(obj, iterator, context) {
175
- var results = [];
176
- each(obj, function(value, index, list) {
177
- if (!iterator.call(context, value, index, list)) results[results.length] = value;
178
- });
179
- return results;
181
+ return _.filter(obj, function(value, index, list) {
182
+ return !iterator.call(context, value, index, list);
183
+ }, context);
180
184
  };
181
185
 
182
186
  // Determine whether all of the elements match a truth test.
@@ -185,6 +189,7 @@
185
189
  _.every = _.all = function(obj, iterator, context) {
186
190
  iterator || (iterator = _.identity);
187
191
  var result = true;
192
+ if (obj == null) return result;
188
193
  if (nativeEvery && obj.every === nativeEvery) return obj.every(iterator, context);
189
194
  each(obj, function(value, index, list) {
190
195
  if (!(result = result && iterator.call(context, value, index, list))) return breaker;
@@ -198,6 +203,7 @@
198
203
  var any = _.some = _.any = function(obj, iterator, context) {
199
204
  iterator || (iterator = _.identity);
200
205
  var result = false;
206
+ if (obj == null) return result;
201
207
  if (nativeSome && obj.some === nativeSome) return obj.some(iterator, context);
202
208
  each(obj, function(value, index, list) {
203
209
  if (result || (result = iterator.call(context, value, index, list))) return breaker;
@@ -208,12 +214,11 @@
208
214
  // Determine if the array or object contains a given value (using `===`).
209
215
  // Aliased as `include`.
210
216
  _.contains = _.include = function(obj, target) {
211
- var found = false;
217
+ if (obj == null) return false;
212
218
  if (nativeIndexOf && obj.indexOf === nativeIndexOf) return obj.indexOf(target) != -1;
213
- found = any(obj, function(value) {
219
+ return any(obj, function(value) {
214
220
  return value === target;
215
221
  });
216
- return found;
217
222
  };
218
223
 
219
224
  // Invoke a method (with arguments) on every item in a collection.
@@ -249,7 +254,7 @@
249
254
  return Math.max.apply(Math, obj);
250
255
  }
251
256
  if (!iterator && _.isEmpty(obj)) return -Infinity;
252
- var result = {computed : -Infinity};
257
+ var result = {computed : -Infinity, value: -Infinity};
253
258
  each(obj, function(value, index, list) {
254
259
  var computed = iterator ? iterator.call(context, value, index, list) : value;
255
260
  computed >= result.computed && (result = {value : value, computed : computed});
@@ -263,7 +268,7 @@
263
268
  return Math.min.apply(Math, obj);
264
269
  }
265
270
  if (!iterator && _.isEmpty(obj)) return Infinity;
266
- var result = {computed : Infinity};
271
+ var result = {computed : Infinity, value: Infinity};
267
272
  each(obj, function(value, index, list) {
268
273
  var computed = iterator ? iterator.call(context, value, index, list) : value;
269
274
  computed < result.computed && (result = {value : value, computed : computed});
@@ -312,7 +317,7 @@
312
317
  // An internal function used for aggregate "group by" operations.
313
318
  var group = function(obj, value, context, behavior) {
314
319
  var result = {};
315
- var iterator = lookupIterator(value);
320
+ var iterator = lookupIterator(value || _.identity);
316
321
  each(obj, function(value, index) {
317
322
  var key = iterator.call(context, value, index, obj);
318
323
  behavior(result, key, value);
@@ -332,7 +337,7 @@
332
337
  // either a string attribute to count by, or a function that returns the
333
338
  // criterion.
334
339
  _.countBy = function(obj, value, context) {
335
- return group(obj, value, context, function(result, key, value) {
340
+ return group(obj, value, context, function(result, key) {
336
341
  if (!_.has(result, key)) result[key] = 0;
337
342
  result[key]++;
338
343
  });
@@ -354,12 +359,14 @@
354
359
  // Safely convert anything iterable into a real, live array.
355
360
  _.toArray = function(obj) {
356
361
  if (!obj) return [];
357
- if (obj.length === +obj.length) return slice.call(obj);
362
+ if (_.isArray(obj)) return slice.call(obj);
363
+ if (obj.length === +obj.length) return _.map(obj, _.identity);
358
364
  return _.values(obj);
359
365
  };
360
366
 
361
367
  // Return the number of elements in an object.
362
368
  _.size = function(obj) {
369
+ if (obj == null) return 0;
363
370
  return (obj.length === +obj.length) ? obj.length : _.keys(obj).length;
364
371
  };
365
372
 
@@ -370,6 +377,7 @@
370
377
  // values in the array. Aliased as `head` and `take`. The **guard** check
371
378
  // allows it to work with `_.map`.
372
379
  _.first = _.head = _.take = function(array, n, guard) {
380
+ if (array == null) return void 0;
373
381
  return (n != null) && !guard ? slice.call(array, 0, n) : array[0];
374
382
  };
375
383
 
@@ -384,6 +392,7 @@
384
392
  // Get the last element of an array. Passing **n** will return the last N
385
393
  // values in the array. The **guard** check allows it to work with `_.map`.
386
394
  _.last = function(array, n, guard) {
395
+ if (array == null) return void 0;
387
396
  if ((n != null) && !guard) {
388
397
  return slice.call(array, Math.max(array.length - n, 0));
389
398
  } else {
@@ -401,7 +410,7 @@
401
410
 
402
411
  // Trim out all falsy values from an array.
403
412
  _.compact = function(array) {
404
- return _.filter(array, function(value){ return !!value; });
413
+ return _.filter(array, _.identity);
405
414
  };
406
415
 
407
416
  // Internal implementation of a recursive `flatten` function.
@@ -430,6 +439,11 @@
430
439
  // been sorted, you have the option of using a faster algorithm.
431
440
  // Aliased as `unique`.
432
441
  _.uniq = _.unique = function(array, isSorted, iterator, context) {
442
+ if (_.isFunction(isSorted)) {
443
+ context = iterator;
444
+ iterator = isSorted;
445
+ isSorted = false;
446
+ }
433
447
  var initial = iterator ? _.map(array, iterator, context) : array;
434
448
  var results = [];
435
449
  var seen = [];
@@ -482,6 +496,7 @@
482
496
  // pairs, or two parallel arrays of the same length -- one of keys, and one of
483
497
  // the corresponding values.
484
498
  _.object = function(list, values) {
499
+ if (list == null) return {};
485
500
  var result = {};
486
501
  for (var i = 0, l = list.length; i < l; i++) {
487
502
  if (values) {
@@ -500,6 +515,7 @@
500
515
  // If the array is large and already in sort order, pass `true`
501
516
  // for **isSorted** to use binary search.
502
517
  _.indexOf = function(array, item, isSorted) {
518
+ if (array == null) return -1;
503
519
  var i = 0, l = array.length;
504
520
  if (isSorted) {
505
521
  if (typeof isSorted == 'number') {
@@ -515,9 +531,13 @@
515
531
  };
516
532
 
517
533
  // Delegates to **ECMAScript 5**'s native `lastIndexOf` if available.
518
- _.lastIndexOf = function(array, item, fromIndex) {
519
- if (nativeLastIndexOf && array.lastIndexOf === nativeLastIndexOf) return array.lastIndexOf(item, fromIndex);
520
- var i = (fromIndex != null ? fromIndex : array.length);
534
+ _.lastIndexOf = function(array, item, from) {
535
+ if (array == null) return -1;
536
+ var hasIndex = from != null;
537
+ if (nativeLastIndexOf && array.lastIndexOf === nativeLastIndexOf) {
538
+ return hasIndex ? array.lastIndexOf(item, from) : array.lastIndexOf(item);
539
+ }
540
+ var i = (hasIndex ? from : array.length);
521
541
  while (i--) if (array[i] === item) return i;
522
542
  return -1;
523
543
  };
@@ -554,8 +574,8 @@
554
574
  // optionally). Binding with arguments is also known as `curry`.
555
575
  // Delegates to **ECMAScript 5**'s native `Function.bind` if available.
556
576
  // We check for `func.bind` first, to fail fast when `func` is undefined.
557
- _.bind = function bind(func, context) {
558
- var bound, args;
577
+ _.bind = function(func, context) {
578
+ var args, bound;
559
579
  if (func.bind === nativeBind && nativeBind) return nativeBind.apply(func, slice.call(arguments, 1));
560
580
  if (!_.isFunction(func)) throw new TypeError;
561
581
  args = slice.call(arguments, 2);
@@ -563,6 +583,7 @@
563
583
  if (!(this instanceof bound)) return func.apply(context, args.concat(slice.call(arguments)));
564
584
  ctor.prototype = func.prototype;
565
585
  var self = new ctor;
586
+ ctor.prototype = null;
566
587
  var result = func.apply(self, args.concat(slice.call(arguments)));
567
588
  if (Object(result) === result) return result;
568
589
  return self;
@@ -604,25 +625,26 @@
604
625
  // Returns a function, that, when invoked, will only be triggered at most once
605
626
  // during a given window of time.
606
627
  _.throttle = function(func, wait) {
607
- var context, args, timeout, throttling, more, result;
608
- var whenDone = _.debounce(function(){ more = throttling = false; }, wait);
628
+ var context, args, timeout, result;
629
+ var previous = 0;
630
+ var later = function() {
631
+ previous = new Date;
632
+ timeout = null;
633
+ result = func.apply(context, args);
634
+ };
609
635
  return function() {
610
- context = this; args = arguments;
611
- var later = function() {
636
+ var now = new Date;
637
+ var remaining = wait - (now - previous);
638
+ context = this;
639
+ args = arguments;
640
+ if (remaining <= 0) {
641
+ clearTimeout(timeout);
612
642
  timeout = null;
613
- if (more) {
614
- result = func.apply(context, args);
615
- }
616
- whenDone();
617
- };
618
- if (!timeout) timeout = setTimeout(later, wait);
619
- if (throttling) {
620
- more = true;
621
- } else {
622
- throttling = true;
643
+ previous = now;
623
644
  result = func.apply(context, args);
645
+ } else if (!timeout) {
646
+ timeout = setTimeout(later, remaining);
624
647
  }
625
- whenDone();
626
648
  return result;
627
649
  };
628
650
  };
@@ -740,8 +762,10 @@
740
762
  // Extend a given object with all the properties in passed-in object(s).
741
763
  _.extend = function(obj) {
742
764
  each(slice.call(arguments, 1), function(source) {
743
- for (var prop in source) {
744
- obj[prop] = source[prop];
765
+ if (source) {
766
+ for (var prop in source) {
767
+ obj[prop] = source[prop];
768
+ }
745
769
  }
746
770
  });
747
771
  return obj;
@@ -770,8 +794,10 @@
770
794
  // Fill in a given object with default properties.
771
795
  _.defaults = function(obj) {
772
796
  each(slice.call(arguments, 1), function(source) {
773
- for (var prop in source) {
774
- if (obj[prop] == null) obj[prop] = source[prop];
797
+ if (source) {
798
+ for (var prop in source) {
799
+ if (obj[prop] == null) obj[prop] = source[prop];
800
+ }
775
801
  }
776
802
  });
777
803
  return obj;
@@ -936,7 +962,7 @@
936
962
 
937
963
  // Is a given object a finite number?
938
964
  _.isFinite = function(obj) {
939
- return _.isNumber(obj) && isFinite(obj);
965
+ return isFinite(obj) && !isNaN(parseFloat(obj));
940
966
  };
941
967
 
942
968
  // Is the given value `NaN`? (NaN is the only number which does not equal itself).
@@ -982,7 +1008,9 @@
982
1008
 
983
1009
  // Run a function **n** times.
984
1010
  _.times = function(n, iterator, context) {
985
- for (var i = 0; i < n; i++) iterator.call(context, i);
1011
+ var accum = Array(n);
1012
+ for (var i = 0; i < n; i++) accum[i] = iterator.call(context, i);
1013
+ return accum;
986
1014
  };
987
1015
 
988
1016
  // Return a random integer between min and max (inclusive).
@@ -1047,7 +1075,7 @@
1047
1075
  // Useful for temporary DOM ids.
1048
1076
  var idCounter = 0;
1049
1077
  _.uniqueId = function(prefix) {
1050
- var id = idCounter++;
1078
+ var id = '' + ++idCounter;
1051
1079
  return prefix ? prefix + id : id;
1052
1080
  };
1053
1081
 
@@ -1097,11 +1125,18 @@
1097
1125
  text.replace(matcher, function(match, escape, interpolate, evaluate, offset) {
1098
1126
  source += text.slice(index, offset)
1099
1127
  .replace(escaper, function(match) { return '\\' + escapes[match]; });
1100
- source +=
1101
- escape ? "'+\n((__t=(" + escape + "))==null?'':_.escape(__t))+\n'" :
1102
- interpolate ? "'+\n((__t=(" + interpolate + "))==null?'':__t)+\n'" :
1103
- evaluate ? "';\n" + evaluate + "\n__p+='" : '';
1128
+
1129
+ if (escape) {
1130
+ source += "'+\n((__t=(" + escape + "))==null?'':_.escape(__t))+\n'";
1131
+ }
1132
+ if (interpolate) {
1133
+ source += "'+\n((__t=(" + interpolate + "))==null?'':__t)+\n'";
1134
+ }
1135
+ if (evaluate) {
1136
+ source += "';\n" + evaluate + "\n__p+='";
1137
+ }
1104
1138
  index = offset + match.length;
1139
+ return match;
1105
1140
  });
1106
1141
  source += "';\n";
1107
1142
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails-backbone
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.0
4
+ version: 0.9.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,11 +10,11 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2012-09-29 00:00:00.000000000 Z
13
+ date: 2012-12-17 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: railties
17
- requirement: &70328437701900 !ruby/object:Gem::Requirement
17
+ requirement: !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ! '>='
@@ -22,10 +22,15 @@ dependencies:
22
22
  version: 3.1.0
23
23
  type: :runtime
24
24
  prerelease: false
25
- version_requirements: *70328437701900
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ none: false
27
+ requirements:
28
+ - - ! '>='
29
+ - !ruby/object:Gem::Version
30
+ version: 3.1.0
26
31
  - !ruby/object:Gem::Dependency
27
32
  name: coffee-script
28
- requirement: &70328437697400 !ruby/object:Gem::Requirement
33
+ requirement: !ruby/object:Gem::Requirement
29
34
  none: false
30
35
  requirements:
31
36
  - - ~>
@@ -33,10 +38,15 @@ dependencies:
33
38
  version: 2.2.0
34
39
  type: :runtime
35
40
  prerelease: false
36
- version_requirements: *70328437697400
41
+ version_requirements: !ruby/object:Gem::Requirement
42
+ none: false
43
+ requirements:
44
+ - - ~>
45
+ - !ruby/object:Gem::Version
46
+ version: 2.2.0
37
47
  - !ruby/object:Gem::Dependency
38
48
  name: jquery-rails
39
- requirement: &70328437695940 !ruby/object:Gem::Requirement
49
+ requirement: !ruby/object:Gem::Requirement
40
50
  none: false
41
51
  requirements:
42
52
  - - ~>
@@ -44,10 +54,15 @@ dependencies:
44
54
  version: 2.1.3
45
55
  type: :runtime
46
56
  prerelease: false
47
- version_requirements: *70328437695940
57
+ version_requirements: !ruby/object:Gem::Requirement
58
+ none: false
59
+ requirements:
60
+ - - ~>
61
+ - !ruby/object:Gem::Version
62
+ version: 2.1.3
48
63
  - !ruby/object:Gem::Dependency
49
64
  name: ejs
50
- requirement: &70328437707540 !ruby/object:Gem::Requirement
65
+ requirement: !ruby/object:Gem::Requirement
51
66
  none: false
52
67
  requirements:
53
68
  - - ~>
@@ -55,10 +70,15 @@ dependencies:
55
70
  version: 1.1.1
56
71
  type: :runtime
57
72
  prerelease: false
58
- version_requirements: *70328437707540
73
+ version_requirements: !ruby/object:Gem::Requirement
74
+ none: false
75
+ requirements:
76
+ - - ~>
77
+ - !ruby/object:Gem::Version
78
+ version: 1.1.1
59
79
  - !ruby/object:Gem::Dependency
60
80
  name: rails
61
- requirement: &70328437765580 !ruby/object:Gem::Requirement
81
+ requirement: !ruby/object:Gem::Requirement
62
82
  none: false
63
83
  requirements:
64
84
  - - ~>
@@ -66,10 +86,15 @@ dependencies:
66
86
  version: 3.2.0
67
87
  type: :development
68
88
  prerelease: false
69
- version_requirements: *70328437765580
89
+ version_requirements: !ruby/object:Gem::Requirement
90
+ none: false
91
+ requirements:
92
+ - - ~>
93
+ - !ruby/object:Gem::Version
94
+ version: 3.2.0
70
95
  - !ruby/object:Gem::Dependency
71
96
  name: sqlite3
72
- requirement: &70328437778880 !ruby/object:Gem::Requirement
97
+ requirement: !ruby/object:Gem::Requirement
73
98
  none: false
74
99
  requirements:
75
100
  - - ! '>='
@@ -77,10 +102,15 @@ dependencies:
77
102
  version: '0'
78
103
  type: :development
79
104
  prerelease: false
80
- version_requirements: *70328437778880
105
+ version_requirements: !ruby/object:Gem::Requirement
106
+ none: false
107
+ requirements:
108
+ - - ! '>='
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
81
111
  - !ruby/object:Gem::Dependency
82
112
  name: sass
83
- requirement: &70328437776700 !ruby/object:Gem::Requirement
113
+ requirement: !ruby/object:Gem::Requirement
84
114
  none: false
85
115
  requirements:
86
116
  - - ! '>='
@@ -88,10 +118,15 @@ dependencies:
88
118
  version: '0'
89
119
  type: :development
90
120
  prerelease: false
91
- version_requirements: *70328437776700
121
+ version_requirements: !ruby/object:Gem::Requirement
122
+ none: false
123
+ requirements:
124
+ - - ! '>='
125
+ - !ruby/object:Gem::Version
126
+ version: '0'
92
127
  - !ruby/object:Gem::Dependency
93
128
  name: uglifier
94
- requirement: &70328437772440 !ruby/object:Gem::Requirement
129
+ requirement: !ruby/object:Gem::Requirement
95
130
  none: false
96
131
  requirements:
97
132
  - - ! '>='
@@ -99,10 +134,15 @@ dependencies:
99
134
  version: '0'
100
135
  type: :development
101
136
  prerelease: false
102
- version_requirements: *70328437772440
137
+ version_requirements: !ruby/object:Gem::Requirement
138
+ none: false
139
+ requirements:
140
+ - - ! '>='
141
+ - !ruby/object:Gem::Version
142
+ version: '0'
103
143
  - !ruby/object:Gem::Dependency
104
144
  name: mocha
105
- requirement: &70328437785780 !ruby/object:Gem::Requirement
145
+ requirement: !ruby/object:Gem::Requirement
106
146
  none: false
107
147
  requirements:
108
148
  - - ~>
@@ -110,10 +150,15 @@ dependencies:
110
150
  version: 0.10.3
111
151
  type: :development
112
152
  prerelease: false
113
- version_requirements: *70328437785780
153
+ version_requirements: !ruby/object:Gem::Requirement
154
+ none: false
155
+ requirements:
156
+ - - ~>
157
+ - !ruby/object:Gem::Version
158
+ version: 0.10.3
114
159
  - !ruby/object:Gem::Dependency
115
160
  name: turn
116
- requirement: &70328437802400 !ruby/object:Gem::Requirement
161
+ requirement: !ruby/object:Gem::Requirement
117
162
  none: false
118
163
  requirements:
119
164
  - - ~>
@@ -121,10 +166,15 @@ dependencies:
121
166
  version: 0.8.3
122
167
  type: :development
123
168
  prerelease: false
124
- version_requirements: *70328437802400
169
+ version_requirements: !ruby/object:Gem::Requirement
170
+ none: false
171
+ requirements:
172
+ - - ~>
173
+ - !ruby/object:Gem::Version
174
+ version: 0.8.3
125
175
  - !ruby/object:Gem::Dependency
126
176
  name: minitest
127
- requirement: &70328437800700 !ruby/object:Gem::Requirement
177
+ requirement: !ruby/object:Gem::Requirement
128
178
  none: false
129
179
  requirements:
130
180
  - - ~>
@@ -132,7 +182,12 @@ dependencies:
132
182
  version: 2.10.1
133
183
  type: :development
134
184
  prerelease: false
135
- version_requirements: *70328437800700
185
+ version_requirements: !ruby/object:Gem::Requirement
186
+ none: false
187
+ requirements:
188
+ - - ~>
189
+ - !ruby/object:Gem::Version
190
+ version: 2.10.1
136
191
  description: Quickly setup backbone.js for use with rails 3.1. Generators are provided
137
192
  to quickly get started.
138
193
  email:
@@ -187,7 +242,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
187
242
  version: '0'
188
243
  segments:
189
244
  - 0
190
- hash: -1632237313035377260
245
+ hash: 1886977708027563026
191
246
  required_rubygems_version: !ruby/object:Gem::Requirement
192
247
  none: false
193
248
  requirements:
@@ -196,10 +251,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
196
251
  version: '0'
197
252
  segments:
198
253
  - 0
199
- hash: -1632237313035377260
254
+ hash: 1886977708027563026
200
255
  requirements: []
201
256
  rubyforge_project:
202
- rubygems_version: 1.8.11
257
+ rubygems_version: 1.8.23
203
258
  signing_key:
204
259
  specification_version: 3
205
260
  summary: Use backbone.js with rails 3.1