rails-backbone 0.8.0 → 0.9.0

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.
@@ -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